PVE + LEDE 安装中遇到的问题
1. 光猫改桥接
北京联通光猫自带拨号功能,要使用软路由,首先需要将光猫改为桥接,去掉拨号功能。光猫的后台登录地址是:http://192.168.1.1
使用网线或者WIFI连接光猫,按照如下步骤操作:
- 进入 http://192.168.1.1/hidden_version_switch.gch 选default version,密码CUAdmin
- 机器重启之后就可以进入 http://192.168.1.1/cu.html了 选管理员账户,密码CUAdmin
- 选择 基本配置 - 上行线路配置,选择新建WAN连接,勾选DHCP服务是能,VLAN模式选 改写tag,然后在VLAN ID里填3961。保存之后删除其他的WAN连接。
- 进入 http://192.168.1.1 选择网络 - 宽带配置,连接名称选择刚才简历的3961,然后点击确定即可。
如果要恢复初始状态,在hidden_version_switch.gch里选beijing,然后在配置页面里输入宽带账号即可。
2. 网络规划
在安装之前首先规划整个网络拓扑图,配置如下:
- 光猫: 192.168.1.1
- LEDE:192.168.1.1
- 硬路由:192.168.1.2
- PVE: 192.168.1.3
首先进入路由器,将其LAN口IP设置成192.168.1.2,这样通过192.168.1.2即可登录路由器的管理后台。
软路由有两个网口,其中eth0(enp1s0)作为lan口,eth1(enp2s0)作为wan口。如果安装PVE时两个网口都连着网线,会默认选择enp2s0作为PVE的网卡,注意将其改为enp1s0。
可以用网线将电脑的网口和PVE的eth0连接,电脑IP设置成192.168.1.4,子网掩码设置成255.255.255.0,网关设置成192.168.1.1,即可登录PVE后台https://192.168.1.3:8006
也可以电脑连接无线路由器,将PVE的eth0与路由器的LAN口相连,这样电脑也可以打开PVE管理后台 https://192.168.1.3:8006
网关用于局域网和互联网通信,如果网关填写错误,则表现为局域网内可以通信(PVE和LEDE后台可以访问,但是无法访问互联网)。
如果IP地址在安装时填写错误需要修改,PVE下需要更改三个文件,分别是 /etc/network/interfaces
、/etc/issue
和/etc/hosts
,LEDE下更改/etc/config/network
。
3. 安装PVE
安装PVE可使用balenaEtcher将PVE的iso文件写入U盘,然后从U盘启动安装,安装时注意设置IP 192.168.1.3、子网掩码255.255.255.0及网关192.168.1.1,同时合理划分硬盘。
swapsize根据内存合理设置,最少填4(单位为GB),如swapsize设置为0,将不会创建swap逻辑卷。
maxroot为根目录大小,定义root逻辑卷的容量大小,最大值限制为hdsize/4,root逻辑卷主要用于保存ISO操作系统镜像
maxvz可填0,不使用数据卷。
这样安装好后,除去根目录和swap使用的4GB,剩余的都可以分配挂载至/root目录,挂载方法如下:
vgdisplay # 查看Free PE剩余空间,如为113986
lvcreate -l113986 -n data pve # 创建名为data的逻辑卷
mkfs.xfs /dev/pve/data # 格式化为xfs
mount /dev/pve/data /root # 挂载到/root
echo "/dev/pve/data /root xfs defaults 0 1" >> /etc/fstab # 写入/etc/fstab
通过这种方式节省了系统空间,但是没有了local-lvm卷,在使用./img2kvm openwrt-x86-64-combined-squashfs.img 100 vm-100-disk-0
转换时,会提示无local-lvm,将此命令修改为./img2kvm openwrt-x86-64-combined-squashfs.img 100 vm-100-disk-0 local
即可。
在PVE管理页面,home->系统->网络,查看vmbr0的IPv4及网关信息,如果之前填写错误会导致网络无法访问,修改后点击应用配置重启网络。修改后的配置文件为/etc/network/interfaces
,使用systemctl status networking
重启网络。
要开启硬件直通,修改/etc/default/grub
,将GRUB_CMDLINE_LINUX_DEFAULT
改为GRUB_CMDLINE_LINUX_DEFAULT = "quiet intel_iommu=on"
,同时更新/etc/modules
,添加如下行:
vfio
vfio_iommu_type1
vfio_pci
vfio_virqfd
然后重启即可在新建的虚拟机上添加PCI设备,注意不能直通PVE的管理网络及enp1s0,否则会导致PVE管理页面进不去,只直通其余网口即可。
3. 安装 LEDE
先进入PVE的管理后台,https://192.168.1.3:8006 。在home - 系统 - 网络下,选择创建 Linux Bridge,只需要填写桥接端口即可。
然后点右上角新建虚拟机,节点100,节点名称LEDE,操作系统不使用任何介质,其他都默认,CPU和内存根据实际情况填写即可。
完成之后在home下面点击LEDE - 硬件,添加一个网络设备,由于vmbr0默认已经分配了,这里只需要添加vmbr1即可,模型选半虚拟化(如果是Intel网卡可以选Intel E1000,据说兼容性比较好)。
点击硬盘,分离,然后删除,然后下载固件: PE写盘专用
在百度搜索下载一个img2kvm,将下载好的固件openwrt-x86-64-generic-squashfs-combined-efi.img上传到PVE的/root
目录下,执行如下命令:
chmod +x img2kvm
./img2kvm openwrt-x86-64-generic-squashfs-combined-efi.img 100 vm-100-disk-0 local
执行完毕之后,在硬件下即可看到一个未使用的硬盘,双击添加。然后在home->lede->选项->引导顺序里将scsi硬盘移到最上面,然后就可以启动LEDE了,在控制台可以看到启动过程。
成功启动之后就可以进入LEDE的管理界面了 http://192.168.1.1
4. 配置LEDE
lede管理页面的默认密码是koolshare,进入网络 - 接口,选择 WAN,编辑将协议改为PPPoE,然后点击切换协议,填写拨号的账号密码,检查一下物理设备是否为eth1,然后点击保存并应用,将eth1与光猫连接,一切正常的话即可拨号成功。在PPPoE协议下MAC地址都是0,这个无需担心。
将软路由的eth1和路由器的LAN口相连(注意不是WAN口),此时192.168.1.1和192.168.1.3也可以登录LEDE后台和PVE后台。如果将路由器的WAN口改为自动获取IP,软路由eth1连接WAN口,则路由器设备处于一个局域网,软路由和PVE处于另一个局域网。
此时连线方式为:
硬路由关闭DHCP
eth1 -> 光猫
eth0 -> 硬路由的LAN口
由于光猫和LEDE都有DHCP服务,如果无法电脑连接WIFI后无法获取IP地址,在LEDE的网络 - 接口 - LAN中,选择编辑,下面的DHCP服务器,选高级设置,勾选强制,然后保存并应用,此时应该能够正常获取IP了。
5. PVE注意事项
千万不要随便修改 /etc/hostname,/etc/hosts,否则可能导致虚拟机启动不来,hostname和虚拟机是相关的,如果不小心修改了,需要重新安装pve-cluster
,先卸载pve-cluster
,然后把卸载的相关依赖全部重装一般即可恢复。
apt install libpve-access-control libpve-cluster-api-perl libpve-guest-common-perl libpve-storage-perl librados2-perl pve-cluster pve-container pve-firewall pve-ha-manager pve-manager
编辑/usr/share/javascript/proxmox-widget-toolkit/proxmoxlib.js
,找到if (data.status !== 'Active')
,改为if (false)
。如果重新登录还有提示清理一下浏览器缓存即可。
硬盘休眠:先设置休眠hdparm -S 240 /dev/sdb
,编辑/etc/lvm/lvm.conf
,修改global_filter = ["r|/dev/sdb|"]
过滤不需要监控的盘。(注意!!!如果设置错误会导致无法开机)
无法上网:编辑/etc/resolv.conf
,将nameserver改为软路由地址。
修改证书:pve的证书位于/etc/pve/nodes/home/
,使用openssl x509 -in fulchain.cer -out pve-ssl.pem -outform PEM
转换证书格式,然后将pem和key替换pve-ssl.key
和pve-ssl.pem
,然后systemctl restart pveproxy
。
删除local-thin: 编辑/etc/pve/storage.cfg
,将其改为如下
dir: local
path /var/lib/vz
content iso,vztmpl,backup
dir: local-lvm
path /var/lib/vz
content rootdir,images
注意不要直接./img2kvm openwrt-x86-64-combined-squashfs.img 100 vm-100-disk-0删除local-lvm,否则执行./img2kvm lede.img 100 vm-100-disk-0
时会出错。然后再执行如下操作
# 移除local-lvm
lvremove /dev/pve/data
# 查看剩余空间
vgdisplay pve | grep Free
Free PE / Size 10495 / 41.00 GiB
# 建立新的lvm
lvcreate -l 10495 -n data pve
# 格式化及挂载并加入到/etc/fstab
mkfs.ext4 /dev/pve/data
mkdir /media/data
mount /dev/pve/data /media/data
blkid | grep pve-data
6. LEDE 注意事项
要开启远程访问,在网络-防火墙-端口转发中设置端口转发,不要直接使用DMZ,若开启DMZ,只能使用一台主机,且端口转发会失效。
7. 单臂路由
如果软路由只有一个网口,默认即LAN口,首先将路由器改为AP模式,然后在接口 - LAN - 物理设置,取消勾选 桥接接口,然后保存。
在接口 - WAN - 物理设置,单选选择和LAN同一个接口,然后保存。WAN口后面的括号内就变成了(WAN LAN),然后在WAN拨号即可。
貌似需要交换机支持VLAN。