[{"content":"你好，世界！ 这是我用 Hugo + Cloudflare Pages 搭建的个人博客。\n","permalink":"https://my-blog-1tn.pages.dev/posts/first-post/","summary":"\u003ch1 id=\"你好世界\"\u003e你好，世界！\u003c/h1\u003e\n\u003cp\u003e这是我用 Hugo + Cloudflare Pages 搭建的个人博客。\u003c/p\u003e","title":"我的第一篇博客"},{"content":"同一局域网下，如何用手机浏览器访问电脑 Docker 容器中的 Web 服务？ 在本地开发、测试或折腾私有服务时，我们经常会在电脑的 Docker 中运行各种 Web 应用（例如 Web 管理面板、API 接口、基于 noVNC 的可视化桌面等）。\n很多时候，我们希望直接用身边的手机浏览器来调试或查看这些页面。本文将详细讲解访问逻辑、操作步骤以及如何避开防火墙和代理（VPN）的常见坑。\n目录 一、核心工作原理与端口映射 二、第一步：获取电脑的局域网 IP 三、第二步：放行电脑防火墙端口 四、第三步：手机浏览器访问与验证 五、避坑指南：开启代理（梯子/VPN）导致打不开怎么办？ 六、常见问题排查（FAQ） 七、总结 一、核心工作原理与端口映射 手机访问电脑 Docker 的核心在于 端口映射（Port Mapping）：\n容器与宿主机： 容器有独立的内部网络。启动容器时，通过 -p 宿主机端口:容器端口 把服务暴露给电脑。 监听范围： Docker 默认会将端口绑定在 0.0.0.0，这意味着局域网内的其他设备也可以通过电脑的局域网 IP 访问该端口。 端口作用示例： 如果容器映射了以下 3 个端口：\n5900:5900：原生 VNC 远程桌面端口 6080:6080：基于网页的 noVNC 远程桌面端口 6657:6657：项目的主网页服务 / API 端口 则访问规则为：\n电脑本机访问： http://localhost:6657/ 手机局域网访问： http://\u0026lt;电脑局域网IP\u0026gt;:6657/（例如 http://192.168.1.100:6657/） 手机看图形桌面： http://\u0026lt;电脑局域网IP\u0026gt;:6080/ 二、第一步：获取电脑的局域网 IP Windows 系统 按键盘快捷键 Win + R，输入 cmd 并回车。 在命令行中输入：ipconfig 找到你当前联网的网卡（如“无线局域网适配器 WLAN”或“以太网”），记录下 IPv4 地址（通常形如 192.168.1.X 或 192.168.31.X）。 macOS / Linux 系统 打开终端执行：\n1 2 3 ifconfig | grep \u0026#34;inet \u0026#34; # 或 ip a 找到对应的内网 IP（如 192.168.x.x）。\n三、第二步：放行电脑防火墙端口 Windows 防火墙默认会拦截来自局域网外部设备的访问请求。如果不放行对应端口，手机访问时会一直提示“连接超时”。\n推荐方法：PowerShell 单行命令放行 以管理员身份打开 PowerShell，复制并执行以下命令（以放行 6657 和 6080 端口为例）：\n1 2 3 4 5 # 放行 6657 网页服务端口 New-NetFirewallRule -DisplayName \u0026#34;Allow Docker 6657\u0026#34; -Direction Inbound -LocalPort 6657 -Protocol TCP -Action Allow # 放行 6080 Web桌面端口 New-NetFirewallRule -DisplayName \u0026#34;Allow Docker 6080\u0026#34; -Direction Inbound -LocalPort 6080 -Protocol TCP -Action Allow ⚠️ 注意： 命令请整行复制执行，不要拆分成多行，避免因断行引发 -Direction: The term '-Direction' is not recognized 报错。\n检查网络配置类型（Windows）： 确保当前 Wi-Fi 网络配置为 “专用网络（Private Network）”。如果是“公用网络”，Windows 防火墙会启用极其严格的入站拦截策略。\n四、第三步：手机浏览器访问与验证 连接同一 Wi-Fi： 确保手机连接的无线网络和电脑处于同一个路由器下（避免连接访客 Wi-Fi）。 打开手机浏览器： 在地址栏输入电脑的 IP 和端口：http://192.168.1.100:6657/（请将 192.168.1.100 替换为你电脑的实际 IP） 如果项目包含网页版图形桌面（noVNC），可访问：http://192.168.1.100:6080/ 五、避坑指南：开启代理（梯子/VPN）导致打不开怎么办？ 很多开发者在日常使用中会开启代理软件（如 Clash、v2rayN、Shadowrocket 等），此时极易遇到以下网络问题：\n1. 访问时是填代理 IP 吗？ 不是！依然填电脑的局域网 IP（192.168.x.x）。\n代理节点是公网上的远端服务器，远端服务器无法识别也无法直接路由到你家里的局域网设备。\n2. 手机开启代理后网页打不开 如果手机开启了“全局代理”或 VPN 虚拟网卡（TUN 模式），手机会将 192.168.x.x 的请求错误地转发给境外代理服务器，从而导致“连接超时”或“找不到服务器”。\n解决方案： 在手机上临时关闭代理后再刷新网页；或者在手机代理软件中开启 “绕过局域网 (Bypass LAN)” / 切换至 “规则分流模式 (Rule)”。 3. 电脑开启了 TUN / 全局路由模式 若电脑代理软件开启了深度的 TUN 虚拟网卡接管，可能会屏蔽局域网入站连接。如果手机连接不上，可尝试临时关闭电脑端的 TUN 模式排查。\n六、常见问题排查（FAQ） 问题现象 可能原因 解决办法 手机提示“连接超时 / 无法访问” 1. 电脑防火墙拦截\n2. 手机开了全局代理\n3. 手机与电脑不在同一 Wi-Fi 1. 以管理员身份执行第二步的防火墙命令。\n2. 关闭手机代理。\n3. 确认手机和电脑连接的是同一路由器的非访客网络。 电脑本机能打开，局域网都打不开 Docker 端口仅绑定了本地回环 检查启动参数，避免配置为 -p 127.0.0.1:6657:6657，应使用默认的 -p 6657:6657（绑定至 0.0.0.0）。 不在家（在外使用 4G/5G 流量）想要访问 超出局域网范围 需配合内网穿透（如 FRP、Cloudflare Tunnel）或组网虚拟局域网工具（如 Tailscale、ZeroTier）。 七、总结 实现局域网移动端访问的核心步骤非常简单：\n确认容器启动参数包含 -p（端口映射）。 查 IP： 电脑执行 ipconfig 获取局域网 IPv4。 开防火墙： 使用 New-NetFirewallRule 单行命令放行端口。 连 Wi-Fi 访问： 手机连入同 Wi-Fi，关代理后输入 http://192.168.x.x:端口/ 即可。 ","permalink":"https://my-blog-1tn.pages.dev/posts/%E5%90%8C%E4%B8%80%E5%B1%80%E5%9F%9F%E7%BD%91%E4%B8%8B%E5%A6%82%E4%BD%95%E7%94%A8%E6%89%8B%E6%9C%BA%E6%B5%8F%E8%A7%88%E5%99%A8%E8%AE%BF%E9%97%AE%E7%94%B5%E8%84%91-docker-%E5%AE%B9%E5%99%A8%E4%B8%AD%E7%9A%84-web-%E6%9C%8D%E5%8A%A1/","summary":"\u003ch1 id=\"同一局域网下如何用手机浏览器访问电脑-docker-容器中的-web-服务\"\u003e同一局域网下，如何用手机浏览器访问电脑 Docker 容器中的 Web 服务？\u003c/h1\u003e\n\u003cp\u003e在本地开发、测试或折腾私有服务时，我们经常会在电脑的 Docker 中运行各种 Web 应用（例如 Web 管理面板、API 接口、基于 noVNC 的可视化桌面等）。\u003c/p\u003e\n\u003cp\u003e很多时候，我们希望直接用身边的\u003cstrong\u003e手机浏览器\u003c/strong\u003e来调试或查看这些页面。本文将详细讲解访问逻辑、操作步骤以及如何避开防火墙和代理（VPN）的常见坑。\u003c/p\u003e\n\u003chr\u003e\n\u003ch2 id=\"目录\"\u003e目录\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"#%E4%B8%80%E6%A0%B8%E5%BF%83%E5%B7%A5%E4%BD%9C%E5%8E%9F%E7%90%86%E4%B8%8E%E7%AB%AF%E5%8F%A3%E6%98%A0%E5%B0%84\"\u003e一、核心工作原理与端口映射\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"#%E4%BA%8C%E7%AC%AC%E4%B8%80%E6%AD%A5%E8%8E%B7%E5%8F%96%E7%94%B5%E8%84%91%E7%9A%84%E5%B1%80%E5%9F%9F%E7%BD%91-ip\"\u003e二、第一步：获取电脑的局域网 IP\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"#%E4%B8%89%E7%AC%AC%E4%BA%8C%E6%AD%A5%E6%94%BE%E8%A1%8C%E7%94%B5%E8%84%91%E9%98%B2%E7%81%AB%E5%A2%99%E7%AB%AF%E5%8F%A3\"\u003e三、第二步：放行电脑防火墙端口\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"#%E5%9B%9B%E7%AC%AC%E4%B8%89%E6%AD%A5%E6%89%8B%E6%9C%BA%E6%B5%8F%E8%A7%88%E5%99%A8%E8%AE%BF%E9%97%AE%E4%B8%8E%E9%AA%8C%E8%AF%81\"\u003e四、第三步：手机浏览器访问与验证\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"#%E4%BA%94%E9%81%BF%E5%9D%91%E6%8C%87%E5%8D%97%E5%BC%80%E5%90%AF%E4%BB%A3%E7%90%86%E6%A2%AF%E5%AD%90vpn%E5%AF%BC%E8%87%B4%E6%89%93%E4%B8%8D%E5%BC%80%E6%80%8E%E4%B9%88%E5%8A%9E\"\u003e五、避坑指南：开启代理（梯子/VPN）导致打不开怎么办？\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"#%E5%85%AD%E5%B8%B8%E8%A7%81%E9%97%AE%E9%A2%98%E6%8E%92%E6%9F%A5faq\"\u003e六、常见问题排查（FAQ）\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"#%E4%B8%83%E6%80%BB%E7%BB%93\"\u003e七、总结\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr\u003e\n\u003ch2 id=\"一核心工作原理与端口映射\"\u003e一、核心工作原理与端口映射\u003c/h2\u003e\n\u003cp\u003e手机访问电脑 Docker 的核心在于 \u003cstrong\u003e端口映射（Port Mapping）\u003c/strong\u003e：\u003c/p\u003e\n\u003col\u003e\n\u003cli\u003e\u003cstrong\u003e容器与宿主机：\u003c/strong\u003e 容器有独立的内部网络。启动容器时，通过 \u003ccode\u003e-p\u003c/code\u003e 宿主机端口:容器端口 把服务暴露给电脑。\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003e监听范围：\u003c/strong\u003e Docker 默认会将端口绑定在 \u003ccode\u003e0.0.0.0\u003c/code\u003e，这意味着\u003cstrong\u003e局域网内的其他设备也可以通过电脑的局域网 IP 访问该端口\u003c/strong\u003e。\u003c/li\u003e\n\u003c/ol\u003e\n\u003ch3 id=\"端口作用示例\"\u003e端口作用示例：\u003c/h3\u003e\n\u003cp\u003e如果容器映射了以下 3 个端口：\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e5900:5900\u003c/code\u003e：原生 VNC 远程桌面端口\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e6080:6080\u003c/code\u003e：基于网页的 noVNC 远程桌面端口\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e6657:6657\u003c/code\u003e：项目的主网页服务 / API 端口\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e则访问规则为：\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003e电脑本机访问：\u003c/strong\u003e \u003ccode\u003ehttp://localhost:6657/\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003e手机局域网访问：\u003c/strong\u003e \u003ccode\u003ehttp://\u0026lt;电脑局域网IP\u0026gt;:6657/\u003c/code\u003e（例如 \u003ccode\u003ehttp://192.168.1.100:6657/\u003c/code\u003e）\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003e手机看图形桌面：\u003c/strong\u003e \u003ccode\u003ehttp://\u0026lt;电脑局域网IP\u0026gt;:6080/\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr\u003e\n\u003ch2 id=\"二第一步获取电脑的局域网-ip\"\u003e二、第一步：获取电脑的局域网 IP\u003c/h2\u003e\n\u003ch3 id=\"windows-系统\"\u003eWindows 系统\u003c/h3\u003e\n\u003col\u003e\n\u003cli\u003e按键盘快捷键 \u003ccode\u003eWin + R\u003c/code\u003e，输入 \u003ccode\u003ecmd\u003c/code\u003e 并回车。\u003c/li\u003e\n\u003cli\u003e在命令行中输入：\u003ccode\u003eipconfig\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e找到你当前联网的网卡（如“无线局域网适配器 WLAN”或“以太网”），记录下 \u003cstrong\u003eIPv4 地址\u003c/strong\u003e（通常形如 \u003ccode\u003e192.168.1.X\u003c/code\u003e 或 \u003ccode\u003e192.168.31.X\u003c/code\u003e）。\u003c/li\u003e\n\u003c/ol\u003e\n\u003ch3 id=\"macos--linux-系统\"\u003emacOS / Linux 系统\u003c/h3\u003e\n\u003cp\u003e打开终端执行：\u003c/p\u003e","title":""}]