OpenWRT HTTP端口转发失效求助:本地可访问公网无法访问
问题描述
我尝试将HTTP端口转发至运行lighttpd的Linux桌面,但配置无法生效。服务器运行正常,换用nginx也可正常工作,能通过localhost访问页面,但无法通过公网IP访问。当前配置信息如下:
防火墙区域设置
| Zone > Forwardings | Input | Output | Forward |
|---|---|---|---|
| lan > wan | accept | accept | accept |
| wan > reject | reject | accept | accept |
端口转发配置
config redirect option dest 'lan' option target 'DNAT' option name 'HTTP' option src 'wan' option src_dport '80' option dest_port '80' option dest_ip '192.168.1.100'
附当前设置截图:
- OpenWRT防火墙区域设置
- OpenWRT端口转发设置
请问我哪里配置错误?
排查与解决建议
- 检查WAN区域入站规则:当前WAN区域Input为
reject,需添加允许80端口入站的规则,否则转发流量会被提前拦截。进入OpenWRT防火墙的「流量规则」页面,新增一条来源为WAN、目标端口80的允许规则。 - 验证目标主机连通性:在路由器上执行
ping 192.168.1.100,确认LAN内可正常访问目标主机。若不通,检查目标主机的静态IP设置或LAN网络连接状态。 - 检查本地防火墙:Linux桌面的本地防火墙(如
ufw、firewalld)可能拦截外部请求。临时关闭防火墙测试:
测试正常后,需在本地防火墙上添加允许80端口的规则。# 针对ufw用户 sudo ufw disable # 针对firewalld用户 sudo systemctl stop firewalld - 确认端口转发规则生效:在路由器上执行
iptables -t nat -L PREROUTING -n,查看是否存在对应DNAT规则。若规则缺失,重启防火墙服务:/etc/init.d/firewall restart - 排查ISP端口封禁:部分ISP会封禁80端口用于公共HTTP服务,可临时将转发端口改为8080测试,若能访问则说明原端口被封禁,需使用其他端口或联系ISP协商。
内容的提问来源于stack exchange,提问作者fahimscirex
相关产品推荐
相关产品推荐

