Alpine是一个轻量化的Linux发行版,如果你用不到openwrt这种大而全的路由系统,或者不想太大改变家里的网络拓补结构(也不想多花钱)的情况下:
你可以来试试这个资源占用极低的解决方案!在Proxmox VE上直接部署一个Alpine容器来解决!
经过我的测试,百兆网络下仅占一颗J4125核心的11%。推论可得大致上限为千兆环境。
PVE的前置配置
首先如果你的网络环境有问题(都需要用旁路网关了肯定的),在PVE的宿主机的shell中执行如下命令对CT模板换源:
cp /usr/share/perl5/PVE/APLInfo.pm /usr/share/perl5/PVE/APLInfo.pm_backsed -i 's|http://download.proxmox.com|https://mirrors.tuna.tsinghua.edu.cn/proxmox|g' /usr/share/perl5/PVE/APLInfo.pm
然后重启pve服务:
systemctl restart pvedaemon.service
重启后可能网页会断连,稍微等待一段时间刷新即可
我们要使用tproxy进行代理,这种模式相比起tun模式对cpu的负载低。如果你有高级需求请自行搜索tun模式的配置:
在宿主机的终端中输入之后,并重启pve宿主机或者输入 modprobe nft_tproxy 即可。
echo 'nft_tproxy' > /etc/modules-load.d/tproxy.conf
下载Alpinle LXC镜像
在local存储池(因你的机器设置而异)中选择CT模板——模板:
下载最新的Alpine发行版:
右上角,创建CT:
在常规选项里,取消勾选“无特权的容器”、输入密码和主机名:
选择alpine模板:
如果你只是做旁路网关,磁盘给个500m就已经非常宽裕了:
CPU给一个即可,我的pve宿主机是j4125,平时在百兆环境下使用也够了:
内存给个128M,不要swap:
网络根据你自己的网络环境配置,网关要指向主路由:
DNS也是指向主路由:
大功告成!但不要选择创建后启动,还需要进行配置:
选择选项,控制台模式改为shell,并开启“开机自启动“:
配置Alpine
启动alpine,并进入控制台:
改源:
vi /etc/apk/repositories
在vi编辑器中,输入i开始编辑:
将官方源设置成任意的第三方源,你可以选择中科大mirrors.ustc.edu.cn或者清华源mirrors.tuna.tsinghua.edu.cn。
只要将原来的dl-cdn.alpinelinux.org换成如上两个链接之一即可
我的nas上同步了alpine源,我就使用对我来讲更快的方案了。
改完之后输入esc,输入:wq(输入法要是英文模式),回车即保存
输入apk update:
apk upgrade:
安装bash和wget,curl和sudo(我这里的图片忘记安装sudo了):
apk add bash wget curl sudo nftables
配置ShellCrash
我们会选择使用shellcrash作为我们的旁路网关配置。
ShellCrash/README_CN.md at dev · juewuy/ShellCrash · GitHub
使用这里推荐的标准Linux设备安装:
sudo -i
bash
export url='https://fastly.jsdelivr.net/gh/juewuy/ShellCrash@master' && wget -q --no-check-certificate -O /tmp/install.sh $url/install.sh && bash /tmp/install.sh && source /etc/profile &> /dev/null
输入1:
也是1:
确认安装,1:
安装成功,输入crash即可:
选择1:
1
1
1
1
输入你自己的订阅链接:
1
0
1
按照网络环境,这个地方等待的时间稍长:
目前初始化完成:
优化配置
现在还是不能用的,要配置tproxy,输入3停止内核服务之后输入2:
输入1
输入3
然后输入两回0
输入9,再输入4,安装本地面板:
这个看你心情,我选4:
同样,需要等待一段时间
输入1
进入后台
成功安装
接下来,只需要自己配置一下规则,在设备上配置指向软路由即可: