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 -f

2

安装 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/fstab

4

加载 PF 内核模块(网络支持)
# 立即加载
sudo kldload pf

# 永久加载(重启生效)
echo 'pf_load="YES"' | sudo tee -a /boot/loader.conf

# 启用本地回环过滤
sudo sysctl net.pf.filter_local=1

5

配置 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 start

6

验证安装
podman --version
# 预期输出: podman version 5.8.4

四、国内加速镜像配置

由于服务器访问 Docker Hub 速度较慢,配置国内镜像加速源可显著提升拉取速度。

4.1 配置文件路径

/usr/local/etc/containers/registries.conf

4.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_media

5.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:latest

9.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.conf

9.4 GPT4Free 无法访问

# 查看容器日志
sudo podman logs --tail 50 g4f

# 测试本地访问
fetch -o - http://127.0.0.1:8088/chat/ 2>&1 | head -10

十、参考资源

FreeBSD Podman 安装与 GPT4Free 容器部署指南

服务器: 192.168.0.88 | 文档生成日期: 2026-07-21

Logo

AtomGit AI 社区提供模型库、数据集、Agent、Token等资源

更多推荐