目的
为了解决 PVE 中的虚拟机科学上网问题,在 OpenWrt 中使用统一的 OpenClash 为虚拟机提供上网服务。
硬件与软件版本
- 电脑主板网口: 用作 PVE 系统管理口
- PCIe RTL 8125B 2.5G 网卡: 用作接入 OpenWrt 的外部网口 (WAN口)
网络拓扑
TODO 网络拓扑
OpenWrt 安装步骤
PVE 建立网桥, 作为 OpenWrt 的WAN
口和LAN
口。
-
安装好驱动的物理网口(
ens1
)作为 OpenWrt 的WAN
口(连接外部网络) -
创建一个新的网桥(vmbr1)作为 OpenWrt 的
LAN
口(用于内部虚拟机通信) -
其他虚拟机连接到 OpenWrt 提供的 LAN 网络
-
ens1(网口名称)->vmbr1(网桥名称)->OpenWRT WAN 口
-
OpenWRT LAN 口 -> vmbr2(网桥名称) -> 虚拟机网卡
WAN 口网桥桥接网口 ens1
注: 物理网口的网卡名称可以使用 ip link show
或 ifconfig
获取
创建 OpenWRT
WAN
口网桥 vmbr1
:
- 在 PVE Web 界面,进入 Datacenter -> Node -> Network。
- 点击 “Create” -> “Linux Bridge”,填写:
• 名称: vmbr1
• 桥接端口: ens1
• IPv4/IPv6: 设为 无(None)
• Autostart: 选中 ✔ - 点击 “Create” 并 应用更改。
创建 OpenWRT
LAN
口网桥 vmbr2
:
- 在 PVE Web 界面,点击 “Create” -> “Linux Bridge”。
- 填写如下信息:
• 名称: vmbr2
• 桥接端口: 为空(如果需要给外部设备提供网关功能,则填写对应网口即可)
• IPv4/IPv6: 设为 无(None)
• Autostart: 选中 ✔ - 点击 “Create” 并 应用更改
到 OpenWrt 官网, 下载对应固件。
我的设备是 x86
的所以下载固件 penwrt-24.10.0-x86-64-generic-ext4-combined-efi.img.gz
查看已经创建好的 OpenWrt 虚拟机,把 LAN 口网桥也添加上去
为 OpenWrt 导入系统镜像
1 | qm importdisk 100 openwrt-24.10.0-x86-64-generic-ext4-combined-efi.img local-lvm # 导入 openwrt 系统镜像到硬盘 |
将如上
openwrt-24.10.0-x86-64-generic-ext4-combined-efi.img
替换为自己的上传镜像的路径和文件名100
替换为你的VM ID
- 将
local-lvm
替换为你想要安装OpenWrt
系统的硬盘
如果想要对系统盘扩容,可执行如下操作:
配置完网口和硬盘后, 可以启动系统
进入 OpenWrt 系统后, 配置 WAN
口和 LAN
口地址
这俩我想要 LAN 口下的设备都为 192.168.27.xx
在配置文件中找到如下片段,改为如下配置
1 | vi /etc/config/network |
在同文件中,修改 WAN 口配置, 配置为静态地址方便后续 SSH
1 | config interface 'wan' |
重启网络服务
1 | /etc/init.d/network restart |
在外部设备上 ping 其 WAN 口地址,以确认其 WAN 口静态地址设置成功
1 | ping 192.0.1.67 |
检查 SSH 是否已启动
1 | netstat -tlnp | grep dropbear |
如果没有启动则
1 | 启动 SSH 服务 |
设置 SSH 服务可以穿过防火墙
1 | vi /etc/config/firewall |
使用 passwd
命令设置 root
密码
在外部可以 ping 通 OpenWrt WAN 口的设备上
1 | ssh root@192.0.1.67 |
使用网页
1 | vi /etc/config/firewall |
在浏览器中,输入对用 ip 地址进行访问 http://192.0.1.67
使用刚才配置的 root 密码进入主界面
同步一下时间,便于后续安装软件
参考资料: 超详细,多图 PVE 安装 OpenWRT 教程(个人记录)
安装 OpenClash
下载安装包 vernesong/OpenClash Releases, 我下载的是 v0.46.079
导入 OpenWrt 中, 先安装依赖,再安装 ipk 包
1 | opkg update |
启动前请先在插件设置页面的版本更新标签下确认内核编译版本,您也可以手动下载 Clash内核 后解压到 /etc/openclash/core/文件夹,并将二进制文件命名为clash_meta
安装后在 网页端 Service -> OpenClash 界面中进入 OpenClash 配置界面