服务器系统更新了 Debian12,支持 podman 的版本到 Version:4.3.1,将一些服务迁移过去,做个记录
0x00 安装 podman
所有的操作都在非Root环境下
# 安装podman
sudo apt install podman slirp4netns fuse-overlayfs
# 安装podman-compose(可选)
sudo apt install python3 pipx -y # Debian12需要配置为pipx安装
pipx ensurepath # pipx初始化环境
pipx install podma-compose
# 配置docker.io仓库
mkdir ~/.config/containers/
echo 'unqualified-search-registries = ["docker.io"]' | tee -a ~/.config/containers/registries.conf
0x01 配置网络
$ sudo lsmod | grep macvlan # 若无任何返回,说明还未加载 macvlan 内核模块。
$ sudo modprobe macvlan # 加载 macvlan 内核模块,若执行报错,说明 kernel 不支持该特性。
0x02 启动一个 Snell +Shadow-tls 服务
# 创建一个pod
podman pod create --snell-tls
# 创建一个双栈网络
podman network create shadow-tls --ipv6
# 在pod中启动snell容器(PSK请自定义)
podman run -dt \
--name snell-server \
--network shadow-tls --pod snell-tls \
-e PSK=R2AkHhm8PRvUJmwu9XS2xPYm \
-e PORT=55555 \
altriabot/snell
# 在pod中启动shadow-tls容器(PASSWORD请自定义)
podman run -dt -p 8443:443 \
--name shadow-tls \
--network shadow-tls --pod snell-tls \
-e MODE=server \
-e V3=1 \
-e LISTEN=0.0.0.0:443 \
-e SERVER=snell-server:55555 \
-e TLS=gateway.icloud.com:443 \
-e PASSWORD=287mnCWa8Rt6QFA2ytoA7A6u \
-e FASTOPEN=true \
ghcr.io/ihciah/shadow-tls
0x03 配置进程守护
# 创建service文件目录结构
mkdir -p ~/.config/systemd/user/
cd ~/.config/systemd/user/
# 为新 pod 生成 systemd 单元文件
podman generate systemd --files --name snell-tls
# 查看服务状态
systemctl status --user pod-snell-tls.service
# 启用该服务并在用户登录时启动
systemctl enable --user pod-snell-tls.service
# 检查是否启用该服务
systemctl is-enabled --user pod-snell-tls.service
# 刷新systemctl服务
systemctl --user daemon-reload
# 持久化登录(特定用户在注销后仍然保持其用户会话的活动状态)
sudo loginctl enable-linger ikun(用户名:whoami 可以查看)
0x04 启动一个 pagermaid_pyro 服务
# 启动BOT登录结束后Ctrl+C退出
podman run -it \
--hostname pgmpyro \
--name pgmpyro \
altriabot/pagermaid_pyro
# 重启BOT
podman restart pgmpyro
# BOT 数据持久化
mkdir -p ${HOME}/opt/bot/pgmpyro
podman cp pgmpyro:/pagermaid/workdir ~/opt/bot/pgmpyro #copy持久化文件到本地
# 删除容器
podman rm -f pgmpyro
# 映射持久化文件,重启BOT
podman run -itd \
--hostname pgmpyro \
--name pgmpyro \
-v ~/opt/bot/pgmpyro/:/pagermaid/ \
altriabot/pagermaid_pyro
进程守护都一样的步骤,下面是红帽的 podman 教程
...