我有一台 VPS 服务器(托管在 OVH 云中),并配置了故障转移 IP
$ nano /etc/network/interfaces
auto lo
iface lo inet loopback
# Source interfaces
# Please check /etc/network/interfaces.d before changing this file
# as interfaces may have been defined in /etc/network/interfaces.d
# See LP: #1262951
source /etc/network/interfaces.d/*.cfg
auto ens3:0
iface ens3:0 inet static
address MY_FAILOVER_IP
netmask 255.255.255.255
# IPFO 1
post-up /sbin/ifconfig ens3:0 MON_IP_FAILOVER netmask 255.255.255.255 broadcast MON_IP_FAILOVER
pre-down /sbin/ifconfig ens3:0 down
我遵循Digital Ocean 教程在我的服务器上安装 OpenVpn。它有效,但现在,我希望我的输出 IP 不是我的服务器的 IP,而是我的故障转移 IP 的 IP。
所以,我看到了这个 cmd
iptables -t nat -A POSTROUTING -s 10.8.0.0/8 ! -d 10.8.0.0/8 -j SNAT --to-source ipfailover
但是,我没有工作,我一直有我的服务器ip
digitalocean 的第 8 步调整服务器网络配置“我们修改了 UFW 规则,因此我尝试根据我的要求进行调整,如下所示:
$ nano /etc/ufw/before.rules
# START OPENVPN RULES
# NAT table rules
*nat
:POSTROUTING ACCEPT [0:0]
# Allow traffic from OpenVPN client to wlp11s0 (change to the interface you discovered!)
-A POSTROUTING -s 10.8.0.0/8 -o ens3 -j MASQUERADE
## I ADDED IN MORE :
-A POSTROUTING -s 10.8.0.0/8 ! -d 10.8.0.0/8 -j SNAT --to-source MON_IP_FAILOVER
COMMIT
# END OPENVPN RULES
但它不起作用。
你能帮助我吗?谢谢
答案1
假设您从 OVH 购买了故障转移 IP,您的 iptables 规则将允许系统就主机操作系统而言修复数据包的源地址(如果您有防火墙规则阻止其他 IP/等,则很有用)。您说它不起作用是什么意思?您想完成什么?如果您尝试设置负载平衡和故障转移,您是否有单独的物理接口?我猜您应该能够 ping 故障转移 IP,但您可能无法指定 OVH 用于出站流量的 IP,尤其是当它通过同一个虚拟接口时。(我假设您在他们的网络内使用内部地址,然后他们进行转换,如果我错了,请纠正我。)
答案2
iptables -t nat -I POSTROUTING -s [VPN CLIENT IP] -j SNAT --to-source [FAILOVER IP]
这个对我有用