V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
hzqim
V2EX  ›  问与答

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

  •  1
     
  •   hzqim · 2014-12-11 10:24:24 +08:00 · 11303 次点击
    这是一个创建于 3637 天前的主题,其中的信息可能已经有所发展或是发生改变。
    网络环境:

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


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

    谢谢。
    16 条回复    2015-03-16 16:45:41 +08:00
    zzutmebwd
        1
    zzutmebwd  
       2014-12-11 10:26:45 +08:00 via Android   ❤️ 1
    ngrok 自己谷歌不谢
    hzqim
        2
    hzqim  
    OP
       2014-12-11 10:38:19 +08:00
    @zzutmebwd 还是要谢谢的。美女一个
    zzutmebwd
        3
    zzutmebwd  
       2014-12-11 10:39:19 +08:00
    @hzqim 美爆!好稀饭
    gyteng
        4
    gyteng  
       2014-12-11 11:31:00 +08:00   ❤️ 1
    如果你的路由是openwrt的,直接用ssh的反向连接功能就可以了
    wwek
        5
    wwek  
       2014-12-11 11:39:00 +08:00
    不错.收了`
    banbanchs
        6
    banbanchs  
       2014-12-11 12:19:28 +08:00   ❤️ 1
    n2n
    hzqim
        7
    hzqim  
    OP
       2014-12-11 12:31:42 +08:00 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
       2014-12-11 12:33:08 +08:00 via Android
    @banbanchs 谢谢推荐,先试验一下ngrok和SSH
    ryd994
        9
    ryd994  
       2014-12-11 13:38:51 +08:00 via Android   ❤️ 1
    ssh是tcp,流量全靠服务器转发
    udp打洞只有开头少量打洞用的数据走服务器,其他是直连的,所以才叫打洞。
    kobe1941
        10
    kobe1941  
       2014-12-11 14:58:51 +08:00
    弱弱的问一句,打洞是什么意思?
    hzqim
        11
    hzqim  
    OP
       2014-12-11 15:01:53 +08:00
    @ryd994 那么 ngrok 采用一直 online 的隧道技术,也就是说它不是“打洞”了?
    向日葵是打洞吗?
    DDNS 既不是"打洞",也不是隧道,而只是IP检测?
    ryd994
        12
    ryd994  
       2014-12-12 00:02:19 +08:00 via Android   ❤️ 1
    @hzqim ddns叫dynamic dns,就是个dns服务,只不过DNS记录的更新可以比较方便和自动化而已
    ngrok不熟,但是从官网上来看,它自称是tunnel,即隧道技术,不算是udp打洞
    首先向日葵是ddns服务商,至于那个内网的呢,是要钱的,限带宽,很明显是用他的服务器转发而已。更何况支持tcp,tcp是不可能用udp打洞这样的方法来打洞的。
    hzqim
        13
    hzqim  
    OP
       2014-12-12 07:39:10 +08:00
    @ryd994 谢谢解释,看来要弄个纯UDP打洞软件还是比较难啊。
    dosgo
        14
    dosgo  
       2015-03-14 14:00:52 +08:00   ❤️ 1
    @hzqim 打洞用stun协议啊,还有免费公开的stun服务器,不过呢,很多地方都不能打。,。反正我在公司家里都无法打
    hzqim
        15
    hzqim  
    OP
       2015-03-16 10:49:35 +08:00
    @dosgo 谢谢介绍,自己有VPS,看看能否找到开源的STUN软件。
    dosgo
        16
    dosgo  
       2015-03-16 16:45:41 +08:00   ❤️ 1
    @hzqim 有的,http://basiccoder.com/c-program-to-test-stun.html/comment-page-1,一个简单的C程序,我建议你先在安卓手机上安装个stun client的软件,测试下你的内网是什么类型的NAT,很多类型的NAT根本打不了洞,我老东家的无法打,我住宿那也无法打,现在新公司可以打。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3257 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 13:00 · PVG 21:00 · LAX 05:00 · JFK 08:00
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.