frp实现p2p远程连接桌面

By | 2022-09-02

使用工具
FRP下载地址,这里不详细介绍安装过程,只说如何启用。

因为点对点远程连接需要两个客户端都下载frp,如果是通过服务器中转的,只需要被远程方下载frp即可,这种受限于服务器网络。

服务器端配置(frp_0.37.1_linux_amd64)
frps.ini

[common]
bind_port = 7001     
# 可自己定义设置
bind_udp_port = 7001      # 可自己定义设置,启动xtcp的关键,并不是能穿通所有网关

vhost_http_port = 8080      # http服务端口,开启后服务端完成通过域名访问部署于内网的 Web 服务部署,这里将 HTTP 访问端口设为 8080
vhost_https_port = 443      # https服务端口

token = 123456      
# 自己设置
dashboard_port = 7500      # 自己设置

# dashboard 用户名密码,默认都为 admin
dashboard_user = admin
dashboard_pwd = admin

# 超时时间为秒,如果没有报错,可以不设置
heartbeat_timeout = 90

user_conn_timeout = 60

vhost_http_timeout = 90

客服端A【被远程的电脑】配置(frp_0.37.1_windows_amd64)
frpc.ini

[common]
server_addr = 公网IP
server_port = 7001
token = 123456      # 跟服务器的token一致

[rdp]      # mstsc直接输入公网的IP和端口就能远程       
type = tcp
local_ip = 127.0.0.1
local_port = 3389
remote_port = 3389

[p2p_rdp]
type = stcp
sk = xxx123
local_ip = 127.0.0.1
local_port = 3389
use_encryption = false
use_compression = false

[p2p_rdp_xtcp]
type = xtcp
sk = xxx123
local_ip = 127.0.0.1
local_port = 3389
use_encryption = false
use_compression = false

客服端B【远程电脑】配置(frp_0.37.1_windows_amd64)

[common]
server_addr = 47.117.132.200
server_port = 7001
token = 123456      # 跟服务器的token一致

[p2p_rdp_visitor]
role = visitor
type = stcp
server_name = p2p_rdp
sk = xxx123
bind_addr = 127.0.0.1
bind_port = 10000
use_encryption = false
use_compression = false

[p2p_rdp_visitor2]
role = visitor
type = xtcp
server_name = p2p_rdp_xtcp
sk = xxx123
bind_addr = 127.0.0.1
bind_port = 10001
use_encryption = false
use_compression = false

如果以上都没有问题,则可以通过mstsc远程程序,输入127.0.0.1:10001并输入账号和密码进行远程登录。这种不受限于服务器的网络限制,可以进行大文件传输。

服务器启动程序命令,cd到解压目录执行

nohup ./frps -c frps.ini >/dev/null 2>&1 &

window服务器可以建立start.bat,内容为

frpc.exe -c frpc.ini