2024.11.6更新:教程中PVE版本已更新至8.2,一些图片已经修改

准备工作

以下是教程中所需要的一些文件:
Ventoy
Proxmox VE 8.2 ISO镜像
微PE 工具箱
爱快iKuai ISO 64位镜像
OpenWrt 镜像

在硬件方面,需要准备:

  • 一台多网口小主机。我使用的是 畅网 N5105 4个I226的2.5G网口。
  • 另一台电脑和一个容量不少于 4GB 的空 U 盘。

制作启动盘

下载好 Ventoy 并解压后,将 U 盘插入电脑,打开其中的Ventoy2Disk.exe,在设备列表中选择你的 U 盘,点击安装,会提示两次格式化磁盘,点击确定后,Ventoy 就安装成功了。若原来有数据,请注意备份。

打开微PE安装程序,点击右下角的光盘图标,在 ISO 输出位置中选择你的 U 盘,最后点击“立即生成”就可以了。

把之前下载的PVE镜像也复制进U盘中,启动盘就制作完成了。

清空硬盘分区

PVE安装需要空硬盘,若本来就是空的可以跳过此步骤
将 U 盘插入小主机,连续按下 F11 键(请自行查询你的设备的快捷键),进入启动设备选择页面,选择你的 U 盘,例如我的设备上是“UEFI OS (JMicron Generic 2102)”。如果你的设备启用了安全启动(Secure Boot),请先关闭该功能。

在此界面使用键盘移动到 “WePE” 选项,然后按下回车键两次即可进入。

进入wepe后打开桌面的DiskGenius,右键选择你的硬盘,点击删除所有分区。

在弹出的确认框中选择是,点击左上角的保存更改,再次点击是,分区就已经清空完成了。

安装Proxmox VE

这一步小主机不要插网线,连接好键盘鼠标显示器。

开机按F11,选择你的U盘启动,移动到proxmox-ve_8.2-2.iso并启动,选择Install Proxmox VE 并回车

这个界面点击右下角I Agree
选择你的硬盘,不要选中启动的U盘,点Next
Country输入china,下面的时区会自动选择asia/shanghai,然后Next

填写你想设置的密码和你的邮箱

这一步是配置网络,建议选择最后一个网口,第一个网口后面作为wan口,剩下的作为lan口

Hostname输入pve.lan,由于最终目标是实现 10.0.0.1 作为主路由,10.0.0.2 作为旁路由,10.0.0.3 用于 PVE 管理,10.0.0.4 用于 Docker,因此在“IP 地址”一栏中填写 10.0.0.3,后面的 24 不用改动。在“网关”(Gateway)一栏中填写 10.0.0.1,在 DNS 配置中填写 10.0.0.1



确认所有信息无误后,点击Install按钮。等待安装进度条完成后,点击Reboot按钮。在重启时,请确保已将 U 盘拔掉。


当看到这个页面时,就代表 PVE 安装成功了。

配置pve

在另一台电脑上按下“Win+R”键,输入 ncpa.cpl 并按下回车键,打开“网络连接”页面。然后按照如下图所示的方式配置 IPv4 地址,修改完成后将电脑与 PVE 管理口(eth1)用网线连接。)

没错误的情况下就可以打开pve的管理后台了,若提示不安全请点击继续访问。

Language处可切换至中文Chinese (Simplified),用户名root,密码为你自己设置的密码。成功登录后,会提示“无有效订阅”的窗口,可以直接关闭。

这样就成功的登录到了管理的后台

成功进入后就需要开始配置硬件直通了,进行硬件直通之前,请确保你的 BIOS 中已开启虚拟化功能(若未开启请自行开启),点击数据中心下方的pve,在旁边点击“Shell”按钮,即可进入 PVE 宿主机的 Shell 界面

执行命令nano /etc/default/grub,将光标移动到GRUB CMDLINE LINUX DEFAULT="quiet"这一行前,输入#号注释掉这一行
光标移至下一行开头,按回车,在中间的空行输入以下内容。

GRUB_CMDLINE_LINUX_DEFAULT="quiet intel_iommu=on"


编辑完文件后按 "Ctrl + X" → "Y" → 回车,确认保存并退出。
执行nano /etc/modules命令,在四行注释后粘贴如下内容

vfio
vfio_iommu_type1
vfio_pci
vfio_virqfd

同样的按 "Ctrl + X" → "Y" → 回车,确认保存并退出。
执行以下代码更新Grub并重启

update-grub
update-initramfs -u -k all
reboot

安装iKuai

如图操作,上传iKuai的镜像文件。

点击右上角的创建虚拟机,名称设置为iKuai

ISO镜像选择刚才上传的镜像
系统选项卡内直接下一步,磁盘大小设置为 5GB
CPU选项中核心选择4核(N5105为4核CPU),类别选择host
内存默认2048,网络这里直接下一步,点击完成iKuai的虚拟机就创建好了。
配置网卡直通iKuai虚拟机

添加直通的网口,因为管理口是最后一个,所以只能添加第一、二、三网口直通,这里需要手动添加三次,一次一个口。
在选项中配置开机自启动

引导顺序中只保留scsi这一个,其余都取消勾选。

现在就可以启动iKuai虚拟机了,点击控制台,再点击右上角的启动。在开机的时候按下esc键,按3通过dvd/cd启动。

进入安装界面后按1再按y将iKuai安装在虚拟机硬盘内,等待自动重启。
重启后就进入了iKuai的中文控制台,显示有4个网口,其中虚拟机里的eth0就代表的是软路由的管理口也就是实际上的第四个网口,虚拟机内的eth1、2、3分别代表的是实际上的eth1、2、3(第一、二、三网口)
这里要将软路由wan口设置为第一个网口,按下1进入网卡绑定,所以这里要输入的就是

set wan1 eth1


设置完成后输入q回车回到主菜单,开始设置lan口ip地址,按下2再按0,输入10.0.0.1

设置成功后按回车再按q回到主菜单,可以看到web管理地址已经改为http://10.0.0.1
现在就可以进入iKuai的网页端控制台了,账号密码均为admin,登陆后会让你修改密码,自行修改。
登录进来后,点击绿色的lan1

点击高级设置,将eth2 eth3勾选上并保存。
然后设置DHCP服务,如下图操作。

客户端地址填写10.0.0.10-10.0.0.254,预留了3.1-3.10的ip,子网掩码默认。网关设置为10.0.0.1也就是iKuai的ip,dns填写119.29.29.29和223.6.6.6

填写好之后保存并刷新页面,就能看到DHCP服务正常工作了。
现在你可以把上级网线插到小主机的第一个网口上,打开内外网设置,再点击wan1口。若光猫拨号,则接入方式选择DHCP并保存。若光猫改了桥接,则接入方式选择pppoe,输入宽带账号密码并保存。配置完成后点击系统概况,就可以看到iKuai正常工作起来了。

这时候按下win+r键,输入ncpa.cpl打开网络连接,将以太网的IPv4地址和DNS改为自动获取,最好禁用再重新启用下,电脑的网络就正常了。

pve换源

在配好iKuai之前pve内是没有外网的,所以一直没换源,在PVE的shell里执行以下命令更换pve的源

wget https://mirrors.ustc.edu.cn/proxmox/debian/proxmox-release-bookworm.gpg -O /etc/apt/trusted.gpg.d/proxmox-release-bookworm.gpg
rm -rf /etc/apt/sources.list.d/pve-enterprise.list
echo "deb https://mirrors.ustc.edu.cn/proxmox/debian/pve bookworm pve-no-subscription" > /etc/apt/sources.list.d/pve-no-subscription.list

因为pve的底层系统是debian,所以debian的源也需要更换,首先备份下原来的源。

mv /etc/apt/sources.list /etc/apt/sources.list.bak

复制下方代码并执行即可更换为中科大的源

cat > /etc/apt/sources.list <<EOF
deb https://mirrors.ustc.edu.cn/debian/ bookworm main contrib non-free non-free-firmware
deb https://mirrors.ustc.edu.cn/debian/ bookworm-updates main contrib non-free non-free-firmware
deb https://mirrors.ustc.edu.cn/debian/ bookworm-backports main contrib non-free non-free-firmware
deb https://mirrors.ustc.edu.cn/debian-security/ bookworm-security main contrib non-free non-free-firmware
deb-src https://mirrors.ustc.edu.cn/debian/ bookworm main contrib non-free non-free-firmware
deb-src https://mirrors.ustc.edu.cn/debian/ bookworm-updates main contrib non-free non-free-firmware
deb-src https://mirrors.ustc.edu.cn/debian/ bookworm-backports main contrib non-free non-free-firmware
deb-src https://mirrors.ustc.edu.cn/debian-security/ bookworm-security main contrib non-free non-free-firmware
EOF

换源后更新下

apt update -y
apt upgrade -y
apt dist-upgrade -y

PVE温度和频率显示

PVE默认是不显示硬件温度的,需要显示温度及其他硬件信息可执行以下脚本。
这里用恩山大佬@a904055262的脚本来开启温度显示,在PVE的shell里输入

(curl -Lf -o /tmp/temp.sh https://raw.githubusercontent.com/a904055262/PVE-manager-status/main/showtempcpufreq.sh || curl -Lf -o /tmp/temp.sh https://mirror.ghproxy.com/https://raw.githubusercontent.com/a904055262/PVE-manager-status/main/showtempcpufreq.sh) && chmod +x /tmp/temp.sh && /tmp/temp.sh remod

效果如图,实测8.2.7版本运行完是正常的。

配置OpenWrt作为旁路由。

点击右上角的创建虚拟机,名称设置为OpenWrt,记住此处的vmid,操作系统选择为不使用任何介质,系统直接下一步,磁盘直接点击scsi0右边的垃圾桶删除掉,cpu核心4核,类别选择host,内存1024mb,一直点下一步直到完成。

解压openwrt的压缩包,解压出来x86.img,像上传iKuai镜像一样上传,上传完成后复制红框中的文件实际路径

根据pve中的情况修改以下命令,将100改为openwrt虚拟机的vmid,镜像的位置改为上面复制的路径,路径前后均有空格,比如我的修改完为qm importdisk 101 /var/lib/vz/template/iso/x86.img local-lvm

qm importdisk 100 镜像的位置 local-lvm

将修改完的命令复制到pve的shell中执行。

导入磁盘成功后打开openwrt的硬件,双击未使用的磁盘,将总线设备改为sata,然后点击添加。

将选项中的开机自启动打开,启动顺序中的ide和net0取消勾选,勾选上sata0,然后按住序号左边的三个横杠将sata这一项拖动到第一行,并点击保存。

现在就可以点击控制台再点击上面的启动运行此虚拟机,代码跑完之后按回车看到 LEDE 就代表openwrt已经启动成功。
输入以下命令来修改openwrt的网络配置文件。

vi /etc/config/network

按下 i 键进入编辑模式,使用方向键将光标移动到192.168.2.1处,将其改为10.0.0.2
按下esc键,在英文状态下输入 :wq 即可退出编辑并保存,输入reboot重启openwrt。
重启后在浏览器内使用10.0.0.2就能打开openwrt的管理页面了,op的默认密码为password。

点击 网络 → 接口 → lan → 修改

将网关改为iKuai的ip,dns填写114.114.114.114和223.5.5.5,下滑基础设置,勾选上忽略此接口,然后保存。

因为某个op*****sh服务提示:使用此插件建议关闭IPv6DHCP,如需关闭进入“接口”→“lan”→“修改”,将高级设置中的使用内置的ipv6管理取消勾选,并将下面的“路由通告服务”和“DHCPv6服务”都选择禁用,然后保存。

如果需要所有的设备都通过旁路由的话,就将iKuai里dhcp网关改为openwrt的IP地址。

网关配置完成后,按如下图配置SNMP服务,IP为旁路由IP,其他默认即可。

这一步的作用是让通过旁路由的设备在iKuai正确里显示出mac地址。

Docker安装

Docker是通过pve的LXC容器运行的
在pve的shell中输入以下命令更换CT模板源并重启pve服务

cp /usr/share/perl5/PVE/APLInfo.pm /usr/share/perl5/PVE/APLInfo.pm_back
sed -i 's|http://download.proxmox.com|https://mirrors.ustc.edu.cn/proxmox|g' /usr/share/perl5/PVE/APLInfo.pm
systemctl restart pvedaemon.service

local-CT模板-模板选项下,选择debian11(更推荐选debian,因为pve的底层系统是debian),下载即可

下载完成后就可以开始创建了,主机名填Docker,把无特权的容器取消勾选,密码自行设置,模板选择刚下载的debian,磁盘分配15G,CPU分配4核,内存和swap都设置2048m

网络如下图配置,IP地址后需要加一个 /24 ,若需要经过旁路由,网关就填openwrt的ip,不需要的话就填iKuai的IP地址,dns填写114.114.114.114,再点击下一步就创建好了。

按照下图打开嵌套虚拟功能

点击启动,看到如下界面代表运行正常。账号为root,密码为你自己设置的,密码输入的时候是看不到的。

此LXC容器内ssh不允许root用户通过密码登录,如需修改命令如下,进入nano编辑器后使用方向键向下

nano /etc/ssh/sshd_config

看到#PermitRootLogin prohibit-password后将前面 #删掉,把后面的prohibit-password改为yes,按 "Ctrl + X" → "Y" → 回车保存

LXC容器中的debian换源

mv /etc/apt/sources.list /etc/apt/sources.list.bk
nano /etc/apt/sources.list

执行完会进入nano编辑器,粘贴以下内容后按 "Ctrl + X" → "Y" → 回车保存

deb https://mirrors.ustc.edu.cn/debian/ bookworm main contrib non-free non-free-firmware
deb https://mirrors.ustc.edu.cn/debian/ bookworm-updates main contrib non-free non-free-firmware
deb https://mirrors.ustc.edu.cn/debian/ bookworm-backports main contrib non-free non-free-firmware
deb https://mirrors.ustc.edu.cn/debian-security/ bookworm-security main contrib non-free non-free-firmware
deb-src https://mirrors.ustc.edu.cn/debian/ bookworm main contrib non-free non-free-firmware
deb-src https://mirrors.ustc.edu.cn/debian/ bookworm-updates main contrib non-free non-free-firmware
deb-src https://mirrors.ustc.edu.cn/debian/ bookworm-backports main contrib non-free non-free-firmware
deb-src https://mirrors.ustc.edu.cn/debian-security/ bookworm-security main contrib non-free non-free-firmware

换源后更新下

apt update
apt upgrade -y

安装Docker以及docker-compose命令(CE源推荐选择华为云,Registry源推荐选择上海交通大学)

apt install curl -y
bash <(curl -sSL https://linuxmirrors.cn/docker.sh)

更改时区

命令行里执行tzselect,分别输入 4 9 1 1 依次回车,看到如下图代表执行正确。

之后执行nano /etc/profile,将以下一行添加到最后,添加完成后按 "Ctrl + X" → "Y" → 回车保存。

export TZ='Asia/Shanghai'

执行命令source /etc/profile更新系统变量。

执行命令date -R就可以看到最终效果了,显示 +8000就代表已经修改到东八区了。

选装 :

portainer-ce汉化版

安装成功后访问 创建Docker这个lxc容器时填写的的IP:9000使用

docker run -d --restart=always --name="portainer" -p 9000:9000 -v /var/run/docker.sock:/var/run/docker.sock 6053537/portainer-ce

Fast Os Docker

安装成功后访问 创建Docker这个lxc容器时填写的的IP:8081使用

docker run --name fastos --restart always -p 8081:8081 -p 8082:8082 -e TZ="Asia/Shanghai" -d -v /var/run/docker.sock:/var/run/docker.sock -v /etc/docker/:/etc/docker/ -v /root/data:/fast/data -e FAST_STORE=http://8.210.124.47:8080 wangbinxingkong/fast:latest

Win

请查看以下文章

参考的一些教程,在此处一块感谢他们。:
向北的平行世界
司波图
柠了个檬k
恩山-丶企鹅未婚夫
十佳评测
郑羊羊
vedio talk

最后修改:2024 年 11 月 21 日
如果觉得我的文章对你有用,请随意赞赏或点击右侧广告位(若看不到请关闭广告屏蔽)
END
本文作者:
文章标题:软路由All in One 教程:PVE虚拟机安装iKuai OpenWrt Docker
本文地址:https://wanghongfeng.cn/pve_all_in_one.html
版权说明:若无注明,本文皆王洪峰's blog原创,转载请保留文章出处。