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

无公网 IP,如何通过外网访问内网?

  •  
  •   Lpl · 2017-03-06 12:40:00 +08:00 · 3973 次点击
    这是一个创建于 2821 天前的主题,其中的信息可能已经有所发展或是发生改变。

    描述:现有内网 ServerA ,没有公网 IP 。有一客户端 ClientA ,在外网中。

    目的:ClientA 能够通过 ssh 链接 ServerA 里边的任意一台机器。

    问题:如何使得 ClientA 能够访问 ServerA ?

    设想的方案:

    昨天借用搜索引擎查了下,有如下解决方案:

    1. 在公网租一台服务器作为 VPN ;
    2. 让 ServerA 的路由器连接 VPN ;
    3. 让 ClientA 连接 VPN
    4. 此时, ServerA 和 ClientA 就算是打通了,然后配置路由表

    不知道上边的方案是否可行..如果可行的话,有没有稍微具体一点的细节?

    我对计算机网络的知识欠缺的有点多,如果有能指教的,不胜感激

    23 条回复    2017-03-08 10:22:14 +08:00
    jacy
        1
    jacy  
       2017-03-06 12:44:46 +08:00
    用一台 vps , ssh 反向隧道
    DuckJK
        2
    DuckJK  
       2017-03-06 12:47:38 +08:00
    serverA : ssh -R 8000:serverA:80 sshserver -CNfg

    然后 clientA 访问 sshserver:8000
    Lpl
        3
    Lpl  
    OP
       2017-03-06 12:50:52 +08:00
    @jacy ClientA 有很多个,并且一般情况下是在局域网中。我想着是, Client 通过连接 VPN ,然后打通内网 ServerA 。我查了下,貌似反向隧道不能实现这种情况吧?
    tookbra
        4
    tookbra  
       2017-03-06 13:08:22 +08:00
    ngork
    tookbra
        5
    tookbra  
       2017-03-06 13:08:52 +08:00
    额,是 ngrok
    xiaoz
        6
    xiaoz  
       2017-03-06 13:09:58 +08:00
    ngrok 是比较好的,若不想折腾可以用花生壳内网版。
    Lpl
        7
    Lpl  
    OP
       2017-03-06 13:25:04 +08:00
    @DuckJK 没公网的情况下是没有 80 端口的吧..另外,想请问一下,我在 ServerA 的路由表配置下一跳的地址是 VPN Server ,然后 ClientA 链接 VPN Server ,那么 ClientA 的 ip 地址是不是就是 VPN 的局域网地址了?
    Lpl
        8
    Lpl  
    OP
       2017-03-06 13:25:38 +08:00
    @tookbra
    @xiaoz 花生壳估计是不行..我先了解下 ngrok 看看
    changwei
        9
    changwei  
       2017-03-06 13:32:26 +08:00 via Android
    @Lpl 为什么花生壳不行?花生壳内网版亲测有用,只是流量有限制。
    chztv
        10
    chztv  
       2017-03-06 13:39:13 +08:00
    ngrok 方案不错,花生壳内网版有流量及速度限制,这点钱自己租个 VPS ,日本 2.5 刀或者 5 刀的,速度基本上可以接受了。
    当然阿里云是速度最好的方案。
    benjaminliangcom
        11
    benjaminliangcom  
       2017-03-06 13:39:26 +08:00 via Android
    ngrok 感觉比花生壳好用
    truecho
        12
    truecho  
       2017-03-06 13:42:58 +08:00 via iPhone
    ngrok
    acrisliu
        13
    acrisliu  
       2017-03-06 13:50:46 +08:00
    ShylockGou
        14
    ShylockGou  
       2017-03-06 14:07:48 +08:00
    1.ssh -L
    2.n2n
    anubu
        15
    anubu  
       2017-03-06 14:25:57 +08:00   ❤️ 2
    最近也在找此类工具,收集了几个关键词楼主可以参考, ssh 、 n2n 、 frp 、 ngrok
    基本上应该都需要一个公网节点来交换信息
    比较关注是否夸平台、是否方便部署、是否支持 udp 打洞(即是否所有流量都要经过中心节点,当然这个更受网络环境影响)
    似乎没有此类工具的详细讨论,自己玩的话,一个一个试试看了
    yuhaaitao
        16
    yuhaaitao  
       2017-03-06 15:52:02 +08:00 via Android
    @anubu frp 好用不?啥时候做个评测?
    Lpl
        17
    Lpl  
    OP
       2017-03-06 17:05:03 +08:00
    @acrisliu
    @anubu
    @truecho
    @chztv 我先简单了解下 ngrok 和 frp ,看看怎么用
    JiaFeiX
        18
    JiaFeiX  
       2017-03-06 17:26:05 +08:00
    natapp 搜索这个
    hanqi7012
        19
    hanqi7012  
       2017-03-06 17:26:24 +08:00 via Android
    昨天看了 frp 感觉挺强力的唉
    ngork 新版不是不开源了么?
    geeklian
        20
    geeklian  
       2017-03-06 18:03:00 +08:00 via Android
    买个 vps ,部署 openvpn
    vps 做 vpn server
    server 和 vps 之间做 openvpn site to site...
    client 和 vps 之间就是普通的 vpn 连接。
    client 和 server 各自所在内网的子网不一样,就 ok 啦。
    client 可以访问 server 所在内网任何机器。
    jininij
        21
    jininij  
       2017-03-06 18:22:26 +08:00 via Android
    如果是家庭路由器有公网 IP ,推荐关键词:
    内外穿透, upnp , udp/tcp 打洞

    如果是运营商给你的就是内网 IP ,推荐关键词:
    site:v2ex.com 公网 IP
    xmoiduts
        22
    xmoiduts  
       2017-03-06 18:46:05 +08:00 via Android
    ssh -NfR 好上手 可以套 ss 使用,但公网服务器必须承载全部流量且可能被认证。
    flynaj
        23
    flynaj  
       2017-03-08 10:22:14 +08:00 via Android
    用 softether ,两边装桥架一下就行
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5598 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 34ms · UTC 03:16 · PVG 11:16 · LAX 19:16 · JFK 22:16
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.