OpenWrt是一个开源且十分强大的路由操作系统。部分OpenWrt服务器拥有多于一个的IP地址。这些IP地址可以用于设置DMZ主机,使外网用户能直接访问到内网主机的端口上。在本次,使用OpenWrt的Firewall转发来完成这一操作。话不多说,开整~

开始之前,假设OpenWrt拥有2个公网IPv4地址,分别为1.2.3.4/29和1.2.3.5/29,且1.2.3.4/29已被主机占用。内网服务器的IP地址为192.168.1.1/24。

  1. 在Interfaces设置中,将1.2.3.5/29绑定在wan口上,并保证能联通。
  2. 修改Luci/ssh等IP监听配置为仅监听1.2.3.4/29,避免占用端口
  3. 在Network -> Firewall -> Custom Rules加入以下内容,并reload整个Firewall即可

iptables -t nat -A PREROUTING -d 1.2.3.5 -j DNAT –to-destination 192.168.1.1  # 将1.2.3.5的所有traffic转发至192.168.1.1上
iptables -t nat -A POSTROUTING -d 192.168.1.0/24 -j MASQUERADE  # 开启对192.168.1.0/24的钳制NAT转发

经过这样操作,外网可以通过1.2.3.5访问到192.168.1.1上的所有开放的端口。

Enjoy~