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

    官网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向桌面公司电脑打洞,远程桌面公司电脑

    在这里插入图片描述

    评论
    添加红包

    请填写红包祝福语或标题

    红包个数最小为10个

    红包金额最低5元

    当前余额3.43前往充值 >
    需支付:10.00
    成就一亿技术人!
    领取后你会自动成为博主和红包主的粉丝 规则
    hope_wisdom
    发出的红包
    实付
    使用余额支付
    点击重新获取
    扫码支付
    钱包余额 0

    抵扣说明:

    1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
    2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

    余额充值

    登录后您可以享受以下权益:

    ×
    程序员都在用的中文IT技术交流社区

    程序员都在用的中文IT技术交流社区

    专业的中文 IT 技术社区,与千万技术人共成长

    专业的中文 IT 技术社区,与千万技术人共成长

    关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

    关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

    客服 返回顶部