例如
内网机器: 192.168.1.111
VPS 外网 ip: X.X.X.X
建立 VPN 分配的 NAT 地址: 10.10.0.1
需要映射的端口: 80
我在 VPS 上写的规则:
iptables -t nat -A PREROUTING -d X.X.X.X -p tcp --dport 80 -j DNAT --to-destination 10.10.0.1:80
路由器:
iptables -t nat -A PREROUTING -d 10.10.0.1 -p tcp --dport 80 -j DNAT --to-destination 192.168.1.111:80
然而还是没办法成功转发。刚接触 iptables 不久,希望大家指正
1
dot 2016 年 9 月 16 日 via Android
没太看懂,你是说, A 在内网, B 在外网, AB 组成 VPN , C 通过 B 映射的 A 某端口,接到 A 吗?
|
2
dot 2016 年 9 月 16 日 via Android
哦,规则我没看,但是如果你的 VPS 是国内的,在未备案的情况下, 80 端口不可用,你换个端口试试就知道了
|
3
behindflower OP @dot VPS 是香港的,其他端口像 53 88 也试过了
|
4
panzhc 2016 年 9 月 16 日
还缺一条 SNAT
|
5
okudayukiko0 2016 年 9 月 16 日
用 SSH 或许更方便
|
6
twy2004 2016 年 9 月 16 日
还缺一条 SNAT
+1 |
7
behindflower OP |
8
behindflower OP 忘了说,上面的端口是 80 ,后来改成 53 也一样
|
9
su8610 2016 年 9 月 17 日 via Android
干脆弄个反代把本地的 80 弄出去
|
10
raysonx 2016 年 9 月 18 日 via Android
网络结构太复杂了,还两层 nat 。。。没必要从你本地的局域网到 VPN 的虚拟内网还要过层 nat 。
楼主肯定哪个地方没配置好,完整的 nat 规则看不到,防火墙策略看不到,路由表看不到,也没有用 TCPdump 抓包测试,甚至我都不知道你的 VPN 是哪种类型(基于路由表的还是基于 ipsec 策略的)你让大家怎么帮你解决问题 |
11
binaryer 2016 年 9 月 19 日
|
12
lilydjwg 2016 年 9 月 20 日
我试过,这样的转发,好像是不能把流量转发到不同的网络接口上的。
建议:用 autossh 跑一个 ssh 端口转发就好了嘛。 |