frp之XTCP实现内网穿透家用电脑远程桌面公司电脑

avatar
作者
猴君
阅读量:0

官网XTCP介绍

《XTCP介绍》

实现图

在这里插入图片描述

fprs.toml

# frps 服务端口(不填,则默认:7000) bindPort = 81 auth.token = "token 令牌" 

公司电脑frpc.toml

serverAddr = "frps公网服务器域名或ip" serverPort = frps 服务端口  auth.token = "token 令牌"  loginFailExit = false  # 这里表示如果 xtcp 打洞失败时,使用 stcp 远程链接公司电脑 [[proxies]] # stcp的服务名称要和家用电脑配置的serverName一致 name = "company_stcp_remote_desktop" type = "stcp" # 这个secretKey要和家用电脑一致 secretKey = "abcdefg" localIP = "127.0.0.1" # 公司电脑远程桌面端口(一般情况下会改成其它端口) localPort = 3389 # 压缩传输内容 transport.useCompression = true  [[proxies]] # xtcp的服务名称要和家用电脑配置的serverName一致 name = "company_xtcp_remote_desktop" type = "xtcp" secretKey = "abcdefg" localIP = "127.0.0.1" # 公司电脑远程桌面端口(一般情况下会改成其它端口) localPort = 3389 # 压缩传输内容 transport.useCompression = true 

家用电脑frpc.toml

XTCP 的配置方式和 STCP 很类似。但是会采用 P2P 的方式进行打洞穿透,如果成功,后续的流量将不会经过 frps,而是直接通信,不再受到 frps 所在服务器的带宽限制。

由于打洞成功率取决于所处网络的 NAT 类型,所以 XTCP 的可用性和稳定性无法保证。在需要可靠连接的情况下,建议使用 STCP 替代。

当 visitor 配置了 keepTunnelOpen = true 时,frpc 会定期检测隧道是否打开,如果没有,则会尝试打洞建立隧道,这样可以始终保持隧道打开,在需要连接对端服务时,可以避免延迟。

默认情况下,visitor 会在接收到用户连接后尝试打洞,如果打洞失败,可以尝试多次建立连接,程序会尝试其他的打洞策略,有可能在多次重试后成功打洞。一旦打洞成功,后续新增连接不必重复打洞,而是可以复用隧道。

serverAddr = "frps公网服务器域名或ip" serverPort = frps 服务端口  auth.token = "token 令牌"  loginFailExit = false  [[visitors]] # 家用电脑 stcp visitors 名称(随意) name = "company_stcp_remote_desktop_visitor" type = "stcp" # 公司电脑 stcp name serverName = "company_stcp_remote_desktop" secretKey = "abcdefg" # stcp-visitor 的 bindPort 设置为 -1 表示不需要监听物理端口,只接受 fallback 的连接即可。 bindPort = -1 # 压缩传输内容 transport.useCompression = true  [[visitors]] # 家用电脑 xtcp visitors 名称(随意) name = "company_xtcp_remote_desktop_visitor" type = "xtcp" # 公司电脑 xtcp name serverName = "company_xtcp_remote_desktop" secretKey = "abcdefg" bindAddr = "127.0.0.1" # 使用家用电脑的23389端口远程桌面链接到公司电脑3389端口电脑(注意:Windows必须是专业版的,并且要启用远程桌面和设置密码) bindPort = 23389 # 压缩传输内容 transport.useCompression = true # 配置了 keepTunnelOpen = true 时,frpc 会定期检测隧道是否打开,如果没有,则会尝试打洞建立隧道,这样可以始终保持隧道打开,在需要连接对端服务时,可以避免延迟。 keepTunnelOpen = true # 如果 xtcp 打洞失败,则使用 stcp 进行链接,fallbackTo = 上面的 stcp name fallbackTo = "company_stcp_remote_desktop_visitor" # 当连接 127.0.0.1:23389 超过 200ms p2p 打洞还未成功的话,会回退到使用 company_stcp_remote_desktop_visitor 建立连接。 fallbackTimeoutMs = 200 

当连接 127.0.0.1:23389 超过 200ms p2p 打洞还未成功的话,会回退到使用 company_stcp_remote_desktop_visitor 建立连接。fallback 后,之前触发的打洞操作仍然会继续,一般来说打洞完成需要的耗时会比较长。

如果打洞成功,下次建立新的连接时,将不需要再次打洞,会很快完成连接建立,不会触发 fallback。

需要注意根据访问端和被访问端的延迟情况来合理设置超时时间,以避免超时时间太短,即使打洞成功连接也来不及建立,而一直触发 fallback。

stcp-visitor 的 bindPort 设置为 -1 表示不需要监听物理端口,只接受 fallback 的连接即可。

通过家用xtcp向桌面公司电脑打洞,远程桌面公司电脑

在这里插入图片描述

广告一刻

为您即时展示最新活动产品广告消息,让您随时掌握产品活动新动态!