借助frp的xtcp+danted代理打通两边局域网p2p方式访问

借助frp的xtcp+danted代理打通两边局域网p2p方式访问_第1张图片

最终效果

实现C内网所有设备借助c1内网代理访问B内网所有服务器

配置公网服务端A

frps

配置frps.ini

[common]
# 绑定frp穿透使用的端口
bind_port = 7000
# 使用token认证
authentication_method = token
token = xxxx

./frps -c frps.ini启动

配置service自启(可选)

/etc/systemd/system/frps.service

[Unit]
# 服务名称,可自定义
Description = frp server
After = network.target syslog.target
Wants = network.target

[Service]
Type = simple
# 启动frps的命令,需修改为您的frps的安装路径
ExecStart = /root/frp/frps -c /root/frp/frps.ini

[Install]
WantedBy = multi-user.target

systemctl start frps.service启动服务

systemctl enable frps设置自启

配置内网服务端B

danted(socks5代理)

sudo apt update

sudo apt install dante-server

cp /etc/danted.conf /etc/danted.conf.bk

vim /etc/danted.conf 修改为以下内容

service danted restart

systemctl enable danted 自动启动

logoutput: stderr
user.privileged: root
user.unprivileged: nobody
internal: 0.0.0.0 port=7891
# external修改为对外网卡名称或者ip
external: xx.xx.xx.xx
socksmethod: none
clientmethod: none
client pass {
	from: 0.0.0.0/0 to: 0.0.0.0/0
}
socks pass {
	from: 0.0.0.0/0 to: 0.0.0.0/0
}

修改external

frpc

配置frpc.ini

[common]
# 公网ip
server_addr = xx.xx.xx.xx
server_port = 7000
token = xxxx

[test_p2p]
type = xtcp
sk = yyyy
local_ip = 127.0.0.1
local_port = 7891

./frpc -c frpc.ini启动

配置service自启(可选)

/etc/systemd/system/frpc.service

[Unit]
# 服务名称,可自定义
Description = frp client
After = network.target syslog.target
Wants = network.target
# After = network.target

[Service]
Type = simple
# 启动frps的命令,需修改为您的frps的安装路径
ExecStart = /home/user/software/frp/frpc -c /home/user/software/frp/frpc.ini
Restart= always
RestartSec = 60s

[Install]
WantedBy = multi-user.target

systemctl start frpc.service启动服务

systemctl enable frpc设置自启

配置内网主机端C

frpc

frpc.ini

[common]
server_addr = xx.xx.xx.xx
server_port = 7000
token = xxxx

[test_p2p_visitor]
type = xtcp
# xtcp 的访问者
role = visitor
# 要访问的 xtcp 代理的名字
server_name = test_p2p
sk = yyyy
# 将远程端口映射为本地对应的端口
bind_addr = 0.0.0.0
bind_port = 9998
# 当需要自动保持隧道打开时,设置为 true
keep_tunnel_open = true
# 每小时尝试打开隧道的次数
max_retries_an_hour = 8
# 重试打开隧道的最小间隔时间,单位: 秒	
min_retry_interval = 90	

./frpc -c frpc.ini启动

配置service自启(可选)

/etc/systemd/system/frpc.service

[Unit]
# 服务名称,可自定义
Description = frp client
After = network.target syslog.target
Wants = network.target
# After = network.target

[Service]
Type = simple
# 启动frps的命令,需修改为您的frps的安装路径
ExecStart = /home/user/software/frp/frpc -c /home/user/software/frp/frpc.ini
Restart= always
RestartSec = 60s

[Install]
WantedBy = multi-user.target

systemctl start frpc.service启动服务

systemctl enable frpc设置自启

内网C所有主机访问内网B使用示例

借助c1主机访问所有内网B中设备

ssh

vim ~/.ssh/config 输入以下内容

Host Bx
  HostName 想要访问的内网Bx主机的内网ip
  user ssh连接用户名
  Port 22
  ProxyCommand=nc -x 内网C1主机ip:9998  %h %p

ssh Bx 就能ssh连接了

ubuntu文件管理器(nautilus)

同ssh

然后在Other Locations -> Connect to Server中输入ssh://Bx访问

remmina

使用Bx主机内网ip创建一个会话

然后vim ~/.local/share/remmina/对应会话名称.remmina最下方添加

proxy_hostname=内网C1主机ip
proxy_type=socks5
proxy_port=9998

其他软件

查找软件使用socks5代理方式,或者直接设置系统代理来使用

更多frp使用示例

更多示例

你可能感兴趣的:(实战,p2p,frp,xtcp,不依赖服务器网速,打洞,隧道,局域网)