通过SSH隧道映射内网Web服务


通过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 端口。