前置准备
- OpenWrt 系统镜像。为了扩容方便,选择使用 Ext4 分区的
generic-ext4-combined-efi.img.gz
文件。下载页面,在 root 首页找最新版本 - GParted Live CD 镜像,用来修改系统分区大小。下载页面
创建虚拟机
我们先创建一个空的虚拟机,具体步骤如下图所示
接下来连接到 pve,手动执行下列命令,将镜像挂载到虚拟机上
qm disk import <vm-id> <img-name> <storage-name>
- vm-id: 你的虚拟机编号
- img-name: 你的镜像名称
- storage-name: 你的存储位置
例如我的是
find / | grep openwrt-23.05.2-x86-64-generic-ext4-combined-efi.img cd /var/lib/vz/template/iso # 此路径取决于你 find 出来的路径 qm disk import 101 openwrt-23.05.2-x86-64-generic-ext4-combined-efi.img local
正常启动虚拟机,选默认进入下一步
中间会让你选一下语言,选择中文即可(这张图漏截了)
进来后的界面如下图:
因为我们调整了磁盘大小,所以无法直接识别,需要进行修复。
把未分配的空间全部分给 /dev/sda2
启动 openwrt 虚拟机
设置网络
vim /etc/config/network
补充 ipv6 配置
如果你后续打算使用 openwrt 作为旁路网关,此处不需要设置 ipv6
config interface 'lan'
option device 'br-lan'
option proto 'dhcp'
#option proto 'static'
#option ipaddr '192.168.1.1'
#option netmask '255.255.255.0'
#option ip6assign '60'
config interface 'lan6'
option device 'br-lan'
option proto 'dhcpv6'
修改完成后重启网络:
service network restart
使用下列命令查看网络状况
route -n
使用ip addr
获取地址
例如我的就是: http://192.168.2.156/
默认账户为: root ,无密码
ssh 到 openwrt 上,执行一些基础配置
# 软件源换成清华镜像源
sed -i 's_downloads.openwrt.org_mirrors.tuna.tsinghua.edu.cn/openwrt_' /etc/opkg/distfeeds.conf
# 更新软件包索引
opkg update
# 中文包
opkg install luci-i18n-base-zh-cn
opkg install luci-i18n-firewall-zh-cn
# mDNS 支持,安装后可以用 http://openwrt.local 打开管理页面
opkg install avahi-daemon-service-http
在 OpenWrt 网页管理页面,网络 > 接口 里面,把 DHCP 相关的设置关掉,因为旁路由不需要提供 DHCP 服务。
注意设置一下 root 密码
安装 OpenClash
下载 OpenClash
插件介绍
OpenClash 是一个可运行在 OpenWrt 上的 Clash 客户端,兼容 Shadowsocks、ShadowsocksR、Vmess、Trojan、Snell 等协议,根据灵活的规则配置实现策略代理。
官方开源项目地址:https://github.com/vernesong/OpenClash
wget https://github.com/vernesong/OpenClash/releases/download/v0.46.064/luci-app-openclash_0.46.064_all.ipk
卸载 dnsmasq
由于自带的 dnsmasq 会和下面要安装的 dnsmasq-full 冲突,所以我们需要提前卸载:
opkg remove dnsmasq
mv /etc/config/dhcp /etc/config/dhcp.bak
依赖安装
opkg update
opkg install iptables
opkg install dnsmasq-full
opkg install coreutils
opkg install coreutils-nohup
opkg install bash
opkg install curl
opkg install jsonfilter
opkg install ca-certificates
opkg install ipset
opkg install ip-full
opkg install iptables-mod-tproxy
opkg install kmod-tun
opkg install luci-compat
依赖安装完成后就可以直接来安装了 openclash 了:
opkg install luci-app-openclash_0.46.064_all.ipk
如果你的网络环境不好,你可以选择在本机上科学下载,然后使用 gui 安装
安装成功后,在 OpenWrt 的控制面板里面的「服务」菜单下可以找到 OpenClash:
刚进来是没有内核的,会提示大家安装内核,如果大家用链接安装失败了,只能大家各显神通,用 clash 源码编译个内核,并上传上去
我们配置好订阅后,启动一下 OpenClash 服务试试看,如果出现下图这种情况,表示服务是正常没问题的:
设置 openwrt 为旁路网关
- 在“网络”-“接口”的“常规设置”中给 Openwrt 的 LAN 网络接口设置一个和现有局域网同网段的静态 IP 地址,注意不要和现有设备的 IP 地址冲突。然后应用设置。
- 将 LAN 网络接口的“默认网关”设为主路由的 IP 地址。
- 在“高级设置”中找到“使用自定义的 DNS 服务器”设为主路由的 IP 地址。
- 在“DHCP 服务器”中勾选“忽略此接口”。
- 在“DHCP 服务器”-“IPv6 设置”中禁用所有IPv6服务。
- 点击“保存”以及“保存并应用”。
- 在“网络”-“防火墙”中,关闭“SYN-flood 防御”,点击“保存并应用”。
- 建议重启一次。
其他设备接入旁路网关
在指定的设备上,手动设置IP地址,将其“网关”和“首选 DNS”改为旁路网关的IP地址。