借助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使用示例

更多示例

相关推荐
科技小E7 小时前
EasyRTC:基于WebRTC与P2P技术,开启智能硬件音视频交互的全新时代
网络·网络协议·小程序·webrtc·p2p·智能硬件·视频监控
EasyNVR1 天前
EasyRTC智能硬件:实时畅联、沉浸互动、消音护航
运维·服务器·网络·安全·音视频·webrtc·p2p
EasyNVR1 天前
EasyRTC:全平台支持与自研算法驱动的智能音视频通讯解决方案
运维·服务器·小程序·音视频·webrtc·p2p·智能硬件
EasyNVR3 天前
EasyRTC:开启智能硬件与全平台互动新时代
网络·音视频·webrtc·p2p·智能硬件·视频监控
x66ccff3 天前
【nvidia】NCCL禁用P2P后果权衡
服务器·网络协议·p2p
EasyNVR3 天前
智能硬件新时代,EasyRTC开启物联音视频新纪元
运维·服务器·音视频·webrtc·p2p·智能硬件·视频监控
科技小E3 天前
EasyRTC:智能硬件适配,实现多端音视频互动新突破
网络协议·安全·小程序·音视频·webrtc·p2p·视频监控
Black蜡笔小新4 天前
从中心化到点对点:视频通话SDK组件EasyRTC如何通过WebP2P技术实现低延迟通信
网络协议·音视频·p2p
EasyNVR6 天前
EasyRTC智能硬件:小体积,大能量,开启音视频互动新体验
前端·安全·音视频·webrtc·sdk·p2p·智能硬件
科技小E6 天前
WebRTC与EasyRTC:开启智能硬件音视频通讯的全新旅程
网络·网络协议·音视频·webrtc·p2p·视频监控