两台 server 没有公网 ip ( server 连接的路由器倒是有教育网的 ip ),boss 想在公网访问,想利用手上一台 vps 做内网穿透,比如把 server 的 1:10000 端口映射到 vps 的 10001:20000 上
尝试的做法是 vps 上搭个 openvpn server,两台 server 连接之后用 iptables 的 DNAT 映射把 vps 指定端口转发给 10.8.0.x,但是遇到了两个问题
1 是 iptables 没法非对称映射端口段
(要么 8000→20000 单个端口映射
要么 1000:2000→1000:2000 对称映射
没法 1:10000→10001:20000 非对称的端口段映射)
2 是 server 连接 ovpn 之后,server 的全部流量都走那个 ovpn 的虚拟网卡了....
又因为从 vps 传到 server 的请求是从公网来的,源 ip 都是公网 ip,没法单独区分返回的数据包只让它走虚拟网卡...
如果配置上 no-route,那么除了来自虚拟子网、源 ip 是 10.8.0.x 的请求能通过虚拟网卡回去,
一般来自公网的请求都会尝试走物理网卡回去,也就是实际上收不到返回值...
求 v 友们提供一个大方向的思路(server 还是走自己的流量,只有来自公网→vps 的请求返给 vps,并且同时做两台 server)
1
vincentxue 2019-07-08 10:49:52 +08:00 2
粗略看了下, 感觉 frp 符合你两点要求啊. 1 用端口段映射, 2 用外网和内网访问可以区分.
|
2
anyclue 2019-07-08 11:24:52 +08:00 2
同楼上,不行 ngrok,怎么还自建上了
|
3
topbandit 2019-07-08 11:55:51 +08:00
非对称端口应该是可以改的,要用 3 条规则,没有实际用过
|
4
snable 2019-07-08 12:57:14 +08:00 via Android 1
同意 1 楼,另外 VPS 得给力,流量出入都靠它了。
|
5
MeteorCat 2019-07-08 13:00:58 +08:00 via Android
我现在内网穿透都是无脑推荐 frp
|
6
wslzy007 2019-07-08 13:38:55 +08:00
有关端口范围映射,ovpn 与 frp 实现完全不同,ovpn 是在三层进行,而 frp 为四层代理,你懂的,他真的会给你进行 1 对 1 端口转发,上万个端口的话,算了吧,建议放弃 frp
|
7
hangvane OP @vincentxue 非常感谢,我尝试下 frp
|
8
hangvane OP @wslzy007 其实平常用的不多,开放的端口也就几个...主要是想一劳永逸,server 开了哪个端口,直接端口号+10000 就能通过 vps 访问就好了
|
9
suhongbo 2019-07-08 15:39:50 +08:00
个人用 FRP,还是没什么问题的
|
10
zzxzzxhao 2019-07-08 16:12:10 +08:00
frp+1
|
11
hangvane OP frp 已搞定,作者称不适用大端口段转发,亲测绑定两台共 20000 端口能实现,具体能不能稳定运行还有待观察
|