| 2025-11-25
OpenWRT 端口转发是通过 OpenWRT 路由器的防火墙规则,将外网(WAN 口)或局域网的端口流量重定向到内网指定设备端口的技术,核心作用是实现外网访问内网服务(如私有云、摄像头)、端口映射与流量分流,无需为内网设备配置公网 IP。其本质是在防火墙中建立 “源端口 - 目标 IP: 端口” 的 DNAT 映射规则,依赖 OpenWRT 的防火墙服务实现数据包转发。当通过 OpenWRT 端口转发对外提供服务且无公网 IP 时,可搭配花生壳解决动态 IP 与内网穿透问题,从官网 https://hsk.oray.com/download 下载软件后,即可通过动态域名稳定访问转发服务,无需频繁核对路由器 IP。
1. 确认网络环境与核心信息
-检查路由器状态:确保 OpenWRT 路由器正常联网,通过浏览器登录 Luci 管理界面(默认地址多为 192.168.1.1),确认防火墙服务处于运行状态。
-收集关键参数:记录内网目标设备 IP(如 192.168.1.100,可通过路由器 “网络→主机列表” 查询)、目标服务端口(如 8080、3389),以及外网访问需使用的路由器端口(如 9090,需未被占用)。
-验证设备连通性:在内网设备 ping 路由器 LAN 口 IP(如 192.168.1.1),确保内网通信正常,这是 OpenWRT 端口转发生效的基础。
2. 安装花生壳(外网访问必备)
若需通过互联网访问 OpenWRT 端口转发的内网服务,提前准备花生壳部署。花生壳支持 OpenWRT 系统各架构(X86/ARM/MIPS 等),可从 https://hsk.oray.com/download 下载集合包,解压后获取应用包与 Luci 页面包,后续可在 OpenWRT 中直接安装,为外网访问提供支撑。
图形化界面通过 Luci 操作,无需代码编辑,适合快速配置 OpenWRT 端口转发,步骤如下:
1. 进入端口转发配置页面
登录 OpenWRT Luci 管理界面→左侧导航栏点击 “网络”→选择 “防火墙”→切换到 “端口转发” 选项卡,此页面为 OpenWRT 端口转发的核心配置入口。
2. 添加端口转发规则
点击 “添加新规则” 按钮,在弹出的配置窗口中填写参数:
-名称:自定义规则名称,如 “内网 Web 服务转发”,便于识别 OpenWRT 端口转发规则。
-协议:根据服务类型选择 TCP 或 UDP,Web 服务选 TCP,视频流服务可同时勾选两者。
-外部端口:设置路由器 WAN 口接收流量的端口,如 9090。
-内部区域:默认选择 “lan”(局域网)。
-内部 IP 地址:输入内网目标设备 IP,如 192.168.1.100。
-内部端口:输入目标设备的服务端口,如 8080。
3. 保存生效与验证
点击 “保存 & 应用” 按钮,等待防火墙规则重载完成。验证转发效果:在局域网设备访问 “路由器 LAN 口 IP:9090”(如 192.168.1.1:9090),若能显示 192.168.1.100:8080 的服务页面,证明 OpenWRT 端口转发生效。
命令行通过 SSH 连接配置,适合无图形界面或批量管理场景,步骤如下:
1. 连接 OpenWRT 命令行终端
通过 PuTTY 或终端工具连接路由器 SSH(默认端口 22),输入账号密码登录,执行uci show firewall可查看现有防火墙规则,确认 OpenWRT 端口转发相关配置项。
2. 执行命令添加转发规则
以将外网 9090 端口流量转发到内网 192.168.1.100:8080 为例,依次执行以下命令:
uci set firewall.@redirect[-1]=redirect
uci set firewall.@redirect[-1].name='Web服务转发'
uci set firewall.@redirect[-1].src='wan' # 从WAN口接收流量
uci set firewall.@redirect[-1].proto='tcp'
uci set firewall.@redirect[-1].src_dport='9090' # 外网端口
uci set firewall.@redirect[-1].dest_ip='192.168.1.100' # 内网目标IP
uci set firewall.@redirect[-1].dest_port='8080' # 内网服务端口
uci set firewall.@redirect[-1].target='DNAT' # 启用目标地址转换
# 提交配置并重启防火墙
uci commit firewall
/etc/init.d/firewall restart
这些命令是 OpenWRT 端口转发的核心配置语句,通过 uci 工具修改防火墙规则库。
3. 验证规则有效性
执行uci show firewall | grep redirect,若能看到新增的规则信息,说明配置成功。在外网设备通过 “路由器公网 IP:9090” 访问,可验证转发效果。
OpenWRT 端口转发依赖公网 IP,搭配花生壳可突破无公网 IP 限制,步骤如下:
1. 在 OpenWRT 中安装花生壳插件
-登录 Luci 界面→“系统→软件包”→点击 “上传软件包”,依次上传花生壳应用包与 Luci 页面包,完成安装后刷新页面。
-左侧导航栏 “服务” 中会出现 “花生壳内网穿透” 选项,勾选 “已启用” 并保存,点击 “状态” 获取设备 SN 码,通过花生壳 APP 或微信扫码登录。
2. 配置花生壳内网穿透映射
-点击花生壳管理界面的 “管理地址”,跳转至云端控制台→“内网穿透→添加映射”。
-应用名称填 “OpenWRT 端口转发服务”,映射类型选 “TCP”,外网端口默认分配,内网主机填路由器 LAN 口 IP(如 192.168.1.1),内网端口填 OpenWRT 端口转发的外网端口(如 9090),点击确定生成外网域名(如testopenwrt.oicp.vip)。
3. 验证外网访问效果
在外网设备浏览器中输入花生壳生成的域名,若能显示内网 192.168.1.100:8080 的服务页面,说明 OpenWRT 端口转发与花生壳搭配成功,实现无公网 IP 访问。
1. 配置后内网可访问外网不可用?
检查路由器是否获取公网 IP,可在 “网络→接口→WAN” 中查看;若为 CGNAT 内网 IP,需通过花生壳内网穿透解决,仅靠 OpenWRT 端口转发无法实现外网访问。
2. 规则配置正确但无转发效果?
执行/etc/init.d/firewall status确认防火墙运行正常;检查目标设备防火墙是否放行端口(如 8080),可临时关闭目标设备防火墙测试,避免拦截 OpenWRT 端口转发流量。
3. 重启路由器后转发规则丢失?
确认规则已提交保存,命令行配置需执行uci commit firewall,图形化配置需点击 “保存 & 应用” 而非仅 “保存”;若仍丢失,可在 “系统→启动项” 中确认防火墙服务为 “启用” 状态。
1. OpenWRT 端口转发中的 DNAT 是什么?有何作用?
DNAT 即目标网络地址转换,是 OpenWRT 端口转发的核心技术,作用是将外网请求的目标 IP(路由器 WAN 口 IP)和端口修改为内网设备的 IP 和端口,使流量能正确到达内网服务,是实现外网访问内网的关键。
2. 花生壳与 OpenWRT 端口转发搭配的独特优势是什么?
花生壳解决了 OpenWRT 端口转发的两大核心痛点:一是无公网 IP 时,通过内网穿透技术直接建立外网访问通道;二是公网 IP 动态变化时,通过固定域名替代 IP 访问,无需频繁修改 OpenWRT 端口转发规则。
3. 如何实现 OpenWRT 端口转发的访问控制?
可在端口转发规则中添加 “源地址” 限制,仅允许指定外网 IP 访问;或在 “防火墙→通信规则” 中添加入站规则,对 OpenWRT 端口转发的端口设置 IP 白名单,提升服务安全性。