我使用Linux机器作为路由器,将eth1上的LAN 192.168.1.1/24路由到eth1上的WAN 172.16.1.5/24 ,这里的IP被分配给这个路由器。
现在我需要将一个HP Jetdirect打印机在172.16.1.21:9100映射到局域网用户的192.168.1.1:9100 。 如何写iptables规则?
基本上,你需要做从WAN接口到局域网的端口转发,这个Wiki可以解答你的问题。
以root身份执行以下操作:
export LAN=eth0 export WAN=eth1 echo 1 > /proc/sys/net/ipv4/ip_forward iptables -t nat -A POSTROUTING -o ${WAN} -j MASQUERADE iptables -t nat -A PREROUTING -p tcp --dport 9100 -i ${WAN} -j DNAT --to 192.168.1.1:9100
iptables -t nat -A PREROUTING -d 192.168.1.1 -p tcp --dport 9100 -i eth1 -j DNAT --to 172.16.1.21:9100
redirect到192.168.1.1上的端口9100的TCPstream量到eth1上的172.16.1.21上的端口9100上。 这假定eth1是192.168.1.1,并且通信通过箱子并且离开它在eth0。