通过ssh隧道映射内网设备443端口到本地,这样可以有效减少内网在互联网中的暴漏,减少网络风险。
1. 确认 OpenWrt 的 HTTPS 服务已启用
默认情况下,OpenWrt 的 LuCI Web 界面监听在 80(HTTP)和 443(HTTPS)。可以通过以下命令检查:
1 | netstat -tlnp | grep 443 |
如果看到 :443 的监听,说明 HTTPS 服务已运行。若未启用,可在 LuCI 或通过 UCI 配置启用 uhttpd 的 HTTPS。
2. 在本地机器(电脑)上执行 SSH 本地端口转发
打开终端(Linux/macOS)或使用 PowerShell(Windows 10/11 或安装了 OpenSSH 客户端),运行:
1 | ssh -L 8443:127.0.0.1:443 -p 7011 root@83.229.X.X |
参数解释:
-L 8443:127.0.0.1:443:将本地的8443端口收到的流量,通过 SSH 隧道转发到 OpenWrt 的127.0.0.1:443(即 OpenWrt 本机的 HTTPS 服务)。-p 7011:指定 SSH 连接使用的端口(即您通过 frp 映射的 SSH 端口)。root@83.229.X.X:使用 root 用户登录 OpenWrt(根据您的实际情况替换用户名和 IP)。
执行后,您需要输入 OpenWrt 的 root 密码。登录成功后,该 SSH 会话会保持在前台(您可以加上 -fN 参数使其后台运行)。
3. 在本地浏览器中访问转发后的服务
打开浏览器,访问 https://127.0.0.1:8443。
如果是自签名证书,浏览器会提示不安全,请点击“高级”并选择“继续前往”。
您将看到 OpenWrt 的 LuCI 登录页面。
4. (可选)让 SSH 隧道持久化运行
如果希望 SSH 隧道长期在后台运行,可以使用:
1 | ssh -fN -L 8443:127.0.0.1:443 -p 7011 root@83.229.125.X |
-f后台运行-N不执行远程命令(仅转发端口)
若要停止隧道,找到对应的 SSH 进程并 kill 即可。
扩展:访问内网其他设备的 443 端口
如果您想通过 OpenWrt 访问内网中其他设备的 HTTPS 服务(例如一台 Web 服务器 192.168.1.100 的 443 端口),只需修改转发目标 IP:
1 | ssh -L 8443:192.168.1.100:443 -p 7011 root@83.229.125.X |
这样,本地访问 https://127.0.0.1:8443 就会经过 OpenWrt 转发到内网设备的 443 端口。