我目前有一个具有多个外部 IP 地址的 openVPN 服务器。
我希望所有 VPN 连接(tun0 接口和/或 10.19.88.xx IP 范围)都使用第二个外部 IP 地址作为“公共 IP”,而不是第一个。
举例来说,使用虚构地址:
Deault eth0 address: 11.12.13.1 (server.domain.tld)
eth0:0 address: 11.12.13.2 (vpn.domain.tld)
所有 VPN 连接当前均使用 11.12.13.1,而不是 11.12.13.2。
有什么办法可以解决这个问题(使用 iptables?)
谢谢
答案1
尝试:
iptables -t nat -A POSTROUTING -s 10.19.88.0/24 -o eth0 -j SNAT --to 11.12.13.2
甚至更好 ;)
iptables -t nat -A POSTROUTING -s 10.19.88.0/24 -j SNAT --to 11.12.13.2
答案2
iptables -t nat -A POSTROUTING -i tun0 -j SNAT --to 11.12.13.2
rkthkr 的响应的问题(除了接口中的奇怪字符之外)是它只会匹配来自 10.19.88.0/24 子网的传入数据包,这些数据包已经从 eth0:0 传出并对其进行了 SNAT。
通过使用-i tun0
,您仅通过数据包进入的接口来识别数据包(我假设这是从 tun0 进入的唯一流量),然后将其 SNAT 到正确的传出 IP。
答案3
同样的问题,iptables -t nat -A POSTROUTING -i tun0 -j SNAT --to 11.12.13.2 在 debian 5 上不起作用
答案4
使用 openvpn 选项而不是引入 iptables 不是更好吗?
本地 11.12.13.2
绑定