1️⃣解决无法通过公网域名访问的问题
2021-7-2
| 2025-12-24
字数 447阅读时长 2 分钟
type
status
date
slug
summary
tags
category
icon
password
😀
巴拉巴拉

Docker 网络模式

Docker 默认有多种网络模式,其中常用的包括:
  1. Bridge 模式(默认):容器通过一个虚拟网桥与宿主机通信。每个容器都有自己的独立网络命名空间,localhost 只指向容器内部的地址,而不指向宿主机。
  1. Host 模式:容器与宿主机共享网络命名空间,容器直接使用宿主机的网络接口,localhost 在这种模式下指向宿主机的 localhost

问题原因:网络隔离

cloudflared 容器运行在默认的 bridge 模式下时,容器与宿主机的网络是隔离的:
  • bridge 模式下,localhost 对容器来说是它自己的网络命名空间。尝试访问 localhost:15432 实际上是在访问容器内部的 localhost,而不是宿主机的地址。
  • 如果你想在 bridge 网络模式下从容器访问宿主机的服务,不能直接使用 localhost,而是需要通过宿主机在 Docker 网桥中的 IP 地址(通常是 172.17.0.1)来访问。

解决方法:使用 Host 网络模式

当你使用 --network host 启动 cloudflared 时,容器与宿主机共享网络命名空间,意味着:
  • 容器内的 localhost 就等同于宿主机的 localhost
  • 这样一来,cloudflared 能够直接访问宿主机上运行的 WebUI 服务,因为它们共享相同的网络环境。

因此,在配置过程中第 3 步的命令中,需要进行如下调整:
  • 添加 d 参数使容器在后台运行。
  • 添加 network host 参数使容器与宿主机共享网络命名空间。
 
 
 
  • 推荐
  • Google Colab示例文章
    Loading...