V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
b244183
V2EX  ›  程序员

在没有公网 IP 的情况下,最佳的访问内网服务器的方式是什么

  •  
  •   b244183 · 2016-11-08 19:37:26 +08:00 · 10501 次点击
    这是一个创建于 2934 天前的主题,其中的信息可能已经有所发展或是发生改变。
    主要考虑到连接的可靠性 /安全性

    其次是安装 /部署的方便程度

    应用场景:访问内网 NAS , Web Server 之类的

    群晖的 QuickConnect 只中继了群晖自己的 web 服务,并不能转发局域网内其他机器/端口
    37 条回复    2016-11-10 12:23:38 +08:00
    flyfishcn
        1
    flyfishcn  
       2016-11-08 20:00:07 +08:00
    ngork 花生壳内网版 实际都是第三方服务器做转发。
    yingjun424
        2
    yingjun424  
       2016-11-08 20:12:55 +08:00
    可以考虑一下用 ssh 的隧道咯
    klxq15
        3
    klxq15  
       2016-11-08 21:04:04 +08:00 via Android
    n2n vpn
    thinkme
        4
    thinkme  
       2016-11-08 21:07:43 +08:00
    ssh
    vs506
        5
    vs506  
       2016-11-08 21:08:53 +08:00
    网络通,10 映射,一年 59 元,不限流量
    v1024
        6
    v1024  
       2016-11-08 21:19:26 +08:00 via iPhone
    ngrok 官方服务可靠性很不错,我连接了 N 天从未断过,只是速度慢了点,毕竟墙里没布点。
    chenshaoju
        7
    chenshaoju  
       2016-11-08 22:49:50 +08:00
    广告

    如果是 Windows 的 Web Server ,可以考虑使用敝司的产品: http://www.vnn.cn ,基于 STUN ( https://en.wikipedia.org/wiki/STUN )的内网穿透,对于绝大多数 NAT 类型,双方都是点对点加密直接传输,不通过中转,适用于封闭情况下的内网访问。

    缺点:只支持 Windows 平台,双方都必须安装软件。
    my101du
        8
    my101du  
       2016-11-08 22:52:43 +08:00
    这个问题我都见过几次了,难道 V2EX 的搜索功能挂了?

    http://www.itjiaoshou.com/ngrok-access-website-in-lan.html
    Midnight
        9
    Midnight  
       2016-11-08 22:59:07 +08:00
    @chenshaoju 不中转怎么连的?
    1234rty
        10
    1234rty  
       2016-11-08 23:01:03 +08:00 via Android
    @my101du 啥, V2EX 的搜索页面能打开?#滑稽
    mingyun
        11
    mingyun  
       2016-11-08 23:29:46 +08:00
    CongRong
        12
    CongRong  
       2016-11-08 23:39:31 +08:00 via iPhone
    DDNS
    t123yh
        13
    t123yh  
       2016-11-08 23:42:08 +08:00 via Android
    @Midnight 应该是 udp 打洞吧
    liyj144
        14
    liyj144  
       2016-11-09 08:24:08 +08:00
    github 搜 frpc
    Midnight
        15
    Midnight  
       2016-11-09 08:24:14 +08:00
    @t123yh 目标没有公网是连不上的,不管怎么打洞,除非用中转
    weakiwi
        16
    weakiwi  
       2016-11-09 08:52:12 +08:00 via Android
    frp 的特权模式,然后写个脚本保证运行
    flyfishcn
        17
    flyfishcn  
       2016-11-09 09:04:14 +08:00
    @Midnight 赞同,如果防火墙是最严格的类型 Symmetric NAT ,只允许内部主动发起连接并且回程数据必须是同一外部主机的同一端口的话,即使用 UDP 打洞,也得是一方有固定公网 IP ,如果双方都在 nat 后,并且外部是 Port Restricted Cone NAT 就没办法实现,就算借助第三方也不行,只能走隧道穿透。
    然而出于安全考虑 Port Restricted Cone 类型比较常见,即使能打洞也很繁琐.
    而我测试了一下自己是在 Symmetric NAT 之后,如果不手动做 nat 映射,几乎很难让外部直接连接。
    S1ahs3r
        18
    S1ahs3r  
       2016-11-09 10:01:46 +08:00
    买了个花生棒还没玩...摆那儿一个月了
    ideaplat
        19
    ideaplat  
       2016-11-09 10:07:17 +08:00
    弄公网 IP
    Midnight
        20
    Midnight  
       2016-11-09 10:12:56 +08:00
    @flyfishcn 专家[握手]
    hanxiV2EX
        21
    hanxiV2EX  
       2016-11-09 10:14:40 +08:00
    ngrok 配置比 frp 复杂。建议用 frp
    mooncakejs
        22
    mooncakejs  
       2016-11-09 10:22:22 +08:00
    @flyfishcn Symmetric NAT 也有相关打洞技术的,关键就是猜对方映射端口,双方互相猜。如果网关映射端口有一定规则,猜测成功率会增加不少。
    msg7086
        23
    msg7086  
       2016-11-09 10:24:43 +08:00
    @Midnight 没有公网 IP 不是问题吧。
    还是你说的是没有公网连接??
    helloccav
        24
    helloccav  
       2016-11-09 10:34:27 +08:00
    @chenshaoju 你说的“绝大多数 NAT 类型”应该不包括移动宽带吧。。。 我这里的移到宽带就没有公网 IP ,也没法通过 NAT 打洞,不知你公司的产品能否应对打洞的两端都是移动宽带的情况?
    mandymak
        25
    mandymak  
       2016-11-09 10:49:06 +08:00
    @helloccav 移動用 SSTP 或 OpenConnect 可打洞.
    binaryer
        26
    binaryer  
       2016-11-09 10:52:46 +08:00
    https://vpip.net
    为你的计算机生成公网 ip, 用 ifconfig/ipconfig 可以看到
    mandymak
        27
    mandymak  
       2016-11-09 11:11:40 +08:00
    @binaryer 阿里云节点。
    chenshaoju
        28
    chenshaoju  
       2016-11-09 11:13:16 +08:00
    @helloccav 移动宽带的确有问题,尤其是前段时间部分地区的移动宽带出现随机丢弃 UDP 数据包的情况, STUN 探测都无法完成。。。
    flyfishcn
        29
    flyfishcn  
       2016-11-09 18:23:44 +08:00
    @mooncakejs 查了下, Symmetric NAT 要求成功建立连接,并且内部外部 2 元组都不能变才能成功。你确定两边都是 Symmetric NAT 可以盲穿?我记得是不可以。剩下的 Port Restricted Cone 也是要求成功连接过一次,感觉也是不可以。剩下的所有类型 nat 均有打洞技术。
    mooncakejs
        30
    mooncakejs  
       2016-11-09 20:03:03 +08:00
    @flyfishcn udp 没有“成功连接一次”这个概念。 恩,这个不保证成功率,但是现实中是有相关技术而且有所应用的,基础就是相关网关产品打开的端口不是毫无规律的。
    flyfishcn
        31
    flyfishcn  
       2016-11-09 21:01:01 +08:00
    @mooncakejs 你错了,我指的成功连接过一次是指,内部发起头个连接,防火墙以相关的 2 元组参数,建立 nat 转发为基础。无论如何,一个外部连接在非内部发起的情况下,不可能完成对内的连接。
    Miy4mori
        33
    Miy4mori  
       2016-11-10 03:17:55 +08:00 via Android
    安利一个 natapp ,自己调试微信公众号使用过,感觉还可以
    mooncakejs
        34
    mooncakejs  
       2016-11-10 10:36:52 +08:00
    @flyfishcn 其实有个中心服务器用于获取双方 ip ,然后双方互相猜端口发 udp ,刚好碰到对方防火墙映射端口与发送端口一致就算成功了,现在的问题就是怎么提高猜测准确度,而有些网关设备打开端口有一定规律(比如递增)等,所以有一定成功率。
    flyfishcn
        35
    flyfishcn  
       2016-11-10 11:36:00 +08:00
    @mooncakejs 我不是专门研究防火墙的,也许可行,只是这种碰撞发生的几率目前还无定论吧?而且这已经和贴主的要求相悖了,可靠 /安装部署方便。我在 1 楼提到的方案都是成品。隧道中转技术现在是很成熟可靠的。
    vultr
        36
    vultr  
       2016-11-10 12:05:36 +08:00
    去工信部的网站投诉,搞个公网的 ip ,哈。
    mooncakejs
        37
    mooncakejs  
       2016-11-10 12:23:38 +08:00
    @flyfishcn 和题主说的无关,只是探讨下。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3468 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 26ms · UTC 11:20 · PVG 19:20 · LAX 03:20 · JFK 06:20
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.