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

咨询一个端口映射的问题,用于外网访问内网

  •  
  •   xiaoyao9933 · 2015-03-21 12:47:18 +08:00 · 1856 次点击
    这是一个创建于 3569 天前的主题,其中的信息可能已经有所发展或是发生改变。
    各位大神,我想通过vpn的方式访问单位内网,我现在遇到如下的一个端口映射问题。

    单位内网ip的服务器:openvpn服务,监听0.0.0.0:1195。
    具有联通公网ip的极路由:开了dropbear,监听0.0.0.0:22,同时绑定了动态域名xx.com
    假定内网服务器访问外网服务器不受内容审查。

    我现在想要构造映射:
    xx.com:1195 --> 内网服务器:1195

    我目前尝试了的手段是:
    在内网服务器执行了如下指令
    autossh -M 0 -o "ServerAliveInterval 10" -o "ServerAliveCountMax 3" -NfR 0.0.0.0:1195:localhost:1195 [email protected]

    但经过一段时间实验,发现存在两个问题是:
    1. 效率低:ssh传输效率不高。
    2. 可用性低:即使用了autossh,也经常发生通道假死,或者通道无法自动重连。

    各位v友是否更可靠的手段?
    14 条回复    2015-03-22 16:30:50 +08:00
    BUPTGuo
        1
    BUPTGuo  
       2015-03-21 13:07:42 +08:00
    ngrok,前一段注意到有这个内网映射外网的
    hjc4869
        2
    hjc4869  
       2015-03-21 13:08:34 +08:00
    同求,我主要是在学校的内网想把电脑的TCP 3389端口映射到服务器上,这样我随时随地都能用手机RDP。。。
    ssh映射我就没成功过,后来就没怎么研究了
    BinbinWang
        3
    BinbinWang  
       2015-03-21 13:11:57 +08:00
    有路由器权限的话 直接端口 映射 不就可以么
    falcon05
        4
    falcon05  
       2015-03-21 13:12:16 +08:00 via iPhone
    好像有个叫狗洞工具,可以试试
    zealic
        5
    zealic  
       2015-03-21 13:22:55 +08:00
    SSH 通道有干扰
    xiaoyao9933
        6
    xiaoyao9933  
    OP
       2015-03-21 13:29:40 +08:00
    @BUPTGuo 你是指自己搭建一个ngrok服务器么?我想利用联通公网ip的原因,就是想让延迟降低。
    xiaoyao9933
        7
    xiaoyao9933  
    OP
       2015-03-21 13:30:23 +08:00
    @BinbinWang 路由器无法主动的判断内网服务器的nat后的端口号,没法映射。
    xiaoyao9933
        8
    xiaoyao9933  
    OP
       2015-03-21 13:55:02 +08:00
    @falcon05 我看了一下,狗洞的官网介绍文字简洁到看不懂。。并且似乎没有提供自己搭建握手服务器的方式。我还是想选个成熟的工具。
    xiaoyao9933
        9
    xiaoyao9933  
    OP
       2015-03-21 13:56:07 +08:00
    @zealic 那有办法改善么?
    infong
        10
    infong  
       2015-03-21 17:36:03 +08:00 via iPhone
    不知道n2n能不能满足要求,建立一个虚拟局域网…然后用socat/netcat做映射。
    ETiV
        11
    ETiV  
       2015-03-21 19:12:13 +08:00
    @hjc4869

    ssh 默认 -fNR 只监听公网机的 127.0.0.1.
    解决这问题需要公网机上 sshd_config 的一个配置 "GatewayPorts yes".

    为了安全我单独开了一个 sshd, 除了有上面的配置, 还加了一行: "AllowUsers nologin"
    这样, 只有 nologin 这个用户才能连到这个 sshd 监听的端口, 而它是没有shell的.
    NewYear
        12
    NewYear  
       2015-03-21 23:44:01 +08:00
    @hjc4869 我记得有一种端口映射工具 通过upnp把内网端口映射出去 网关无设置
    xiaoyao9933
        13
    xiaoyao9933  
    OP
       2015-03-22 12:03:36 +08:00
    @infong socat可以直接建立反向链接么? 类似于ssh -R的功能?
    infong
        14
    infong  
       2015-03-22 16:30:50 +08:00 via iPhone
    @xiaoyao9933 这个不太清楚,我目前采用是n2n的方案…
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5282 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 28ms · UTC 09:28 · PVG 17:28 · LAX 01:28 · JFK 04:28
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.