我的服务器上有3个非root用户,我想给每个用户提供不同的IP地址(我在一个网络接口上有多个IP).例如,user1将具有192.168.1.2,user2 – 192.168.1.3等等.或者,如果不可能,我如何将特定进程绑定到给定的IP地址(我建议,可以使用iptables,但是如何?).谢谢.
解决方法
iptables -t nat -A POSTROUTING -m owner --uid-owner user1 -j SNAT --to-source 192.168.1.2 iptables -t nat -A POSTROUTING -m owner --uid-owner user2 -j SNAT --to-source 192.168.1.3 iptables -t nat -A POSTROUTING -m owner --uid-owner user3 -j SNAT --to-source 192.168.1.4
您有责任确保(a)您没有使用POSTROUTING nat链,因此这些规则不会与其他任何内容发生冲突,并且(b)所有这些IP地址都存在于您的NIC上(您不会听到很多回复否则).
这也只会影响从这些用户拥有的进程本地发起的流量.如果用户正在设置网络侦听守护进程,则需要采用不同的方法来处理回复,如果服务器充当路由器,则无法使用;但你没有说这两种情况都适用,所以我没有解决这些问题.