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

最终效果

实现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使用示例

更多示例

相关推荐
xinyu_Jina19 小时前
WebRTC的P2P实践:局域网文件传输中的信令、ICE与DataChannel架构解析
架构·webrtc·p2p
成都纵横智控科技官方账号5 天前
T100打破远程孤岛-轻松实现异地组网-P2P打洞+UDP NAT 穿透
去中心化·p2p·远程运维·异地组网
节点小宝7 天前
节点小宝免费版流量机制解析:点对点直连技术与备用流量设计
网络·网络协议·p2p
metaRTC8 天前
嵌入式webRTC IPC操作指南
webrtc·p2p·ipc
qqxhb9 天前
系统架构设计师备考第63天——通信系统架构
5g·系统架构·局域网·通信系统·sdn·广域网·存储网络san/nas
饺子大魔王的男人15 天前
3秒传输GB级文件:FastSend让P2P共享告别云存储依赖
网络·网络协议·p2p
九江Mgx18 天前
自由通讯的魔法:Go从零实现UDP/P2P 聊天工具
golang·udp·p2p
A.sir啊19 天前
计算机网络:知识点梳理及讲解(三)数据链路层
计算机网络·以太网·交换机·数据链路层·局域网·ppp点对点·广播信道
ajassi200020 天前
开源 Linux 服务器与中间件(十二)FRP内网穿透应用
linux·服务器·开源·frp
切糕师学AI1 个月前
P2P技术
网络·网络协议·p2p