如何强制与某个主机的连接使用特定的源IP?

如何强制与某个主机的连接使用特定的源IP?

使用 Shoutcast2 黄页时,有一个非常烦人的问题,即它总是使用系统用于传出连接的默认 IP 来注册自身,即使服务器配置为侦听不同的 ip - 我想我不需要提及这毫无意义,YP 系统无法使用。不能将系统的所有其他 IP 标记为已弃用;我不希望流 IP 成为其他传出连接的默认 IP。

所以我正在寻找一种方法来使这些连接(始终到 yp.shoutcast.com:80)使用特定的源 IP 地址。现有的工具将是完美的,但不需要太多编码的解决方案也很好。我还拥有机器上的 root 访问权限,因此基于 iptables 的解决方案会更好。

答案1

iptables 可以通过 SNAT 目标轻松完成此操作:

iptables -t nat -A POSTROUTING -j SNAT \
    -o eth0 -p tcp --dport 80 --destination yp.shoutcast.com \
    --to-source $STREAM_IP

答案2

ip route add 205.188.87.240 dev eth0 src $SRC_ADDR

相关内容