Ubuntu 22.04 安装 Zoraxy 指南
Ubuntu 22.04 上从零安装 Zoraxy 3.3.4 的完整指南:官方二进制下载校验、专用用户与目录规划、systemd 托管、最小反代验证、离线部署与源码编译备选,以及排障实录
Ubuntu 22.04 安装 Zoraxy 指南
目标:在 Ubuntu 22.04 服务器上从零安装 Zoraxy v3.3.4 反向代理网关,完成「官方二进制下载校验 → 专用用户与目录 → systemd 托管 → 首启建号 → 最小反代验证」全流程,并沉淀离线部署、源码编译两个备选方案与真实排障记录。已在 Ubuntu 22.04.5 LTS(x86_64,systemd 249)环境逐条命令实测通过。
一、环境信息
| 项目 | 内容 |
|---|---|
| 操作系统 | Ubuntu 22.04.5 LTS(x86_64) |
| init 系统 | systemd 249(249.11-0ubuntu3.23) |
| Zoraxy 版本 | v3.3.4(官方最新稳定版,查询日期 2026-10-20) |
| 二进制 | zoraxy_linux_amd64,110530744 字节,静态链接 ELF(无运行时依赖) |
| sha256 | 452b9bfd3e54e24853b6ad27555b1727be0e85f356f5c8487da9d2f28497b298 |
| 安装路径 | 二进制 /usr/bin/zoraxy,数据目录 /opt/zoraxy/ |
| 服务账户 | 系统用户 zoraxy(禁止登录 shell) |
| 默认端口 | 8000(Web 管理界面)、443(反代入站 TLS)、80(HTTP 跳转)、5487(内置静态 Web 服务器) |
| 服务单元 | /etc/systemd/system/zoraxy.service |
二、前置条件
开始安装前,确认服务器满足以下条件并逐项验证:
- 具备 root 或 sudo 权限:安装涉及写
/usr/bin、/etc/systemd/system与创建系统用户。 - 基础工具齐备:
curl(下载)、sha256sum(coreutils 自带)、netstat/ss(端口检查)。Ubuntu 22.04 最小安装可能缺curl与net-tools:
apt-get update && apt-get install -y curl net-tools
Setting up net-tools (1.60+git20181103.0eebece-1ubuntu5.4) ...
💡 说明:上面保留安装阶段的实测关键行(
apt-get update回显较长已节选);装完可用curl --version | head -1确认:
curl 7.81.0 (x86_64-pc-linux-gnu) libcurl/7.81.0 OpenSSL/3.0.2 zlib/1.2.11 brotli/1.0.9 zstd/1.4.8 libidn2/2.3.2 libpsl/0.21.0 (+libidn2/2.3.2) libssh/0.9.6/openssl/zlib nghttp2/1.43.0 librtmp/2.3 OpenLDAP/2.5.20
- 目标端口未被占用:Zoraxy 默认占用 80、443、8000、5487 四个端口,安装前先检查:
ss -ltn | grep -E ':80 |:443 |:8000 |:5487 '
输出为空即表示端口全部空闲;若有输出,说明端口被其他服务(如已装的 Nginx/Apache)占用,需先停用对应服务,或改用本文 FAQ 中的改端口方案。
- 网络可达 GitHub Releases(方案 A/C 需要;离线环境走方案 B)。
- 磁盘空间:二进制约 105MB,运行期数据库与日志增长按 GB 级预留即可。
三、版本选型说明
版本实查自官方发布通道(查询日期 2026-10-20):
| 版本线 | 状态 | 说明 |
|---|---|---|
| v3.3.4 | 最新稳定版 | 2026-08-22 发布,本文实测版本 |
| v3.3.5-rc1~rc3 | 预发布(rc) | 尚在测试阶段,生产不选 |
| v3.3.3 | 上一稳定版 | 需要 stay-behind 时可用,不建议新装 |
选择结论:新安装一律选最新稳定版 v3.3.4。官方 Release 附件按平台分发,x86_64 服务器选 zoraxy_linux_amd64;各平台资产清单如下(来自官方 Release 页,查询日期 2026-10-20):
| 资产文件 | 适用平台 |
|---|---|
| zoraxy_linux_amd64 | Linux x86_64(主流服务器,本文所用) |
| zoraxy_linux_arm64 | Linux ARM64(树莓派 4+、ARM 云主机) |
| zoraxy_linux_arm | Linux ARMv6(旧款树莓派) |
| zoraxy_linux_386 / mipsle / riscv64 | 32 位 x86 / MIPS 小端 / RISC-V |
| zoraxy_darwin_amd64 / freebsd_amd64 / windows_amd64.exe | macOS / FreeBSD / Windows |
关键差异解读:Zoraxy 官方二进制全部为静态编译(实测
file确认 statically linked),选型时只需对准 CPU 架构,无需考虑发行版与库版本;不确认架构时用uname -m查看(x86_64 → amd64,aarch64 → arm64)。
四、方案 A:官方二进制在线安装 + systemd 托管(推荐)
4.1 方案说明
本方案从官方 GitHub Releases 直接下载编译好的静态二进制,落到 /usr/bin/zoraxy,数据收敛到 /opt/zoraxy/,用 systemd 以专用低权限用户托管。这是官方支持、升级最省事、也最适合生产的主形态;一条命令升级(替换二进制重启),回滚同理。
4.2 下载官方二进制
在服务器上用 curl 直接下载官方 release 文件:
cd /tmp
curl -LO "https://github.com/tobychui/zoraxy/releases/download/v3.3.4/zoraxy_linux_amd64"
⚠️ 排障实录(实测遇到):本环境直连 GitHub 时下载被链路重置,
curl报错如下——curl: (56) OpenSSL SSL_read: Connection reset by peer, errno 104该错误属于网络链路对 GitHub 的干扰,不是命令问题。解决办法二选一:其一,为 curl 指定可用 HTTP 代理后重试(本环境实测走代理下载成功):
curl -x http://192.168.1.62:7897 -LO "https://github.com/tobychui/zoraxy/releases/download/v3.3.4/zoraxy_linux_amd64"其二,在任何能访问 GitHub 的机器上完成下载后,按方案 B 拷贝到目标服务器。
下载完成后确认文件大小与校验值(以下为本环境实测回显):
ls -la zoraxy_linux_amd64
-rw-r--r-- 1 root root 110530744 10月 21 01:03 zoraxy_linux_amd64
sha256sum zoraxy_linux_amd64
452b9bfd3e54e24853b6ad27555b1727be0e85f356f5c8487da9d2f28497b298 zoraxy_linux_amd64
file zoraxy_linux_amd64
zoraxy_linux_amd64: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), statically linked, BuildID[sha1]=1176bd3807adeb04895cc3e52d35eb6ce623f5fa, stripped
💡 说明:
file输出中的 statically linked 是重点——静态编译意味着它不依赖系统的任何共享库,Ubuntu 22.04 上拿到即可运行,这也是方案 B 离线部署可行的前提。
4.3 安装二进制
用 install 命令将二进制落到 /usr/bin 并赋予执行权限(install 同时完成拷贝与 chmod,比 cp + chmod 少一步):
install -m 755 /tmp/zoraxy_linux_amd64 /usr/bin/zoraxy
ls -la /usr/bin/zoraxy
-rwxr-xr-x 1 root root 110530744 Oct 20 17:24 /usr/bin/zoraxy
验证版本号,确认安装成功:
zoraxy -version
Zoraxy - Version 3.3.4
4.4 运行用户与目录规划
创建禁止登录的系统用户,并按「配置/日志/临时/静态站/插件」五个子目录规划数据目录:
useradd -r -s /usr/sbin/nologin zoraxy
mkdir -p /opt/zoraxy/conf /opt/zoraxy/log /opt/zoraxy/tmp /opt/zoraxy/www /opt/zoraxy/plugins
chown -R zoraxy:zoraxy /opt/zoraxy
ls -la /opt/zoraxy/
total 28
drwxr-xr-x 7 zoraxy zoraxy 4096 Oct 20 17:24 .
drwxr-xr-x 1 root root 4096 Oct 20 17:24 ..
drwxr-xr-x 2 zoraxy zoraxy 4096 Oct 20 17:24 conf
drwxr-xr-x 2 zoraxy zoraxy 4096 Oct 20 17:24 log
drwxr-xr-x 2 zoraxy zoraxy 4096 Oct 20 17:24 plugins
drwxr-xr-x 2 zoraxy zoraxy 4096 Oct 20 17:24 tmp
drwxr-xr-x 2 zoraxy zoraxy 4096 Oct 20 17:24 www
💡 说明:
useradd -r创建的是系统用户(无密码、不可交互登录),配合 systemd 的User=zoraxy让 Zoraxy 不以 root 跑——但注意 Zoraxy 需要监听 80/443 特权端口,systemd 服务以普通用户身份绑定特权端口在此默认可行(内核net.ipv4.ip_unprivileged_port_start默认为 0 的 systemd 环境);若你的环境绑不上特权端口,见 FAQ Q4。
4.5 systemd 服务托管
创建服务单元 /etc/systemd/system/zoraxy.service:
cat > /etc/systemd/system/zoraxy.service << 'EOF'
[Unit]
Description=Zoraxy Reverse Proxy and Edge Gateway
Documentation=https://zoraxy.aroz.org
After=network.target
[Service]
Type=simple
User=zoraxy
Group=zoraxy
WorkingDirectory=/opt/zoraxy
ExecStart=/usr/bin/zoraxy -conf /opt/zoraxy/conf -log /opt/zoraxy/log -dbpath /opt/zoraxy/sys.db -uuid /opt/zoraxy/sys.uuid -webroot /opt/zoraxy/www -plugin /opt/zoraxy/plugins -tmp /opt/zoraxy/tmp
Restart=on-failure
RestartSec=5
LimitNOFILE=65535
[Install]
WantedBy=multi-user.target
EOF
逐项说明:
| 配置项 | 值 | 作用 |
|---|---|---|
Type=simple | — | zoraxy 前台常驻进程,systemd 直接跟踪主进程 |
User/Group | zoraxy | 以专用低权限用户运行,进程被入侵也不至于直接拿到 root |
WorkingDirectory | /opt/zoraxy | 兜底工作目录,避免相对路径散落 |
ExecStart 的 -conf/-log/-tmp/-webroot/-plugin/-dbpath/-uuid | /opt/zoraxy 下 | 把全部持久化产物显式钉到数据目录,升级迁移只拷这一个目录 |
Restart=on-failure + RestartSec=5 | — | 异常退出 5 秒后自动拉起 |
LimitNOFILE=65535 | — | 反代长连接场景需要更高的文件描述符上限 |
加载单元并设置开机自启:
systemctl daemon-reload
systemctl enable zoraxy
Created symlink /etc/systemd/system/multi-user.target.wants/zoraxy.service → /etc/systemd/system/zoraxy.service.
4.6 启动与验证
启动服务并确认运行状态:
systemctl start zoraxy
systemctl is-active zoraxy
active
查看完整服务状态(systemd 已将其归入系统切片 /system.slice/zoraxy.service):
systemctl status zoraxy --no-pager -l
● zoraxy.service - Zoraxy Reverse Proxy and Edge Gateway
Loaded: loaded (/etc/systemd/system/zoraxy.service; enabled; vendor preset: enabled)
Active: active (running) since Tue 2026-10-20 17:24:49 UTC; 5s ago
Docs: https://zoraxy.aroz.org
Main PID: 2691 (zoraxy)
Tasks: 17 (limit: 94371)
Memory: 150.3M
CPU: 456ms
CGroup: /system.slice/zoraxy.service
└─2691 /usr/bin/zoraxy -conf /opt/zoraxy/conf -log /opt/zoraxy/log -dbpath /opt/zoraxy/sys.db -uuid /opt/zoraxy/sys.uuid -webroot /opt/zoraxy/www -plugin /opt/zoraxy/plugins -tmp /opt/zoraxy/tmp
💡 说明:
Memory: 150.3M是 Zoraxy 启动后的典型常驻内存(含 GeoIP 数据库加载);Tasks: 17为其内部协程工作组的线程数。
查看首启日志,确认各子系统正常拉起(journalctl 实测节选):
journalctl -u zoraxy --no-pager | grep "zoraxy\[" | head -20
Oct 20 17:24:49 web-gw-01 zoraxy[2691]: Checking required config update
Oct 20 17:24:49 web-gw-01 zoraxy[2691]: [2026-10-20 17:24:49.264450] [internal] [system:info] Log rotation is disabled
Oct 20 17:24:49 web-gw-01 zoraxy[2691]: [2026-10-20 17:24:49.264505] [database] [system:info] Using BoltDB as the database backend
Oct 20 17:24:49 web-gw-01 zoraxy[2691]: [2026-10-20 17:24:49.264497] [internal] [system:info] System wide logging is enabled
Oct 20 17:24:49 web-gw-01 zoraxy[2691]: [2026-10-20 17:24:49.266642] [auth] [system:info] New authentication session key generated
Oct 20 17:24:49 web-gw-01 zoraxy[2691]: [2026-10-20 17:24:49.431860] [LoadBalancer] [system:info] Upstream state cache ticker started
Oct 20 17:24:49 web-gw-01 zoraxy[2691]: [2026-10-20 17:24:49.432474] [Forward Auth] [system:info] Forward Authz Options -> Address: , Response Headers: , Response Client Headers: , Request Headers: , Request Included Cookies: , Request Excluded Cookies: , Request Include Body: false, Use X-Original Headers: false, Ignored Paths:
Oct 20 17:24:49 web-gw-01 zoraxy[2691]: [2026-10-20 17:24:49.434010] [zorxauth] [system:info] Loaded 0 browser sessions from database (0 expired sessions removed)
Oct 20 17:24:49 web-gw-01 zoraxy[2691]: [2026-10-20 17:24:49.434035] [zorxauth] [system:info] Loaded 0 gateway sessions from database (0 expired sessions removed)
Oct 20 17:24:49 web-gw-01 zoraxy[2691]: [2026-10-20 17:24:49.434217] [zorxauth] [system:info] Loaded 0 group policies from disk
Oct 20 17:24:49 web-gw-01 zoraxy[2691]: [2026-10-20 17:24:49.434732] [static-webserv] [system:info] Static Web Server started. Listeing on :5487
Oct 20 17:24:49 web-gw-01 zoraxy[2691]: [2026-10-20 17:24:49.436081] [internal] [system:info] Starting ACME handler
Oct 20 17:24:49 web-gw-01 zoraxy[2691]: [2026-10-20 17:24:49.436126] [cert-renew] [system:info] ACME early renew set to 30 days and check interval set to 86400 seconds
Oct 20 17:24:49 web-gw-01 zoraxy[2691]: [2026-10-20 17:24:49.436956] [internal] [system:info] TLS mode enabled. Serving proxy request with TLS
Oct 20 17:24:49 web-gw-01 zoraxy[2691]: [2026-10-20 17:24:49.436972] [internal] [system:info] Inbound port not set. Using default (443)
Oct 20 17:24:49 web-gw-01 zoraxy[2691]: [2026-10-20 17:24:49.436987] [internal] [system:info] Proxy timeout settings loaded. Read header: 30s, Write: 0s, Idle: 300s
Oct 20 17:24:49 web-gw-01 zoraxy[2691]: [2026-10-20 17:24:49.437025] [internal] [system:info] Force HTTPS mode enabled
Oct 20 17:24:49 web-gw-01 zoraxy[2691]: [2026-10-20 17:24:49.437076] [internal] [system:info] Zoraxy started. Visit control panel at http://localhost:8000
确认监听端口与预期一致(80/443/8000/5487):
netstat -ltnp | grep zoraxy
tcp6 0 0 :::443 :::* LISTEN 2691/zoraxy
tcp6 0 0 :::80 :::* LISTEN 2691/zoraxy
tcp6 0 0 :::5487 :::* LISTEN 2691/zoraxy
tcp6 0 0 :::8000 :::* LISTEN 2691/zoraxy
最后验证管理界面 HTTP 可达:
curl -s -o /dev/null -w "GET /login.html -> %{http_code}\n" http://localhost:8000/login.html
GET /login.html -> 200
至此方案 A 安装完成:服务已 systemd 托管、开机自启、四个监听端口就绪、管理界面可访问。首次登录建号见第八章。
五、方案 B:离线二进制部署(断网/内网服务器)
5.1 方案说明
目标服务器无法访问外网时,在任何一台能上网的机器上完成「下载 + 校验」,再把二进制拷贝到目标服务器。Zoraxy 二进制静态链接、零依赖,拷过去即可运行,这是它非常适合内网环境的特性。
5.2 操作步骤
在有网的机器上下载并校验(命令与校验值同 4.2,sha256 必须等于 452b9bfd3e54e24853b6ad27555b1727be0e85f356f5c8487da9d2f28497b298,不一致说明下载不完整或被篡改,禁止安装):
curl -LO "https://github.com/tobychui/zoraxy/releases/download/v3.3.4/zoraxy_linux_amd64"
sha256sum zoraxy_linux_amd64
452b9bfd3e54e24853b6ad27555b1727be0e85f356f5c8487da9d2f28497b298 zoraxy_linux_amd64
用 scp 拷贝到目标服务器(示例以 deploy@192.168.1.10 为目标机):
scp zoraxy_linux_amd64 deploy@192.168.1.10:/tmp/zoraxy_linux_amd64
在目标服务器上重新校验一次(防拷贝损坏)后,执行与方案 A 完全相同的 4.3~4.6 步骤(安装二进制 → 建用户与目录 → systemd 单元 → 启动验证),此处不重复:
sha256sum /tmp/zoraxy_linux_amd64
install -m 755 /tmp/zoraxy_linux_amd64 /usr/bin/zoraxy
zoraxy -version
452b9bfd3e54e24853b6ad27555b1727be0e85f356f5c8487da9d2f28497b298 /tmp/zoraxy_linux_amd64
Zoraxy - Version 3.3.4
⚠️ 注意:离线部署的后续升级同样靠「有网机器下载新版本 → scp → 替换二进制 →
systemctl restart zoraxy」完成,配置目录/opt/zoraxy/与数据库在升级间保持不变。
六、方案 C:源码编译安装(备用)
6.1 方案说明
需要定制功能或官方暂未提供你平台资产时,从源码自行编译。Zoraxy 是纯 Go 项目,编译产物同样是静态二进制。硬性前置:Go 工具链 ≥ 1.25(仓库 go.mod 声明 go 1.25.0;Ubuntu 22.04 的 apt install golang 只有 1.18,不满足,必须从官方安装新版 Go)。
6.2 安装 Go 工具链
curl -LO "https://mirrors.aliyun.com/golang/go1.25.3.linux-amd64.tar.gz"
tar -C /usr/local -xzf go1.25.3.linux-amd64.tar.gz
export PATH=$PATH:/usr/local/go/bin
go version
go version go1.25.3 linux/amd64
6.3 编译并安装
git clone https://github.com/tobychui/zoraxy
cd zoraxy/src
export GOPROXY=https://goproxy.cn,direct
go mod tidy
go build -o /tmp/zoraxy .
go mod tidy 首次执行会拉取全部编译依赖(实测节选):
go: downloading github.com/vmihailenco/msgpack/v5 v5.4.1
go: downloading github.com/vmihailenco/tagparser/v2 v2.0.0
go build 在 12 核机器上实测约 24 秒完成,产物约 135MB 的静态二进制:
ls -la /tmp/zoraxy
/tmp/zoraxy -version
-rwxr-xr-x 1 root root 135542776 Oct 20 17:30 /tmp/zoraxy
Zoraxy - Version 3.3.4
编译成功后把 /tmp/zoraxy 按方案 A 的 4.3~4.6 落位安装(install -m 755 /tmp/zoraxy /usr/bin/zoraxy 起,其余步骤一致)。
⚠️ 注意:
go build首次执行需下载编译依赖,国内网络建议如上设置GOPROXY=https://goproxy.cn,direct,否则依赖拉取容易超时中断。
七、多方案对比与选择建议
| 维度 | 方案 A:官方二进制在线 | 方案 B:离线二进制 | 方案 C:源码编译 |
|---|---|---|---|
| 是否需联网 | 目标机需访问 GitHub | 仅中转机需联网 | 目标机需拉源码与 Go 依赖 |
| 产物 | 官方静态二进制 | 官方静态二进制 | 自编译静态二进制 |
| systemd 来源 | 本文自建单元 | 同 A | 同 A |
| 升级方式 | 重下 release 替换二进制 | 中转机下载 + scp 替换 | git pull 重新编译 |
| 适用场景 | 可联网的常规服务器 | 断网/内网生产环境 | 定制修改、冷门架构 |
选择建议:能联网选 A;生产内网选 B(与 A 的服务单元完全一致,仅下载环节不同);只有要改代码或官方没有你的平台资产时才选 C。三个方案的 systemd 托管与目录规划完全一致,切换方案不影响既有数据。
八、安装后配置说明
8.1 首次登录与管理账号创建
浏览器访问 http://<服务器IP>:8000,Zoraxy 首次启动没有默认账号:登录页检测到系统内用户数为 0 时会自动切换为 Account Setup 模式(创建账号表单)。输入管理员用户名与密码提交即完成建号。本文示例创建账号 admin / q1w2e3r4。
用接口验证当前用户数与登录态(等价于界面建号前后的状态变化):
curl -s http://localhost:8000/api/auth/userCount; echo " <- 建号前"
0 <- 建号前
建号并登录后,日志中会出现账号登录记录:
Oct 20 17:24:54 web-gw-01 zoraxy[2691]: [2026-10-20 17:24:54.297483] [auth] [system:info] admin logged in.
💡 说明:
0 <- 建号前的0是接口返回的用户数量。忘记密码时用zoraxy -reset_ac清空账号回到建号模式,完整实测回显见本文第九章 Q5。
8.2 最小反向代理验证
先准备一个测试后端服务(用 Python 内置 HTTP 服务器模拟一个业务应用,监听 3000 端口):
mkdir -p /var/www/demo && echo "<h1>Zoraxy Backend Demo OK</h1>" > /var/www/demo/index.html
nohup python3 -m http.server 3000 --directory /var/www/demo >/tmp/backend.log 2>&1 &
curl -s http://127.0.0.1:3000/
<h1>Zoraxy Backend Demo OK</h1>
在管理界面「HTTP Proxy」页添加代理规则:匹配域名填 demo.example.com、上游(Endpoint)填 127.0.0.1:3000,保存后 Zoraxy 会在数据目录生成对应规则文件并即时生效:
ls -la /opt/zoraxy/conf/proxy/
total 12
drwxr-xr-x 2 zoraxy zoraxy 4096 Oct 20 17:25 .
drwxr-xr-x 8 zoraxy zoraxy 4096 Oct 20 17:24 ..
-rwxr-xr-x 1 zoraxy zoraxy 1921 Oct 20 17:25 demo.example.com.config
验证反代链路(用 Host 头模拟对该域名的访问):
curl -sk -H "Host: demo.example.com" https://127.0.0.1/
<h1>Zoraxy Backend Demo OK</h1>
curl -sk -H "Host: demo.example.com" https://127.0.0.1/ -o /dev/null -w "https443: %{http_code}\n"
curl -s -H "Host: demo.example.com" http://127.0.0.1/ -o /dev/null -w "http80: %{http_code}\n"
https443: 200
http80: 200
两条链路都返回 200 且正文来自后端,说明「域名匹配 → 上游转发 → TLS 入站」全链路正常。若规则未勾选「允许 HTTP 直连(bypassGlobalTLS)」,80 端口会返回 307 强制跳转 HTTPS(本环境实测捕获):
<a href="https://demo.example.com/">Temporary Redirect</a>.
http80: 307
8.3 关键配置文件位置
安装完成后,全部持久化数据都在 /opt/zoraxy/ 下(路径由 systemd 单元的启动参数指定):
| 路径 | 内容 |
|---|---|
/opt/zoraxy/sys.db | 内嵌 BoltDB 数据库(账号、会话、统计等动态数据) |
/opt/zoraxy/sys.uuid | 节点 UUID(mDNS 与集群识别用) |
/opt/zoraxy/conf/proxy/*.config | 反代规则(每个匹配域名一个 JSON 文件) |
/opt/zoraxy/conf/acme_conf.json | ACME 自动证书开关与账号邮箱 |
/opt/zoraxy/conf/log_conf.json | 日志轮转配置 |
/opt/zoraxy/conf/trusted_proxies.json | 可信代理 CIDR 列表(真实客户端 IP 判定) |
/opt/zoraxy/log/ | 系统日志文件(如 zr_2026-10.log) |
/opt/zoraxy/www/ | 内置静态 Web 服务器根目录 |
💡 说明:备份 Zoraxy = 备份
/opt/zoraxy/整个目录(数据库 + 规则 + 证书全部在内);启动参数的逐项含义见第四章 4.5 节的单元配置说明表。
九、常见问题(FAQ)
Q1:systemctl start zoraxy 后服务起不来,status 显示 status=203/EXEC?
二进制路径不对或文件不存在——systemd 找不到 ExecStart 指定的可执行文件。本环境实测日志:
Oct 20 17:24:01 web-gw-01 systemd[2623]: zoraxy.service: Failed to locate executable /usr/bin/zoraxy: No such file or directory
Oct 20 17:24:01 web-gw-01 systemd[2623]: zoraxy.service: Failed at step EXEC spawning /usr/bin/zoraxy: No such file or directory
Oct 20 17:24:01 web-gw-01 systemd[1]: zoraxy.service: Main process exited, code=exited, status=203/EXEC
处理:确认 /usr/bin/zoraxy 存在且可执行(ls -la /usr/bin/zoraxy,方案 B 离线部署时最容易忘掉 install 步骤),必要时重跑 4.3 节的 install -m 755 命令,再 systemctl restart zoraxy。
Q2:下载二进制时报 curl: (56) OpenSSL SSL_read: Connection reset by peer?
目标网络到 GitHub 的链路被重置(本环境实测遇到,完整记录见 4.2 节)。处理:换代理下载、换镜像源,或改走方案 B 在有网机器下载后拷贝。
Q3:80/443 端口已被占用,Zoraxy 启动失败或只想内网测试?
改绑定端口再启动:管理端口用 -port=:8443 这类启动参数修改;反代入站端口在管理界面「Global Settings」中修改(对应启动参数 -default_inbound_port,默认 443)。修改 systemd 单元时改 ExecStart 行后需要 systemctl daemon-reload && systemctl restart zoraxy。
Q4:以 zoraxy 用户运行时绑定 80/443 报 permission denied?
个别环境的内核参数 net.ipv4.ip_unprivileged_port_start 非 0,普通用户无法绑特权端口。处理:在 [Service] 段补一行 AmbientCapabilities=CAP_NET_BIND_SERVICE,daemon-reload 后重启服务;或把入站端口改到 1024 以上。
Q5:zoraxy -reset_ac 提示 Unknown database backend?
把数据库路径误传给了 -db 参数——-db 是后端类型(leveldb/boltdb/auto),路径要用 -dbpath。本环境实测对比:
Resetting admin account...
Unknown database backend: /opt/zoraxy/sys.db
Using auto detected backend
No auth table found. Nothing to reset.
把参数改成 -dbpath /opt/zoraxy/sys.db 后即可正确重置:
Resetting admin account...
Successfully reset admin account. All users have been removed from the system.
Please restart and create a new admin account.
Q6:日志里出现 Failed to sync plugin list from plugin store ... TLS handshake timeout?
插件商店列表同步失败,通常发生在访问 GitHub 不顺畅的网络。该错误不影响反代、证书等核心功能(本环境实测持续出现但代理转发正常),可忽略或改善网络后重启服务。
十、卸载与清理
完整卸载 = 停服务 → 摘自启 → 删单元 → 删二进制 → 删数据目录 → 删用户:
systemctl stop zoraxy
systemctl disable zoraxy
Removed /etc/systemd/system/multi-user.target.wants/zoraxy.service.
systemctl is-active zoraxy
inactive
删除单元文件、二进制、数据目录与服务用户:
rm -f /etc/systemd/system/zoraxy.service
systemctl daemon-reload
rm -f /usr/bin/zoraxy
rm -rf /opt/zoraxy
userdel zoraxy
⚠️ 注意:
rm -rf /opt/zoraxy会永久删除全部反代规则、证书与统计数据;如需迁移而非废弃,先备份该目录再删。
十一、参考链接
- 官方 Releases(v3.3.4 资产下载):https://github.com/tobychui/zoraxy/releases
- 官方 README(Standalone Mode / Start Parameters):https://github.com/tobychui/zoraxy
- 官方 Getting Started(Wiki):https://github.com/tobychui/zoraxy/wiki/Getting-Started
- 官方站点:https://zoraxy.aroz.org
- 站内配套阅读:《Zoraxy 介绍与选型指南》