You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

全新Ubuntu安装后Docker任意模式下均无法连接网络

全新Ubuntu安装后Docker任意模式下均无法连接网络

我之前也碰到过类似的Docker网络问题,给你几个实用的排查和解决方向,你可以一步步试试:

  • 先检查主机的DNS配置
    Docker默认会继承主机的DNS设置,如果主机本身的DNS服务器不可用,容器自然也无法解析域名。你可以先查看主机的DNS配置:

    cat /etc/resolv.conf
    

    如果里面的DNS地址(比如默认的systemd-resolved的127.0.0.53)在容器里无法访问,建议手动换成公共DNS,比如8.8.8.8、1.1.1.1。修改后记得重启systemd-resolved和Docker服务:

    sudo systemctl restart systemd-resolved
    sudo systemctl restart docker
    
  • 排查防火墙规则干扰
    Ubuntu默认的ufw防火墙有时候会阻止Docker的网络转发。你可以先临时关闭ufw测试一下:

    sudo ufw disable
    

    如果关闭后容器能正常联网,那就是ufw的规则问题。需要给Docker添加转发规则:编辑/etc/ufw/after.rules文件,在末尾添加以下内容:

    # Docker网络转发规则
    *nat
    :POSTROUTING ACCEPT [0:0]
    -A POSTROUTING -s 172.17.0.0/16 ! -o docker0 -j MASQUERADE
    COMMIT
    

    保存后重启ufw和Docker:

    sudo ufw reload
    sudo systemctl restart docker
    
  • 强制给Docker配置公共DNS
    有时候主机的DNS设置没被Docker正确继承,你可以直接在Docker daemon配置里指定DNS服务器。新建或编辑/etc/docker/daemon.json文件,写入:

    {
      "dns": ["8.8.8.8", "8.8.4.4"]
    }
    

    然后重启Docker服务让配置生效:

    sudo systemctl restart docker
    
  • 检查内核IP转发是否开启
    Docker依赖内核的IP转发功能,如果这个功能没开,容器也无法联网。先查看当前状态:

    sysctl net.ipv4.ip_forward
    

    如果输出是net.ipv4.ip_forward = 0,说明没开启,执行以下命令临时开启:

    sudo sysctl -w net.ipv4.ip_forward=1
    

    要让设置永久生效,编辑/etc/sysctl.conf文件,添加或修改一行:

    net.ipv4.ip_forward=1
    

    保存后执行sudo sysctl -p让配置立即生效。

备注:内容来源于stack exchange,提问作者Carson McNeil

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.16 08:44:34