Docker 版 AFRP 内网穿透客户端,通过浏览器管理 frpc。无需安装桌面应用,一键部署即可使用。
Github仓库:https://github.com/afrpnet/afrp-docker
Docker仓库:https://hub.docker.com/r/afrp/afrp
# 拉取镜像
docker pull afrp/afrp
# 运行容器
docker run -d \
--name afrp-web \
--restart unless-stopped \
-p 8000:8000 \
-p 7400:7400 \
-v afrp-data:/data \
afrp/afrp
⚠️
-v afrp-data:/data必须挂载。配置、Client Secret、隧道都存放在/data下,漏挂卷会新建匿名卷,表现为「重启后又要重新登录、密钥又变成未设置」。
💡
-p 7400:7400是 frpc 自带管理面板的端口,映射后容器外才能打开面板;不用管理面板可以不映射。
访问 Web UI:http://localhost:8000
frpc.tomlfrpc.toml 直接编辑,保存后文件里的隧道会同步到隧道列表,并自动重启 frpc;在 frpc 管理面板的「配置」页改过 frpc.toml 后,回到网页点「刷新」即可看到这些隧道frpc.toml 的 webServer 段和 [store] 段并重启 frpc,下方会显示面板地址、账号和密码(Docker 部署需映射该端口,-p 7400:7400)镜像发布后按以下顺序更新(务必保留数据卷):
docker stop afrp-web && docker rm afrp-web
docker pull afrp/afrp:latest
docker run -d --name afrp-web --restart unless-stopped -p 8000:8000 -p 7400:7400 -v afrp-data:/data afrp/afrp:latest
配置和日志保存在 Docker volume afrp-data 中:
# 查看配置目录
docker exec afrp-web ls /data
# 备份配置
docker run --rm -v afrp-data:/data -v $(pwd):/backup alpine tar czf /backup/afrp-backup.tar.gz /data
# 恢复配置
docker run --rm -v afrp-data:/data -v $(pwd):/backup alpine tar xzf /backup/afrp-backup.tar.gz -C /
| 路径 | 说明 |
|---|---|
/data/config/config.json |
主配置:账号、服务器、密钥、隧道列表 |
/data/config/frpc.toml |
自动生成的 frpc 配置,启动时直接使用 |
/data/config/frpc_store.json |
管理面板的代理存储文件(启用管理面板后生成) |
/data/logs/frpc.log |
frpc 运行日志 |
config.json 中几个关键字段:
| 字段 | 说明 |
|---|---|
user |
当前登录的官网用户名(frpc 的 clientID 即此值) |
account_secrets |
账号 → Client Secret 映射,切换账号时按账号取用 |
account_servers |
账号 → 最后选择的服务器 ID,登录时自动恢复 |
client_secret |
当前账号的密钥(旧版单账号配置,升级后会自动归档进 account_secrets) |
「状态」下方勾选「启用 frpc 管理面板」后,页面自动生成随机账号密码并写入 frpc.toml 的 webServer 段与 [store] 段,同时重启 frpc 使配置生效;下方提示里会给出面板地址、账号和密码。
启用管理面板后,frpc 会在代理存储文件 /data/config/frpc_store.json 中记录面板里增删改的隧道。
frpc.toml 里的隧道,点「刷新」即可看到最新改动config.json 的隧道列表,之后可以直接在网页里编辑、删除;改动同时写回存储文件,frpc 侧保持一致/data/config/frpc.toml,改动后点「刷新」,这些隧道同样会并入列表,标有「配置文件」角标frpc.toml 里改了 webServer.user / webServer.password,账号密码会同步回 config.json,页面提示里的账号密码随之改变,重新生成配置时也不会被旧值覆盖frpc.toml 并重启 frpc,改动立即生效frpc.toml 时会保留面板设置的其它字段(如 transport.useEncryption),不会因为在网页里编辑就丢失frpc.toml 里整段注释掉,不会让 frpc 启动失败,补全后自动恢复frpc.toml 里的隧道