ImmortalWRT - LXC
安装
使用LXC提升性能,在官网下载Rootfs的tar.gz格式的镜像,官网为:ImmortalWrt Downloads
然后命令创建一个LXC容器:
pct create 100 local:vztmpl/immortalwrt-24.10.0-x86-64-rootfs.tar.gz --rootfs local-lvm:2 --ostype unmanaged --hostname immortalwrt-lxc --arch amd64 --cores 2 --memory 512 --swap 0 -net0 bridge=vmbr0,name=eth0
解释一下这里的部分参数:
- 100 → PVE的容器或虚拟机ID
- local:vztmpl/xxx.tar.gz → rootfs的镜像,前面固定即可
- local-lvm:2 → 在local-lvm存储容器数据,容量为2G
创建完成进入选项,勾选所有功能选项:
如果需要TUN,那么需要打开TUN支持,修改配置文件/etc/pve/lxc/[CTID].conf
:
arch: amd64
cores: 2
features: fuse=1,mount=nfs;cifs,nesting=1
hostname: immortalwrt-lxc
memory: 512
net0: name=eth0,bridge=vmbr0,hwaddr=BC:24:11:F3:EC:7B,type=veth
ostype: unmanaged
rootfs: local-lvm:vm-100-disk-0,size=2G
startup: order=1
swap: 0
lxc.cgroup2.devices.allow: c 10:200 rwm
lxc.mount.entry: /dev/net/tun dev/net/tun none bind,create=file
添加的为下面的两行lxc.
开头的配置。
然后开机,修改/etc/config/network
的配置文件,使得可以被访问(只改ip地址即可);改后使用service network restart
重启网络服务;最后再修改一下root的密码即可。
网卡配置
Network → Interfaces里编辑Lan口,填好网关等信息:
其他的设置,如关闭DHCP、禁用IPv6直接设置即可。
DNS
添加一个国内通用的DNS:
再添加一个也是可以的。
dnsmasq无法启动的问题
注意在完成上面的工作后应该能正常上网才对,如果无法上网,说明dnsmasq启动有问题;在LXC中容易出现,只需要:
opkg remove procd-ujail
service dnsmasq start
再看服务是否起来了,起来了就说明正常。
主题配置
安装luci-theme-argon
主题:
翻译和配置工具不用安装。
上网配置
在防火墙中设置所有的选项都为接受,取消防御措施,关闭IP伪装,如下图:
完成后,设置网关为ImmortalWRT,查看是否能上网:
能正常上网即配置完成。
PVE 9 下设置
注意在PVE9下,可以测试一下IP伪造的开关是否影响网络情况;这里不一定关了能上网,也不一定开了能上网,需要自行测试。
openwrt-mihomo
Github项目为:OpenWrt-mihomo
自动安装
安装提示,首先添加Feed:
curl -s -L https://github.com/morytyann/OpenWrt-mihomo/raw/refs/heads/main/feed.sh | ash
有一定概率失败,手动安装比较好。
手动安装
直接到Release中下载,根据版本选择:mihomo_x86_64-openwrt-24.10.tar.gz
这里是24.10版本的,23的需要下载23版本的;下载完成后解压。
安装顺序为mihomo
、luci-app-mihomo
、luci-i18n-mihomo-zh-cn
。
安装完成刷新页面即可看到mihomo在服务中出现了。
配置
关闭DNS劫持
配置Mihomo需要首先将DNS劫持关闭:
上传配置文件
在配置文件中,上传自己的合并后的配置文件。
插件配置
核心环境变量不勾选。
混入配置
记得启用混入配置
全局配置如下:
外部控制选择使用MetaCubeXD
,UI名称同样填这个;其余不动。
入站配置不动。
TUN配置不动(未用到)。
DNS配置,选择Redir-Host
模式,勾选遵循分流规则、使用Hosts、覆盖DNS服务器、覆盖DNS服务器查询策略;勾选后会自动填充DNS相关配置,默认即可。
新版中不会自动勾选全部的DNS相关配置,需要自己手动勾选;此外建议对所有的非
default-nameserver
添加https://doh.pub/dns-query
项,防止解析失败。
同时在新版中,自动填充的覆盖DNS查询策略,对于外网的域名需要翻墙才能查询,因此这里不要再勾选覆盖DNS查询策略了。
嗅探无需启用。
GEOX配置勾选定时更新即可。
代理配置
透明代理模式选择:
其余两个保持默认。
TPROXY无法上网解决办法
在容器中,很可能出现TPROXY模式无法上网,但是Redirect模式可以上网的情况,这是由于桥接网卡的防火墙过滤导致的,需要添加内核参数(/etc/sysctl.conf
):
net.bridge.bridge-nf-call-ip6tables=0
net.bridge.bridge-nf-call-iptables=0
完成后重启或者使用sysctl -p
加载即可。
开启后国内无法上解决办法
开启动态IP伪装,并将防火墙应用到桥接网卡上,如图:
KMS Server
用于内部激活Windows等相关可用KMS激活的服务;安装只需要在软件包过滤KMS,安装核心和luci即可。
选择启用和自动激活即可,配置不要修改,保持默认即可:
新版中DNS无法使用的解决办法
注意尚不明确导致此情况的原因,初步怀疑是DNS的问题,在将漏网之鱼被重定向到代理后就好了。
看了一下代理情况,发现1.1.1.1的443和8.8.8.8的443连接了,结果发现又能解析DNS了,因此怀疑是DNS的错误。
后排查发现确实为此问题,由于在Nikki的混入配置DNS配置中启用了覆盖DNS服务器查询策略,导致外网的域名只能通过1.1.1.1和8.8.8.8进行查询,从而导致了异常,禁用覆盖即可解决。