欢迎光临
我们一直在努力

不用公网 IP,手机通过 5G 访问内网 Docker 服务

在 NAS、虚拟机或内网服务器中部署 Docker 服务很方便,但服务启动后往往只能在本地网络访问。人在外面想打开测试网站、内部面板或自建应用,传统做法通常是申请公网 IP、配置端口映射,再处理动态域名和安全防护。

这次换一种方式:在飞牛 OS 中实际部署一个 Nginx 容器,再使用星空组网的子网路由功能,让手机在 5G 网络下直接访问它的内网地址。

星空组网子网路由的价值,不只是连接两台安装了客户端的设备。它可以让一台在线设备充当网关,把这台设备能够访问的整个局域网开放给指定成员。这样,Docker 容器、NAS、摄像头等无法或不方便安装客户端的设备,也能通过原来的内网 IP被远程访问。

整个过程没有把 8088 端口映射到公网,也没有给 Nginx 容器安装组网客户端。最终访问链路如下:

Android 手机(5G)
│
│ 星空组网
▼
Windows 11(子网路由网关)
│
│ 192.168.71.0/24
▼
飞牛 OS Docker
Nginx:192.168.71.128:8088

文中的地址和端口是本次实测参数。复现时应替换为自己的 Docker 主机地址、端口和目标网段。

一、这个场景解决什么问题

许多自建服务只监听在局域网中,例如:

  • Docker 管理面板;

  • 内部测试网站;

  • Home Assistant 等家庭服务;

  • Git、知识库和监控面板;

  • 不准备公开发布的开发环境。

这些服务并不适合直接开放到公网,但使用者又希望在外出时随时访问。

星空组网子网路由提供的思路是:不改动每个 Docker 容器,也不逐个建立公网映射,而是让一台已经加入星空组网、同时能访问 Docker 主机的设备作为网关。授权设备连接星空组网后,就能继续使用服务原来的局域网地址。

本次实测参数如下:

项目实测值
Docker 主机 飞牛 OS 虚拟机
Docker 主机 IP 192.168.71.128
测试服务 Nginx
主机访问端口 8088
Nginx 容器端口 80
子网路由目标网段 192.168.71.0/24
子网路由网关 Windows 11
授权设备 Android 手机

二、在飞牛 OS 中下载 Nginx 镜像

登录飞牛 OS,打开 Docker 应用,进入“镜像仓库”。在列表中找到官方 nginx 镜像。

在这里插入图片描述

图 1 镜像仓库提供官方 Nginx 镜像,可直接下载并创建容器

点击 Nginx 右侧的下载按钮。镜像标签保持默认的:

latest

在这里插入图片描述

图 2 下载 Nginx 的 latest 镜像用于本次 Web 服务测试

下载完成后,进入“本地镜像”,可以看到 Nginx 镜像已经保存到飞牛 OS。

在这里插入图片描述

图 3 Nginx 镜像下载完成,可以从本地镜像直接运行

三、创建容器并映射 8088 端口

点击 Nginx 镜像右侧的运行按钮创建容器。

Nginx 默认在容器内部监听 80 端口。本次将飞牛 OS 的 8088 端口映射到容器的 80 端口:

主机端口 8088 → 容器端口 80 / TCP

网络模式使用默认的 bridge 即可。

需要注意,界面中两个端口框的含义不同:

  • 主机端口决定局域网用户实际访问哪个端口;

  • 容器端口必须对应 Nginx 在容器内部监听的端口。

创建完成后,容器列表中的 Nginx 显示蓝色运行状态,CPU、内存和网络数据也开始更新。

在这里插入图片描述

图 4 Nginx 容器已经启动并保持运行

四、先在内网确认 Docker 服务正常

远程访问之前,必须先在能够访问飞牛 OS 的 Windows 电脑上打开:

http://192.168.71.128:8088

浏览器显示“Welcome to nginx!”,说明以下环节均正常:

  • Nginx 容器已经启动;

  • 8088 → 80 端口映射有效;

  • Windows 可以访问飞牛 OS 所在的内网;

  • 飞牛 OS 防火墙没有阻止该连接。

在这里插入图片描述

图 5 Windows 通过飞牛 OS 的局域网 IP 和 8088 端口打开 Nginx

这一步很重要。如果网关设备本身都打不开服务,子网路由也无法把服务“变通”。应先解决容器、端口或防火墙问题,再检查远程访问。

五、用星空组网子网路由承载整个内网服务

本次使用星空组网管理平台创建子网路由,核心配置为:

网关设备:Win11
目标网段:192.168.71.0/24
网卡:VMware Network Adapter VMnet2
授权设备:Android-5G
状态:正常

在这里插入图片描述

图 6 星空组网已发布 192.168.71.0/24 网段,子网路由状态为“正常”

这里发布的是整个 192.168.71.0/24 网段,而不是单独发布 Nginx 的 8088 端口。

这意味着同一网段中新增服务后,只要满足以下条件,通常不需要再创建一条新的子网路由:

  • Windows 网关可以访问该服务;

  • 目标设备和防火墙允许连接;

  • 访问设备已经获得这条子网路由的授权。

  • 因此,前一次能够访问飞牛 OS 管理页面后,这次新增 Nginx 容器不需要再次申请公网端口,也不需要给容器安装额外客户端。192.168.71.0/24 这条路由已经覆盖 192.168.71.128:8088。

    这正是星空组网子网路由区别于单端口映射的重要价值:它连接的是一个网络,而不是只暴露某一个服务端口。以后在该网段中新增其他 Web 服务,也可以继续复用这条路由。

    六、手机使用 5G 访问内网 Nginx

    手机关闭 Wi-Fi,使用 5G 网络,并连接星空组网。然后在手机浏览器中输入:

    http://192.168.71.128:8088

    页面成功显示“Welcome to nginx!”。

    在这里插入图片描述

    图 7 手机没有连接本地 Wi-Fi,仍能通过子网路由访问内网 Nginx 服务

    截图顶部可以看到手机正在使用 5G,并且星空组网处于连接状态。手机访问的仍然是 192.168.71.128 这个私有地址,而不是公网 IP或经过改写的外部域名。

    最终数据路径为:

    手机浏览器
    → 星空组网连接
    → Windows 11 子网路由网关
    → VMware VMnet2
    → 飞牛 OS 8088 端口
    → Nginx 容器 80 端口

    七、星空组网子网路由为什么适合内网 Web 服务

    不需要公网 IP

    即使家庭宽带位于运营商大内网,只要网关和授权设备能够连接星空组网,就可以通过子网路由建立访问路径。

    不逐个配置公网端口映射

    新增一个局域网服务,不必再次登录路由器,把端口暴露到互联网。本次 Nginx 只在飞牛 OS 的内网地址上提供服务。

    Docker 容器不用安装组网客户端

    Nginx 使用标准官方镜像,没有为了远程访问而修改镜像,也没有在容器中安装星空组网。访问能力由星空组网子网路由统一提供。

    继续使用原局域网地址

    Windows 本地访问和手机远程访问使用的是同一个地址:

    http://192.168.71.128:8088

    开发工具、浏览器收藏和内部文档不需要同时维护“内网地址”和“外网映射地址”。

    一条路由可以承载多个服务

    同一台主机后续还可以运行其他端口的应用。只要这些服务位于已发布网段中,并符合访问控制要求,就可以继续通过原内网 IP访问。

    八、总结

    本次实操在飞牛 OS 中部署了一个 Nginx Docker 服务,并通过 Windows 电脑发布 192.168.71.0/24 子网路由。手机关闭 Wi-Fi、使用 5G 并连接星空组网后,成功打开:

    http://192.168.71.128:8088

    这个地址与 Windows 在局域网中使用的地址完全相同。整个过程没有申请公网 IP,没有配置路由器公网端口映射,也没有在 Nginx 容器中安装额外的组网客户端。

    这次测试体现了星空组网子网路由最直接的价值:它连接的不只是几台安装了客户端的设备,还能通过一台网关,把设备背后的整个局域网接入组网。NAS、Docker 服务、摄像头、打印机和其他内网设备,都可以继续使用原来的局域网 IP和端口进行访问。

    一台网关连接一个网段,一条子网路由打通多个内网服务。通过星空组网,人在外面也能像身处本地局域网一样,直接访问原来的内网地址。

    赞(0)
    未经允许不得转载:171主机测评 » 不用公网 IP,手机通过 5G 访问内网 Docker 服务
    分享到: 更多 (0)

    评论 抢沙发

    • 昵称 (必填)
    • 邮箱 (必填)
    • 网址