我需要确保我的客户端的传出 IP 地址使用分配给他们的专用 IP。
例如,
site123.com 的 IP 为 123.123.123.2(eth0:1)(传入时解析正常)
但它在发出传出请求时使用我的主服务器 ip 123.123.123.1 (eth0)
我该如何改变这种状况?
我在专用服务器上使用 centOS。
答案1
默认情况下,所有内容都会通过默认路由,该路由与默认 eth0 ip 相关联。您可以更改 eth0 和 eth0:0 ip,然后更改默认路由....
如果您只想将其用于某些事情,那么您需要使用 iproute2 包并使用 ip route 命令来指定某些路由规则。 http://linux-ip.net/html/tools-ip-route.html是观察细节的好地方。
这也称为“基于源的路由”。它与“tc”命令(流量整形)一起使用将实现您想要的效果...这是可以做到的,但对于拥有数百个 ip 的 Linux 服务器上的新手管理员来说,这非常困难。
但是,某些程序(例如 wget 等)将允许您指定要使用的网络接口,因此您可以指定 -i eth0:0。
祝你好运!
答案2
cd /etc/sysconfig/network-scripts/
您的接口配置脚本将被命名为“ifcfg-eth0”、“ifcfg-eth1”等。编辑相应接口的脚本,更改“GATEWAY”设置。例如,在我的盒子上,“ifcfg-eth0”如下所示:
DEVICE=eth0
BOOTPROTO=static
ONBOOT=yes
IPADDR=74.201.152.166
NETMASK=255.255.255.255
GATEWAY=10.255.255.1
在您的例子中,从“ifcfg-eth0”文件中删除“GATEWAY”行并将其移动到“ifcfg-eth0:1”(将网关地址更改为适合该 NIC 的任何地址)。然后重新启动网络:
/etc/init.d/network restart