我从几个IP地址接收到与服务器的连接,我希望像rinetd一样路由这些连接,但是基于IP,连接来自于连接到指定主机的地址。
像这样:
IP 10.10.12.1 => CONNECTS TO MY SERVER => MY SERVER REDIRECTS IT TO 82.12.12.1
IP 10.10.12.2 => CONNECTS TO MY SERVER => MY SERVER REDIRECTS IT TO 81.121.12.10
等等
是否有可能或者我需要编写自己的守护程序才能实现此功能?
iptables
可以做到这一点:
sudo iptables -t nat -A PREROUTING -s 10.10.12.1 -j DNAT --to 82.12.12.1
sudo iptables -t nat -A POSTROUTING -s 10.10.12.1 -d 82.12.12.1 -j MASQUERADE
第一条命令更改数据包的目标地址,将其重定向到外部主机。第二个命令更改了源地址,因此外部主机可以将答复发送到您的服务器。
可能您只想重定向目的地为特定端口的数据包,例如,如果10.10.12.1仅通过TCP端口80和1234与82.12.12.1进行通信,则第一个iptables
命令将是:
sudo iptables -t nat -A PREROUTING -s 10.10.12.1 -p tcp -m multiport --destination-ports 80,1234 -j DNAT --to 82.12.12.1
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句