利用frp内网穿透kcp模式做跳板,加速流畅访问远程桌面3389
原因分析
一些国外VPS因地理遥远,延迟高等因素,使用windows 3389访问卡慢,又没有什么单向软件能让本地3389变成增强TCP发包模式,以改善访问的流畅度。
原理
使用frp的内网穿透,kcp模式,原理:
国外VPS用frpc客户端对3389穿透使用kcp模式,转发数据到frps服务端。然后frps服务端往返协议传输给终端用户。
跳板,当然就是找台国内VPS,或者新加坡/香港的低延迟当中继,用来搭建frp服务端。宽带没啥要求,用来访问3389 1M都行。
KCP是一个快速可靠协议,能以比 TCP浪费10%-20%的带宽的代价,换取平均延迟降低 30%-40%,且最大延迟降低三倍的传输效果。
frp项目发布页 https://github.com/fatedier/frp/blob/master/README_zh.md
代理类型
frp 支持多种代理类型来适配不同的使用场景。
类型 | 描述 |
---|---|
tcp | 单纯的 TCP 端口映射,服务端会根据不同的端口路由到不同的内网服务。 |
udp | 单纯的 UDP 端口映射,服务端会根据不同的端口路由到不同的内网服务。 |
http | 针对 HTTP 应用定制了一些额外的功能,例如修改 Host Header,增加鉴权。 |
https | 针对 HTTPS 应用定制了一些额外的功能。 |
stcp | 安全的 TCP 内网代理,需要在被访问者和访问者的机器上都部署 frpc,不需要在服务端暴露端口。 |
sudp | 安全的 UDP 内网代理,需要在被访问者和访问者的机器上都部署 frpc,不需要在服务端暴露端口。 |
xtcp | 点对点内网穿透代理,功能同 stcp,但是流量不需要经过服务器中转。 |
tcpmux | 支持服务端 TCP 端口的多路复用,通过同一个端口访问不同的内网服务。 |
配置
服务端frps.ini配置
[common]
bind_addr = 0.0.0.0
bind_port = 7000
kcp_bind_port = 7000
bind_udp_port = 7001
token = password
tcp_mux=true
heartbeat_timeout = 90
authentication_timeout = 900
注意服务端和客户端机器的时间是否为一致。
7000和7001端口开放tcp和udp,KCP模式是通过UDP发包的。
客户端frpc.ini配置
[common]
server_addr = 服务端IP
server_port = 7000
protocol = kcp
token = password
[3389]
type = tcp
local_port = 3389
remote_port = 13389
local_ip = 127.0.0.1
local_port 为监听本地端口
remote_port 为绑定远程端口
最后就是通过服务端IP,和绑定的远程端口,进行访问3389远程桌面,即可访问到穿透机器。
两边的参数就是这样,使用前还是建议去frp官方了解下参数,以避免因不懂参数定义而导致运行失败。