PVE网络配置
原创大约 3 分钟
操作环境说明,本操作基于proxmox-ve: 8.1.0实操
# root@:~# pveversion -v
proxmox-ve: 8.1.0 (running kernel: 6.5.11-7-pve)
pve-manager: 8.1.3 (running version: 8.1.3/b46aac3b42da5d15)
本设备有三个网卡 enp1x0s0 enp1x1s0 wlp1x9s0 , 前两个是千兆物理网卡,后一个是WiFi-6
背景介绍
安装PVE后,需要配置网络容器、虚拟机才能畅享互联网,否则无法联网。本教程通过物理网线连接enp1x0s0接口上网, enp1x1s0 wlp1x9s0 暂时没有用到,暂时不考虑。优先解决容器、虚拟机可以上网。
操作步骤
主要是修改 /etc/network/interfaces 配置文件,修改完后重启电脑即可。
部分IP地址用 xxx 代替
root@:~# cat /etc/network/interfaces
auto lo
iface lo inet loopback
auto enp1x0s0
iface enp1x0s0 inet static
address 192.xxx.xxx.xxx/24
gateway 192.xxx.xxx.1
auto vmbr0
iface vmbr0 inet static
address 10.10.xx.2/24
bridge-ports none
bridge-stp off
bridge-fd 0
post-up iptables -t nat -A POSTROUTING -s 10.10.xx.0/24 -o enp1x0s0 -j MASQUERADE
post-down iptables -t nat -D POSTROUTING -s 10.10.xx.0/24 -o enp1x0s0 -j MASQUERADE
iface enp131s0 inet manual
iface wlp129s0 inet manual
上述配置解释
iface enp1x0s0 inet static 主网卡(有线网卡)enp1x0s0 连接了有线网卡,开启自动启动,配置了静态IP地址
上层路由器可以上网,这里给一个合法的IP地址即可保证主机可以上网
iface vmbr0 inet static 桥接一个虚拟网桥, 分配网段 10.10.xx.2/24 , 在开启或者关闭网卡的时候,在iptables配置网络流量转发给主网卡enp1x0s0以达到上网的目的
其他必要操作
# 开启 IPv4 转发功能(一定要开启,否则虚拟机、容器无法上网)
root@:~# vim /etc/sysctl.conf
root@:~# sysctl -p
net.ipv4.ip_forward = 1
root@:~# cat /proc/sys/net/ipv4/ip_forward
1
# 开启arp代理功能,可以加速网络
root@:/etc/network# sysctl -p
net.ipv4.ip_forward = 1
net.ipv4.conf.wlp129s0.proxy_arp = 1
net.ipv4.conf.enp130s0.proxy_arp = 1
在启用WIFI6的时候的网络配置
此种情况,主机可以通过网口1 和 WIFI网络上网
虚拟机和docker容器通过WIFI网络上网
WIFI网络配置请参照下一篇教程
auto lo
iface lo inet loopback
# Wifi
auto wlp1x9s0
iface wlp1x9s0 inet dhcp
wpa_conf /etc/wpa_supplicant/config
# 网口1
auto enp1x0s0
iface enp1x0s0 inet static
address 172.17.30.150/24
gateway 172.17.30.1
# 网口2
iface wlp12xs0 inet manual
auto vmbr0
iface vmbr0 inet static
address 10.10.xx.2
netmask 255.255.255.0
bridge-ports none
bridge-stp off
bridge-fd 0
post-up iptables -t nat -A POSTROUTING -s 10.10.xx.0/24 -o wlp1x9s0 -j MASQUERADE
post-down iptables -t nat -D POSTROUTING -s 10.10.xx.0/24 -o wlp1x9s0 -j MASQUERADE
一些常用的网络命令,用来排查问题
# 维护路由表
root@:~# iptables -t nat -L --line-numbers
Chain PREROUTING (policy ACCEPT)
num target prot opt source destination
Chain INPUT (policy ACCEPT)
num target prot opt source destination
Chain OUTPUT (policy ACCEPT)
num target prot opt source destination
Chain POSTROUTING (policy ACCEPT)
num target prot opt source destination
1 MASQUERADE all -- 10.10.xxx.0/24 anywhere
2 MASQUERADE all -- 10.10.xxx.0/24 anywhere
# 删除
iptables -t nat -D POSTROUTING 2
# 各种网络排查命令
iptables -t nat -L
route -v
route -n
ip route
netstat -nr
# 说明
# 重新加载,可能造成路由表错乱,网络转换失联
ifreload -a
# 采用 ifdown xx & if up 不会造成失联
# 重启网络服务
systemctl restart networking.service
systemctl status networking.service
apt install net-tools
# 查看路由表
root@:~# route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 192.xxx.1.1 0.0.0.0 UG 0 0 0 enp1x0s0
10.10.xxx.0 0.0.0.0 255.255.255.0 U 0 0 0 vmbr0
192.xxx.1.0 0.0.0.0 255.255.255.0 U 0 0 0 enp1x0s0
###以下是以前排查的做参考
#多网卡不能上网 -- 下面的网关有问题
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 172.xxx.8.1 0.0.0.0 UG 0 0 0 wlp1xxs0
0.0.0.0 172.xxx.30.1 0.0.0.0 UG 0 0 0 wlp1xxs0
#添加网关
route add default gw 172.xxx.8.1
#删除网关
route del default gw 172.xxx.8.1