hzqim
V2EX  ›  问与答

问个高大上的问题:如何架设“打洞”服务器?

  •  1
     
  •   hzqim · Dec 11, 2014 · 11805 views
    This topic created in 4197 days ago, the information mentioned may be changed or developed.
    网络环境:

    东京独立 IP Linux VPS 一台
    中国移动宽带私网地址,原本是可以分配到公网 IP 的,后来移动机房升级后(估计是添加一个 NAT 设备)就不能获取公网 IP 了,这样我家路由器不进行端口映射的情况下,电脑和服务器通信至少要经过 2 个 NAT 设备。


    问题来了:
    1、Linux 环境下能否架设 UDP “打洞”服务器?有没有现成方案?
    2、如果能打洞成功,我为了实现在别处电脑远程家中的 NAS 文件,或者远程添加 BT 种子文件,受控端(家里的电脑)和操作端(别处的电脑)是否必须安装相对应的软件?
    3、如果自己架设太麻烦,有哪些现成的免费/付费服务推荐?要求 windows 和 Linux 平台都能支持。

    谢谢。
    16 replies    2015-03-16 16:45:41 +08:00
    zzutmebwd
        1
    zzutmebwd  
       Dec 11, 2014 via Android   ❤️ 1
    ngrok 自己谷歌不谢
    hzqim
        2
    hzqim  
    OP
       Dec 11, 2014
    @zzutmebwd 还是要谢谢的。美女一个
    zzutmebwd
        3
    zzutmebwd  
       Dec 11, 2014
    @hzqim 美爆!好稀饭
    gyteng
        4
    gyteng  
       Dec 11, 2014   ❤️ 1
    如果你的路由是openwrt的,直接用ssh的反向连接功能就可以了
    wwek
        5
    wwek  
       Dec 11, 2014
    不错.收了`
    banbanchs
        6
    banbanchs  
       Dec 11, 2014   ❤️ 1
    n2n
    hzqim
        7
    hzqim  
    OP
       Dec 11, 2014 via Android
    @gyteng
    1、SSH反向链接是否类似这样的命令?ssh -R 2222:localhost:22 117.123.123.123
    2、ngrok本质是否就是 SSH 反向链接?
    3、ngrok每次只监听一个端口,而且好像不能多开?SSH好像没有这样的限制,如此,后者灵活多了!
    4、花生壳是否也采用类似技术?

    谢谢,谢谢!
    hzqim
        8
    hzqim  
    OP
       Dec 11, 2014 via Android
    @banbanchs 谢谢推荐,先试验一下ngrok和SSH
    ryd994
        9
    ryd994  
       Dec 11, 2014 via Android   ❤️ 1
    ssh是tcp,流量全靠服务器转发
    udp打洞只有开头少量打洞用的数据走服务器,其他是直连的,所以才叫打洞。
    kobe1941
        10
    kobe1941  
       Dec 11, 2014
    弱弱的问一句,打洞是什么意思?
    hzqim
        11
    hzqim  
    OP
       Dec 11, 2014
    @ryd994 那么 ngrok 采用一直 online 的隧道技术,也就是说它不是“打洞”了?
    向日葵是打洞吗?
    DDNS 既不是"打洞",也不是隧道,而只是IP检测?
    ryd994
        12
    ryd994  
       Dec 12, 2014 via Android   ❤️ 1
    @hzqim ddns叫dynamic dns,就是个dns服务,只不过DNS记录的更新可以比较方便和自动化而已
    ngrok不熟,但是从官网上来看,它自称是tunnel,即隧道技术,不算是udp打洞
    首先向日葵是ddns服务商,至于那个内网的呢,是要钱的,限带宽,很明显是用他的服务器转发而已。更何况支持tcp,tcp是不可能用udp打洞这样的方法来打洞的。
    hzqim
        13
    hzqim  
    OP
       Dec 12, 2014
    @ryd994 谢谢解释,看来要弄个纯UDP打洞软件还是比较难啊。
    dosgo
        14
    dosgo  
       Mar 14, 2015   ❤️ 1
    @hzqim 打洞用stun协议啊,还有免费公开的stun服务器,不过呢,很多地方都不能打。,。反正我在公司家里都无法打
    hzqim
        15
    hzqim  
    OP
       Mar 16, 2015
    @dosgo 谢谢介绍,自己有VPS,看看能否找到开源的STUN软件。
    dosgo
        16
    dosgo  
       Mar 16, 2015   ❤️ 1
    @hzqim 有的,http://basiccoder.com/c-program-to-test-stun.html/comment-page-1,一个简单的C程序,我建议你先在安卓手机上安装个stun client的软件,测试下你的内网是什么类型的NAT,很多类型的NAT根本打不了洞,我老东家的无法打,我住宿那也无法打,现在新公司可以打。
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   1056 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 45ms · UTC 19:00 · PVG 03:00 · LAX 12:00 · JFK 15:00
    ♥ Do have faith in what you're doing.