我使用 Linux 机器作为路由器来路由 LAN192.168.1.1/24连接eth1
至 WAN172.16.1.5/24,eth0
并且这里的IP分配给这个路由器。
现在我需要映射 HP Jetdirect 打印机172.16.1.21:9100到 LAN 作为192.168.1.1:9100对于局域网用户,如何写iptables
规则?
答案1
基本上,你需要从 WAN 接口到 LAN 进行端口转发,这维基百科回答你的问题。
以 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
答案2
iptables -t nat -A PREROUTING -d 192.168.1.1 -p tcp --dport 9100 -i eth1 -j DNAT --to 172.16.1.21:9100
将通过 eth1 发往 192.168.1.1 端口 9100 的 TCP 流量重定向到 172.16.1.21 端口 9100。假设 eth1 为 192.168.1.1,流量通过该盒子后留在 eth0 上。