FreeBSD Podman 安装与 GPT4Free 容器部署指南
服务器容器化环境搭建与 AI 对话平台部署完整手册
服务器: 192.168.0.88 系统: FreeBSD 15.1-RELEASE-p1 日期: 2026-07-21
一、项目概述
本文档记录了在FreeBSD 15.1服务器上安装Podman容器引擎,并通过容器部署GPT4Free(g4f)AI 对话平台的完整过程。
由于 FreeBSD 原生不支持 Docker 守护进程,本项目采用 Podman 作为替代方案。Podman 是无守护进程的容器引擎,在 FreeBSD 上有更好的兼容性。
部署成果
Podman 5.8.4 已成功安装,GPT4Free 容器已正常运行,可通过浏览器访问 AI 对话界面。
二、服务器环境
操作系统
FreeBSD 15.1-RELEASE-p1
架构
amd64 (x86_64)
IP 地址
192.168.0.88
SSH 用户
trae
包管理器
pkg
文件系统
ZFS
三、Podman 安装步骤
1
更新 pkg 仓库
sudo pkg update -f2
安装 Podman 及依赖
sudo pkg install -y podman此命令会自动安装以下依赖包:
conmon- 容器监控工具containernetworking-plugins- 容器网络插件containers-common- 容器通用配置ocijail- FreeBSD 容器运行时
3
挂载 fdescfs(必需)
Podman 的容器重启策略需要 fdescfs 文件系统支持:
sudo mount -t fdescfs fdesc /dev/fd # 永久生效(添加到 /etc/fstab) echo 'fdesc /dev/fd fdescfs rw 0 0' | sudo tee -a /etc/fstab4
加载 PF 内核模块(网络支持)
# 立即加载 sudo kldload pf # 永久加载(重启生效) echo 'pf_load="YES"' | sudo tee -a /boot/loader.conf # 启用本地回环过滤 sudo sysctl net.pf.filter_local=15
配置 PF 防火墙(容器网络 NAT)
sudo cp /usr/local/etc/containers/pf.conf.sample /etc/pf.conf # 编辑 /etc/pf.conf,确保包含以下行: # nat-anchor "cni-rdr/*" # rdr-anchor "cni-rdr/*" # anchor "cni-rdr/*" # 启用并启动 PF sudo sysrc pf_enable=YES sudo service pf start6
验证安装
podman --version # 预期输出: podman version 5.8.4四、国内加速镜像配置
由于服务器访问 Docker Hub 速度较慢,配置国内镜像加速源可显著提升拉取速度。
4.1 配置文件路径
/usr/local/etc/containers/registries.conf4.2 配置内容
unqualified-search-registries = ["docker.io"] [[registry]] prefix = "docker.io" location = "docker.io" [[registry.mirror]] location = "docker.m.daocloud.io" [[registry.mirror]] location = "hub-mirror.c.163.com" [[registry.mirror]] location = "docker.1panel.live" [[registry.mirror]] location = "dockerpull.org" [[registry.mirror]] location = "dockerhub.icu" [[registry.mirror]] location = "docker.rainbond.cc" [[registry.mirror]] location = "hub.rat.dev"加速源可用性说明
经 2026 年 7 月实测,DaoCloud和1Panel对基础镜像(如 alpine)加速效果最好。部分加速源对特定镜像(如 GPT4Free)有白名单限制,实际拉取时会自动 fallback 到可用源。
五、GPT4Free 容器部署
5.1 创建数据目录
mkdir -p /tmp/g4f_data/har_and_cookies /tmp/g4f_data/generated_media5.2 拉取镜像
# 通过加速源拉取(推荐) sudo podman pull --os=linux docker.1panel.live/hlohaus789/g4f:latest-slim # 或直接从 Docker Hub 拉取 sudo podman pull --os=linux docker.io/hlohaus789/g4f:latest-slim镜像大小约 670MB,拉取时间取决于网络速度。
5.3 启动容器
sudo podman run -d --name g4f --os=linux \ -p 8088:8080 \ -v /tmp/g4f_data/har_and_cookies:/app/har_and_cookies \ -v /tmp/g4f_data/generated_media:/app/generated_media \ hlohaus789/g4f:latest-slim端口说明
容器内部服务监听8080端口,映射到宿主机的8088端口(因为 8080 被其他进程占用)。如需使用其他端口,修改-p <宿主机端口>:8080即可。
5.4 验证容器状态
sudo podman ps -a # 预期输出: # NAMES STATUS PORTS # g4f Up 15 seconds 0.0.0.0:8088->8080/tcp六、访问方式
Web 聊天界面
http://192.168.0.88:8088/chat/
OpenAI 兼容 API
http://192.168.0.88:8088/v1
API 文档 (Swagger)
http://192.168.0.88:8088/docs
七、常用命令速查
7.1 容器管理
| 命令 | 说明 |
|---|---|
sudo podman ps -a | 查看所有容器 |
sudo podman logs -f g4f | 查看 GPT4Free 实时日志 |
sudo podman stop g4f | 停止容器 |
sudo podman start g4f | 启动容器 |
sudo podman restart g4f | 重启容器 |
sudo podman rm -f g4f | 删除容器 |
sudo podman exec -it g4f sh | 进入容器内部 |
7.2 镜像管理
| 命令 | 说明 |
|---|---|
sudo podman images | 查看本地镜像 |
sudo podman pull <镜像> | 拉取镜像 |
sudo podman rmi <镜像ID> | 删除镜像 |
sudo podman image prune -f | 清理未使用镜像 |
7.3 运行 Linux 容器
FreeBSD 上的 Podman 默认运行 FreeBSD 容器。如需运行 Linux 容器,必须添加--os=linux参数:
# 运行 Linux 容器示例 sudo podman run --rm --os=linux alpine echo "Hello from Linux!" # 运行 Linux 容器并交互 sudo podman run -it --rm --os=linux alpine sh八、注意事项
- FreeBSD Podman 为实验性功能,不建议用于生产环境。
- 运行 Linux 容器需要添加
--os=linux参数,否则默认尝试运行 FreeBSD 容器。 - 部分 Docker 镜像可能无法在 FreeBSD 上正常运行,建议使用官方测试过的镜像。
- 容器数据存储在
/var/db/containers(ZFS)或/tmp/g4f_data(GPT4Free 数据)。 - 如需开机自启容器,可设置
sudo sysrc podman_enable=YES。 - GPT4Free 的提供商接口可能随时变动,如遇问题请查看 GitHub 仓库 最新更新。
九、故障排除
9.1 镜像拉取失败
# 检查网络连通性 fetch -o - http://docker.io 2>&1 | head -5 # 尝试其他加速源 sudo podman pull docker.m.daocloud.io/library/alpine:latest sudo podman pull docker.1panel.live/library/alpine:latest9.2 容器无法启动(端口被占用)
# 查看端口占用 sockstat -l4 | grep 8088 # 更换端口重新启动 sudo podman rm -f g4f sudo podman run -d --name g4f --os=linux -p 8090:8080 ...9.3 容器网络不通
# 检查 PF 模块是否加载 kldstat | grep pf # 检查 PF 服务状态 sudo service pf status # 重新加载 PF 配置 sudo pfctl -f /etc/pf.conf9.4 GPT4Free 无法访问
# 查看容器日志 sudo podman logs --tail 50 g4f # 测试本地访问 fetch -o - http://127.0.0.1:8088/chat/ 2>&1 | head -10十、参考资源
- GPT4Free 官方仓库:GitHub - xtekky/gpt4free: The official gpt4free repository | various collection of powerful language models | opus 4.6 gpt 5.3 kimi 2.5 deepseek v3.2 gemini 3 · GitHub
- GPT4Free 官方文档:GPT4Free Documentation Hub
- Podman 官方文档:Getting Started with Podman | Podman
- FreeBSD 容器 Wiki:Making sure you're not a bot!
FreeBSD Podman 安装与 GPT4Free 容器部署指南
服务器: 192.168.0.88 | 文档生成日期: 2026-07-21