天依无缝QAQ
天依无缝QAQ
发布于 2025-07-14 / 49 阅读
3
0

利用 Alpine PVE LXC 容器部署 Linux 旁路网关

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

进入后台

成功安装

接下来,只需要自己配置一下规则,在设备上配置指向软路由即可:


评论