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

2015-03-21 12:47:18 +08:00
 xiaoyao9933
各位大神,我想通过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 root@xx.com

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

各位v友是否更可靠的手段?
1655 次点击
所在节点    问与答
14 条回复
BUPTGuo
2015-03-21 13:07:42 +08:00
ngrok,前一段注意到有这个内网映射外网的
hjc4869
2015-03-21 13:08:34 +08:00
同求,我主要是在学校的内网想把电脑的TCP 3389端口映射到服务器上,这样我随时随地都能用手机RDP。。。
ssh映射我就没成功过,后来就没怎么研究了
BinbinWang
2015-03-21 13:11:57 +08:00
有路由器权限的话 直接端口 映射 不就可以么
falcon05
2015-03-21 13:12:16 +08:00
好像有个叫狗洞工具,可以试试
zealic
2015-03-21 13:22:55 +08:00
SSH 通道有干扰
xiaoyao9933
2015-03-21 13:29:40 +08:00
@BUPTGuo 你是指自己搭建一个ngrok服务器么?我想利用联通公网ip的原因,就是想让延迟降低。
xiaoyao9933
2015-03-21 13:30:23 +08:00
@BinbinWang 路由器无法主动的判断内网服务器的nat后的端口号,没法映射。
xiaoyao9933
2015-03-21 13:55:02 +08:00
@falcon05 我看了一下,狗洞的官网介绍文字简洁到看不懂。。并且似乎没有提供自己搭建握手服务器的方式。我还是想选个成熟的工具。
xiaoyao9933
2015-03-21 13:56:07 +08:00
@zealic 那有办法改善么?
infong
2015-03-21 17:36:03 +08:00
不知道n2n能不能满足要求,建立一个虚拟局域网…然后用socat/netcat做映射。
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
2015-03-21 23:44:01 +08:00
@hjc4869 我记得有一种端口映射工具 通过upnp把内网端口映射出去 网关无设置
xiaoyao9933
2015-03-22 12:03:36 +08:00
@infong socat可以直接建立反向链接么? 类似于ssh -R的功能?
infong
2015-03-22 16:30:50 +08:00
@xiaoyao9933 这个不太清楚,我目前采用是n2n的方案…

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/178418

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX