我在使用端口转发的OpenWRT时遇到问题。我在端口443上进行从WAN到DMZ的端口转发。它工作正常。此外,当我使用私有IP从内部LAN访问DMZ时,它工作正常(不涉及端口转发)。但是,使用来自内部局域网的公共IP ,它不起作用。我拒绝了连接。
有没有办法让它有效? (最初我只进行了从WAN到DMZ的端口转发,但有时候我在家里)
答案 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
可以通过即兴创作来伪装端口转发的流量。我会把它留给原来的海报。