如何使用 iptables 将 LAN 端口转发至 WAN Ip?

如何使用 iptables 将 LAN 端口转发至 WAN Ip?

在我的路由器 (dd-wrt) 上使用时iptables,我想将对路由器端口 64738 的请求从 LAN 转发到 WAN 上的 IP (192.168.10.14)。这与常规做法 (将请求从 WAN 转发到 LAN 上的 IP) 相反,我无法让它工作。以下是我认为应该有效(但实际上没有)的方法:

root@DD-WRT:~# iptables -t nat -A PREROUTING -p tcp -i vlan0 --dport 64738 -j DNAT --to-destination 192.168.10.14:64738
root@DD-WRT:~# iptables -t nat -A PREROUTING -p udp -i vlan0 --dport 64738 -j DNAT --to-destination 192.168.10.14:64738
root@DD-WRT:~# iptables -A FORWARD -p tcp -d 192.168.10.14 --dport 64738 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
root@DD-WRT:~# iptables -A FORWARD -p udp -d 192.168.10.14 --dport 64738 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT

但是连接尝试(此处路由器的 IP 是 192.168.9.2)失败:

# nmap -p 64738 192.168.9.2

Starting Nmap 6.40 ( http://nmap.org ) at 2013-10-05 22:21 EDT
Nmap scan report for rr-netgear.501s.lyndrew.com (192.168.9.2)
Host is up (0.00024s latency).
PORT      STATE  SERVICE
64738/tcp closed unknown
MAC Address: 4C:60:DE:FF:7E:88 (Netgear)

请注意,点击实际的 WAN IP 可以正常工作:

# nmap -p 64738 192.168.10.14

Starting Nmap 6.40 ( http://nmap.org ) at 2013-10-05 22:21 EDT
Nmap scan report for raspi01.dmz.501s.lyndrew.com (192.168.10.14)
Host is up (0.0091s latency).
PORT      STATE SERVICE
64738/tcp open  unknown

我应该做什么?

答案1

首先分解问题:

  1. 您需要它同时执行 TCP 和 UDP 吗?
  2. 您是否为两个方向都设置了 NAT?(前向路由 + 后向路由)
  3. 首先关闭过滤。(使用接受所有规则)

另外,转储完整的 iptables,以便我们帮助你

iptables -L

附言:我在这里没有看到任何后退路线,猜猜为什么它不起作用

答案2

这有效:

iptables -t nat -A PREROUTING -i br0 -p tcp -d 192.168.9.2 --dport 64738 -j DNAT --to-destination 192.168.10.14:64738
iptables -t nat -A PREROUTING -i br0 -p udp -d 192.168.9.2 --dport 64738 -j DNAT --to-destination 192.168.10.14:64738

相关内容