Ubuntu本地Rancher主机在GUI中无法显示的问题排查
问题诊断与解决方案:Rancher Agent注册成功但GUI不显示主机
核心问题分析
从你的操作记录和日志来看,Agent已经完成注册且容器处于运行状态,但Rancher Server的GUI里看不到主机,核心问题大概率出在Server与Agent的网络连通性不匹配上——要么是自动检测的通讯IP无法双向访问,要么是Docker网络或系统防火墙阻断了流量。
分步排查与解决步骤
1. 强制指定Rancher Server的通讯IP(关键操作)
你第一次用物理机IP192.168.20.213,后来换成Docker网桥IP172.17.0.1,但两种情况都没显式约束Server的通讯地址。建议启动Server时直接指定物理机IP,避免自动检测的歧义:
sudo docker run -d --restart=unless-stopped -p 8080:8080 -e CATTLE_AGENT_IP=192.168.20.213 rancher/server:stable
这样Server会强制用这个IP和Agent通讯,避免跨网桥的访问问题。
2. 手动指定Agent的上报IP
从第一次的Agent日志能看到:
INFO: DETECTED_CATTLE_AGENT_IP=172.17.0.1
这个是Agent自动检测的Docker网桥IP,但如果Server无法通过这个IP反向访问主机,就会出现"注册成功但不显示"的情况。启动Agent时手动指定物理机IP:
sudo docker run --rm --privileged -v /var/run/docker.sock:/var/run/docker.sock -v /var/lib/rancher:/var/lib/rancher rancher/agent:v1.2.10 http://192.168.20.213:8080/v1/scripts/[你的注册令牌] --agent-ip 192.168.20.213
3. 排查系统防火墙与Docker网络配置
从你更新的syslog来看,出现了veth设备的警告,这可能是防火墙或网络转发的问题:
- 临时关闭ufw测试(如果开启了的话):
如果关闭后主机能显示,说明需要配置ufw允许Docker网桥流量:sudo ufw disablesudo ufw allow in on docker0 sudo ufw allow out on docker0 sudo ufw reload - 检查IP转发是否开启:
若输出为sudo sysctl net.ipv4.ip_forwardnet.ipv4.ip_forward = 0,则开启它:sudo sysctl -w net.ipv4.ip_forward=1 # 永久生效,编辑/etc/sysctl.conf,添加/修改:net.ipv4.ip_forward=1
4. 清理残留数据重新部署
有时候旧的Rancher数据会导致异常,建议彻底清理后重新来:
# 停止并删除所有Rancher相关容器 sudo docker stop $(docker ps -q --filter "name=rancher") sudo docker rm $(docker ps -aq --filter "name=rancher") # 删除Rancher数据目录 sudo rm -rf /var/lib/rancher # 重启Docker服务 sudo systemctl restart docker
之后重新启动Server,生成新的Agent注册命令再执行。
额外排查手段
如果以上步骤都无效,可以查看Rancher Server的容器日志,获取更详细的错误信息:
sudo docker logs [你的rancher-server容器ID]
内容的提问来源于stack exchange,提问作者jordi
相关产品推荐
相关产品推荐

