开源软件企业

PVE网络配置

2024/3/13 11:25:40

PVE网络配置

PVE创建的时候应该默认创建了vmbr0这个桥接网络(网络IP段设置为192.168.1.XXX),下面,修改/etc/network/interfaces这个文件(里面的解释可能不对,望海涵):

auto lo
iface lo inet loopback

auto eno1
iface eno1 inet static # 这里的网口要用固定地址了 address 101.101.101.101/24 # 这个就是你公司内网的地址 gateway 101.101.101.1 # 这个是你公司的网关地址 post-up echo 1 > /proc/sys/net/ipv4/ip_forward # 下面这两行是做网络转发的,也就是从互联网过来的包你要转给下面的网关继续转到虚拟机 post-up echo 1 > /proc/sys/net/ipv4/conf/eno1/proxy_arp # 同上 auto vmbr0
iface vmbr0 inet static
        address 192.168.1.1/24 # 网桥的地址,这个地址在虚拟机里面要当作网关来使用,在虚拟机里不要再用这个地址了 bridge-ports none # 这个bridge-ports不用设置,千万别设置成eno1,小心整个web端进不去了 bridge-stp off
        bridge-fd 0

        post-up echo 1 > /proc/sys/net/ipv4/ip_forward # 这个也是网络转发相关的,留着不多 post-up iptables -t nat -A POSTROUTING -s '192.168.1.0/24' -o eno1 -j MASQUERADE # 下面两行是网络转发,虚拟机的包转发出去到互联网的,这里的地址是网段地址 post-down iptables -t nat -D POSTROUTING -s '192.168.1.0/24' -o eno1 -j MASQUERADE
        post-up iptables -t raw -I PREROUTING -i fwbr+ -j CT --zone 1 # 下面两行是为了过防火墙用的 post-down iptables -t raw -D PREROUTING -i fwbr+ -j CT --zone 1

post-up iptables -t nat -A PREROUTING -i eno1 -p tcp --dport 2222 -j DNAT --to 192.168.1.2:22. # 下面两行是SSH端口转发的要求,宿主机2222转到虚拟机22端口 post-down iptables -t nat -D PREROUTING -i eno1 -p tcp --dport 2222 -j DNAT --to 192.168.1.2:22

上面修改完毕后,记住运行ifreload -a来更新网络

PVE虚拟机网络设置

虚拟机里面的网络设置就相对简单多了,我用的虚拟机网卡一般是Intel E1000。进入虚拟机后,手动设置一个IP地址,假设是192.168.1.2,掩码是255.255.255.0。这里的网关地址就是上面那个网桥的网关地址192.168.1.1。

都设置好以后,从虚拟机ping下面几个IP地址:

  1. 虚拟机网关192.168.1.1
  2. 宿主机地址101.101.101.101
  3. 宿主机网关101.101.101.1

当上面三个地址都ping通了以后,说明网络基本上就通了。如果ping不通宿主机网关,那说明配置还是有问题,后续联网的时候,包根本到不了网关,也就不能上网。

最后,别忘了虚拟机里面设置代理,没错,虚拟机还要再设置一次http://111.111.111.111:1111,要不然即使能访问网关,但是代理不设置还是出不去的。