Ubuntu 上 Cobbler 网络问题的定位与修复
一 快速自检流程
- 检查关键服务是否运行:cobblerd、httpd、tftp、dhcp。未运行则启动:sudo systemctl start cobblerd httpd tftp dhcp。
- 校验配置并修复:执行 sudo cobbler check,按提示修正 /etc/cobbler/settings 等关键配置。
- 查看日志定位错误:tail -f /var/log/cobbler/cobblerd.log、/var/log/httpd/error_log、/var/log/syslog。
- 使配置生效:每次修改后执行 sudo cobbler sync。
- 防火墙与 SELinux:开放 80/443 等端口(如 sudo ufw allow 80/tcp),必要时临时禁用 SELinux 验证(sudo setenforce 0),确认后再调整策略。
- 组件依赖:若报缺少模块(如 pyyaml、syslinux),安装:sudo apt-get install python-yaml syslinux。
二 常见网络故障与修复对照表
| 症状 |
高概率原因 |
修复要点 |
| 客户端 PXE 启动后停在 DHCP 阶段 |
同网段存在其他 DHCP;Cobbler 未提供 DHCP;next-server 错误 |
确认仅一台 DHCP;在 /etc/cobbler/settings 将 next_server 设为 Cobbler 服务器 IP;在 /etc/cobbler/dhcp.template 正确配置子网、网关、DNS、range,并执行 cobbler sync |
| 能拿到 IP 但无法下载引导文件(TFTP) |
TFTP 未运行或根目录错误;未下载引导加载器 |
启用并验证 tftp 服务;执行 cobbler get-loaders 下载引导文件;检查 /var/lib/tftpboot 下是否有 pxelinux.0/grub 等文件 |
| 引导后安装器网络不通或静态 IP 未生效 |
preseed 中网络被覆盖;未指定 ifupdown |
在 preseed 中加入:d-i netcfg/target_network_config select ifupdown;或在早期阶段备份并恢复 /etc/network/interfaces |
| 页面或 API 访问异常 |
防火墙阻断 80/443;httpd 未运行 |
放行端口并重载防火墙;启动 httpd 服务 |
| 修改配置后不生效 |
未执行 cobbler sync |
每次修改后执行 cobbler sync 使 DHCP/TFTP 配置落盘生效 |
三 关键配置示例
- 主配置 /etc/cobbler/settings(示例为 10.1.1.1)
- server: 10.1.1.1
- next_server: 10.1.1.1
- manage_dhcp: 1
- manage_tftpd: 1
- DHCP 模板 /etc/cobbler/dhcp.template(示例网段 10.1.1.0/24)
- subnet 10.1.1.0 netmask 255.255.255.0 {
- range dynamic-bootp 10.1.1.100 10.1.1.200;
- option routers 10.1.1.254;
- option domain-name-servers 223.5.5.5;
- filename “/pxelinux.0”;
- next-server $next_server;
- }
- 使配置生效
- 执行:sudo cobbler sync
- 启动服务:sudo systemctl restart cobblerd tftp httpd;必要时 sudo systemctl enable cobblerd tftp httpd
四 安装阶段网络配置要点