661 字
3 分钟
PVE旁路由透明代理
本文主要内容在PVE里,使用两种方法实现透明代理。通过创建CT虚拟机或者创建OpenWRT虚拟机(笔者目前使用的方法)。涉及到的文件都是免费的,请联系笔者获取。
2025-3-1:添加OPNSense UDP说明。
部署流程
CT虚拟机方式
- 下载debian/ubuntu CT template。

- 创建完成后,开始直通设备。请确认自己PVE安装的版本,PVE8.2版本开始,tun设备直通和之前版本不一样了。
PVE < 8.2
确认新创建的CT机器的ID,打开PVE自身的Shell,输入
nano /etc/pve/lxc/容器id.conf# 添加最后lxc.apparmor.profile: unconfinedlxc.cgroup.devices.allow: alxc.cap.drop:lxc.cgroup2.devices.allow: c 10:200 rwmlxc.mount.entry: /dev/net/tun dev/net/tun none bind,create=filePVE ≥ 8.2添加一个Device Passthrough

- 完成后,启动CT虚拟机,从PVE进入虚拟机的Console,手动开启root登录权限
Terminal window sed -i 's/^#\?PermitRootLogin.*/PermitRootLogin yes/' /etc/ssh/sshd_config - 下载Clash文件,并执行下列指令
自行替换clash.yaml的内容
Terminal window tar -zxf TPCLbuild.tar.gz && cd TPCLbuildmv tpclash-meta-linux-amd64 /usr/local/bin/tpclash && chmod +x /usr/local/bin/tpclash # 自行根据机器架构选择文件mv tpclash.service /etc/systemd/systemmv clash.yaml /etc/clash.yamlsudo systemctl enable tpclash.service --now && systemctl start tpclash.service
OpenWRT虚拟机方式
- 下载镜像包并解压后上传至
PVE->local(PVE)->ISO Image(或者可以自行去OpenWRT.ai创建自己的镜像)。 - 创建虚拟机(看图)

- 创建完成后(不要开机虚拟机),进去PVE自身的Shell,import上传的镜像到虚拟机

- 此时回到创建好的虚拟机,点击
Hardware,会出现一个未分配磁盘。- 双击磁盘

- 点击添加

- 扩大空间(不做也可以,不重要)。此时也可以删除
CD/DVD Drive(不做也可以,不重要)
- 双击磁盘
- 修改引导顺序,把刚刚设置的硬盘调整到第一位,取消其他的引导盘。记得打开开机自启。最后启动虚拟机。

- 进入OpenWRT(我的镜像默认为192.168.100.4)添加DNS转发指向Clash fakeip端口。

- 下载OpenClash配置备份,在图片位置上传备份。

- 最后回到
运行状态,往下滑点击启动OpenClash。
软理由代理设置(这里使用的OPNSense防火墙)
-
创建网关

-
防火墙 → 规则 → LAN按如图创建规则。(如果需要UDP转发,记得创建第二条的时候把UDP也选上)
Docker MACVlan创建返回
OPNSense → Firewall → Aliases创建一个别名。可以放上家里其他设备的内网IP在Content里。这里只是拿Docker的MacVlan举例。
还没写,见到请催更😋 -
服务 → ISC DHCPv4。设置分发网关为主路由IP和DNS服务器为OpenWRT IP
PVE旁路由透明代理
https://blog.useforall.com/posts/7/ 最后更新于 2025-07-22,距今已过 117 天
部分内容可能已过时
Lim's Blog