frp实现p2p远程连接桌面

此篇文章主要目的是解决无法使用微软的远程桌面,使用向日葵卡(没充钱)的要死要活的。重要的事情说3遍,得有个公网IP,公网IP,公网IP。这里推荐阿里云服务器购买地址「一年几十块钱」

什么是frp?

frp 是一个高性能的反向代理应用,可以帮助您轻松地进行内网穿透,对外网提供服务,支持 tcp, http, https 等协议类型,并且
web 服务支持根据域名进行路由转发。frp 是一款跨平台的内网穿透工具,支持 Windows、macOS 与
Linux,它需要你有一台拥有固定公网 IP 的电脑,VPS 最好,然后就能愉快的进行内网穿透了。还支持
https,甚至可以用它进行小程序开发。

代理类型

类型描述
tcp单纯的 TCP 端口映射,服务端会根据不同的端口路由到不同的内网服务。
udp单纯的 UDP 端口映射,服务端会根据不同的端口路由到不同的内网服务。
http针对 HTTP 应用定制了一些额外的功能,例如修改 Host Header,增加鉴权。
https针对 HTTPS 应用定制了一些额外的功能。
stcp安全的 TCP 内网代理,需要在被访问者和访问者的机器上都部署 frpc,不需要在服务端暴露端口。
sudp安全的 UDP 内网代理,需要在被访问者和访问者的机器上都部署 frpc,不需要在服务端暴露端口。
xtcp点对点内网穿透代理,功能同 stcp,但是流量不需要经过服务器中转。
tcpmux支持服务端 TCP 端口的多路复用,通过同一个端口访问不同的内网服务。

使用工具

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 = 公网IP
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

Logo

开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!

更多推荐