前言
OpenWrt 和 OpenClash 有许多魔改发行版本,既然选择 PVE 来构建 HomeLab 系统,我相信你有较强的折腾能力,建议所有镜像或包选择官方版本,因为:
- 魔改发行版兼容性较差,很多版本安装后会出现问题,且不了解插件机制时很难解决。
- 官方版本虽可能也有问题,但通过 Issue 或 Google 更容易找到答案。
本文除了手把手安装,还解决以下问题:
- LXC 容器中 OpenWrt 无法联网。
- Tun 模式的启用问题。
版本信息
- CPU: i7 9700k (x86_64)
- PVE: 8.2.2
- OpenWrt: 23.05.4 X86_64
- OpenClash: 0.46.050-beta_all
网络架构图
此处可插入网络架构图。
1. 安装 OpenWrt
1.1 获取 OpenWrt 官方镜像
前往官方发布路径,选择合适的处理器架构(如
x86/64),下载rootfs.tar.gz镜像压缩包:
OpenWrt 官方发布路径使用以下命令将镜像包下载到 PVE 本地目录:
cd /var/lib/vz/template/cache wget https://archive.openwrt.org/releases/23.05.4/targets/x86/64/openwrt-23.05.4-x86-64-rootfs.tar.gz
1.2 创建 OpenWrt LXC 容器
在 PVE 节点上创建 LXC 容器,使用以下命令:
pct create 102 local:vztmpl/openwrt-23.05.4-x86-64-rootfs.tar.gz –rootfs local-lvm:1 –ostype unmanaged –hostname OpenWrt –arch amd64 –cores 8 –memory 1024 –swap 0 –net0 bridge=vmbr0,name=eth0
1.3 配置容器 Tun 模式
编辑容器配置文件,追加以下内容:
lxc.apparmor.profile: unconfined
lxc.cgroup.devices.allow: a
lxc.cap.drop:
lxc.cgroup2.devices.allow: c 10:200 rwm
lxc.mount.entry: /dev/net/tun dev/net/tun none bind,create=file
1.4 启动容器
在 PVE 界面中,左侧数据中心 -> PVE -> 选择容器。
点击 控制台 -> 启动,按回车即可进入容器终端。
1.5 配置 IP 和 DNS
修改容器网络配置文件 /etc/config/network:
config interface 'lan'
option device 'br-lan'
option proto 'static'
option ipaddr '192.168.50.102'
option netmask '255.255.255.0'
option gateway '192.168.50.1'
list dns '192.168.50.1'
1.6 设置访问密码
使用以下命令设置登录密码:
passwd
1.7 检查网络连通性
访问 http://192.168.50.102 进入 OpenWrt Web 界面,测试网络连通性。
- 安装 OpenClash
2.1 安装前置依赖
在容器控制台执行以下命令:
opkg update
opkg install coreutils-nohup bash dnsmasq-full curl ca-certificates ip-full libcap libcap-bin ruby ruby-yaml kmod-tun kmod-inet-diag unzip kmod-nft-tproxy luci-compat luci luci-base luci-i18n-base-zh-cn
如遇到 dnsmasq 冲突问题,使用以下命令卸载原包并重新安装:
opkg remove dnsmasq
opkg install dnsmasq-full
2.2 下载 OpenClash 安装包
前往 OpenClash 官方发布地址,下载最新的 luci-app-openclash 安装包,并按照官方指南完成安装。
至此,您已经完成了在 PVE LXC 环境下安装 OpenWrt 和 OpenClash 的全部步骤。如有问题,欢迎交流! ‘ > source/_posts/pve-lxc-openwrt-openclash-tun.md
解释:
echo:将内容以字符串形式输出。- 重定向 (
>):将内容写入到Hexo的_posts文件夹中,文件名为pve-lxc-openwrt-openclash-tun.md。 - 路径:
source/_posts/是 Hexo 默认的文章存放路径。
生成文章后:
运行以下命令查看效果:
hexo clean && hexo generate && hexo server
然后访问 http://localhost:4000 查看生成的文章。