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

解释一下这里的部分参数:

  1. 100 PVE的容器或虚拟机ID
  2. local:vztmpl/xxx.tar.gz rootfs的镜像,前面固定即可
  3. local-lvm:2 在local-lvm存储容器数据,容量为2G

创建完成进入选项,勾选所有功能选项:

400

如果需要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的密码即可。

800

网卡配置

Network Interfaces里编辑Lan口,填好网关等信息:

600

其他的设置,如关闭DHCP、禁用IPv6直接设置即可。

DNS

添加一个国内通用的DNS:

600

再添加一个也是可以的。

dnsmasq无法启动的问题

注意在完成上面的工作后应该能正常上网才对,如果无法上网,说明dnsmasq启动有问题;在LXC中容易出现,只需要:

opkg remove procd-ujail
service dnsmasq start

再看服务是否起来了,起来了就说明正常。

主题配置

安装luci-theme-argon主题:

800

翻译和配置工具不用安装。

上网配置

在防火墙中设置所有的选项都为接受,取消防御措施,关闭IP伪装,如下图:

800

完成后,设置网关为ImmortalWRT,查看是否能上网:

600

能正常上网即配置完成。

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版本的;下载完成后解压。

500

安装顺序为mihomoluci-app-mihomoluci-i18n-mihomo-zh-cn

安装完成刷新页面即可看到mihomo在服务中出现了。

配置

关闭DNS劫持

配置Mihomo需要首先将DNS劫持关闭:

800

上传配置文件

在配置文件中,上传自己的合并后的配置文件。

400

插件配置

600

核心环境变量不勾选。

混入配置

记得启用混入配置

全局配置如下:

800

外部控制选择使用MetaCubeXD,UI名称同样填这个;其余不动。

入站配置不动。

TUN配置不动(未用到)。

DNS配置,选择Redir-Host模式,勾选遵循分流规则使用Hosts覆盖DNS服务器覆盖DNS服务器查询策略;勾选后会自动填充DNS相关配置,默认即可。

新版中不会自动勾选全部的DNS相关配置,需要自己手动勾选;此外建议对所有的非default-nameserver添加https://doh.pub/dns-query项,防止解析失败。

同时在新版中,自动填充的覆盖DNS查询策略,对于外网的域名需要翻墙才能查询,因此这里不要再勾选覆盖DNS查询策略了。

嗅探无需启用。

GEOX配置勾选定时更新即可。

代理配置

透明代理模式选择:

800

其余两个保持默认。

TPROXY无法上网解决办法

在容器中,很可能出现TPROXY模式无法上网,但是Redirect模式可以上网的情况,这是由于桥接网卡的防火墙过滤导致的,需要添加内核参数(/etc/sysctl.conf ):

net.bridge.bridge-nf-call-ip6tables=0
net.bridge.bridge-nf-call-iptables=0

完成后重启或者使用sysctl -p加载即可。

开启后国内无法上解决办法

开启动态IP伪装,并将防火墙应用到桥接网卡上,如图:

600

800

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进行查询,从而导致了异常,禁用覆盖即可解决。