端口转发正常,但不是来自内部LAN

时间:2017-01-15 19:31:18

标签: portforwarding openwrt

我在使用端口转发的OpenWRT时遇到问题。我在端口443上进行从WAN到DMZ的端口转发。它工作正常。此外,当我使用私有IP从内部LAN访问DMZ时,它工作正常(不涉及端口转发)。但是,使用来自内部局域网的公共IP ,它不起作用。我拒绝了连接。

有没有办法让它有效? (最初我只进行了从WAN到DMZ的端口转发,但有时候我在家里)

1 个答案:

答案 0 :(得分:1)

在转发之前,您需要在nat - prerouting链中重写目标地址。此外,您需要在发送到DMZ之前伪装port forwarded LAN流量。

如果没有伪装,来自DMZ主机的数据包将直接发送到LAN客户端。 LAN客户端将丢弃这些未知数据包,因为LAN客户端期望回复从公共IP而不是DMZ IP返回。

最简单的方法是将所有局域网流量伪装成DMZ网络,如下所示

# Public IP = 208.67.220.220
# Local LAN IP Pool = 192.168.1.0/24
# LAN Interface = 'eth0'
# DMZ Interface = 'eth2'
# DMZ Server IP = 172.16.20.20

iptables -t nat -d 208.67.220.220 -A PREROUTING -i eth0 -j DNAT --to 172.16.20.20
iptables -t nat -s 192.168.1.0/24 -A POSTROUTING -o eth2 -j MASQUERADE

可以通过即兴创作来伪装端口转发的流量。我会把它留给原来的海报。