![如何将 WAN 上的 IP:端口映射到 LAN?](https://linux22.com/image/712317/%E5%A6%82%E4%BD%95%E5%B0%86%20WAN%20%E4%B8%8A%E7%9A%84%20IP%3A%E7%AB%AF%E5%8F%A3%E6%98%A0%E5%B0%84%E5%88%B0%20LAN%EF%BC%9F.png)
我使用 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 上。