跳转到内容

客户机没有网络 ​

适用范围 ​

宿主机自身网络正常(Web UI 能访问、其他客户机能上网),但某一台虚拟机或容器没有网络:拿不到 IP、能连内网连不了外网,或者完全没反应。

不适用于:所有客户机同时失去网络,那更可能是宿主机网桥或物理网络本身的问题,请先看Web UI 打不开和改网络后失联。只有一台受影响时才按本文排查。

开始排查前 ​

先确认范围:

  • 是这一台一直有问题,还是刚才还好好的突然没了?
  • 是新建的客户机第一次配置网络,还是运行中的客户机突然失联?
  • 客户机是虚拟机(KVM)还是 LXC 容器——两者的排查细节不完全一样。

排查步骤 ​

1. 从宿主机侧确认网卡有没有接上 ​

sh
# 虚拟机
qm config <vmid> | grep net

# 容器
pct config <ctid> | grep net

确认 bridge= 指向的是预期的网桥(通常是 vmbr0)。再确认这个接口真的出现在网桥上:

sh
bridge link show

看不到对应的 tap/veth 接口 → 客户机的虚拟网卡设备可能没有正常创建,通常意味着客户机本身没有正常启动网卡设备,或者配置里网桥名字写错了,先修正 net0 里的 bridge= 参数。

能看到接口 → 网桥这一层没问题,继续下一步。

2. 检查网络相关的开关 ​

sh
qm config <vmid> | grep -E "net0|firewall"

依次确认:

检查项说明
firewall=1 但规则不完整客户机网卡上开了防火墙,如果没有配对应的放行规则,可能挡住流量。临时改成 firewall=0 测试(仅用于诊断)
tag= 误填了 VLAN如果网桥或交换机没有对应的 VLAN 配置,打了 tag 的流量会被丢弃或者送错地方
网卡型号(Model)virtio、e1000 等,下一步会用到

3. 进客户机内部检查 ​

虚拟机:

sh
# 在虚拟机内部(Linux)
ip a
ip link

网卡设备根本不存在 → 客户机操作系统没有识别到这块虚拟网卡,多见于老旧系统不认 VirtIO 驱动。临时把网卡型号换成 E1000 测试,能通就说明是驱动问题,装好 VirtIO 驱动后换回来。

网卡设备存在但没有 up,或者没有拿到地址:

sh
# 在虚拟机内部
ip link set <网卡名> up
dhclient <网卡名>   # 或用系统自带的网络管理工具

容器:先确认容器本身处于运行状态,再检查容器内部:

sh
# 宿主机上
pct exec <ctid> -- ip a

无特权容器(unprivileged)网络异常,多与 pct config 里的 net0 配置本身(网桥、tag、IP 设置)有关,而不是容器内部驱动问题——容器共享宿主机内核,不存在"驱动没装"这一说。

4. 没拿到 DHCP 地址 ​

在路由器(或你的 DHCP 服务器)的租约列表里,查这台客户机的 MAC 地址(qm config <vmid> 或 ip link 里能看到)有没有出现:

  • 没有出现过请求记录 → 说明请求根本没发出去或没到达 DHCP 服务器,回到步骤 1、2 检查网桥和 VLAN。
  • 出现了但没有分配成功 → 检查 DHCP 服务器的地址池是否已耗尽,或者有没有针对这个 MAC 的黑名单/保留策略。

如果客户机配置的是静态 IP,直接检查网段、网关、子网掩码是否填写正确。

5. 能连内网,连不了外网 ​

依次确认:

sh
# 客户机内部
ping <网关IP>
ping 8.8.8.8
cat /etc/resolv.conf   # 或对应系统的 DNS 配置
  • 连网关都不通:网关地址填错,或者网关设备本身有问题。
  • 能 ping 通网关的 IP,但域名解析不了:DNS 配置问题,和网络连通性是两回事。
  • 如果这台客户机用的是 NAT 模式而不是桥接:检查宿主机上的 NAT 转发规则(iptables/nft 里对应的 MASQUERADE 规则)是否还在,配置改动或防火墙重载有时会清掉自定义规则。

6. 容器特有的检查 ​

无特权容器的网络出问题,还可以确认宿主机上有没有相关的拦截规则(比如通过 PVE 防火墙对容器网卡单独设置了规则)。确认容器配置文件里网络那一段和预期一致:

sh
cat /etc/pve/lxc/<ctid>.conf | grep net

确认恢复 ​

  1. 客户机内部能 ping 通网关和外网地址(如 8.8.8.8 或公司/家庭出口)。
  2. 域名能正常解析。
  3. 如果装了 QEMU Guest Agent,PVE 的 Summary 页面能看到这台客户机的 IP 地址。
  4. 需要被其他设备访问的服务,从局域网内其他设备实际连一次,确认端口能通。

仍未解决 ​

准备好这些信息去如何有效求助:

sh
qm config <vmid>       # 或 pct config <ctid>
bridge link show

外加客户机内部 ip a / ip route 的输出,以及问题是从什么时候开始的、期间有没有改过宿主机网络配置。

参考资料 ​

Proxmox VE 非官方中文使用指南,与 Proxmox Server Solutions GmbH 无隶属关系。