Ubuntu 22.04 安装 Zoraxy 指南

Ubuntu 22.04 上从零安装 Zoraxy 3.3.4 的完整指南:官方二进制下载校验、专用用户与目录规划、systemd 托管、最小反代验证、离线部署与源码编译备选,以及排障实录

Zoraxy网络配置Ubuntu安全2026/10/21

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(无运行时依赖)
sha256452b9bfd3e54e24853b6ad27555b1727be0e85f356f5c8487da9d2f28497b298
安装路径二进制 /usr/bin/zoraxy,数据目录 /opt/zoraxy/
服务账户系统用户 zoraxy(禁止登录 shell)
默认端口8000(Web 管理界面)、443(反代入站 TLS)、80(HTTP 跳转)、5487(内置静态 Web 服务器)
服务单元/etc/systemd/system/zoraxy.service

二、前置条件

开始安装前,确认服务器满足以下条件并逐项验证:

  1. 具备 root 或 sudo 权限:安装涉及写 /usr/bin、/etc/systemd/system 与创建系统用户。
  2. 基础工具齐备: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
  1. 目标端口未被占用:Zoraxy 默认占用 80、443、8000、5487 四个端口,安装前先检查:
ss -ltn | grep -E ':80 |:443 |:8000 |:5487 '

输出为空即表示端口全部空闲;若有输出,说明端口被其他服务(如已装的 Nginx/Apache)占用,需先停用对应服务,或改用本文 FAQ 中的改端口方案。

  1. 网络可达 GitHub Releases(方案 A/C 需要;离线环境走方案 B)。
  2. 磁盘空间:二进制约 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_amd64Linux x86_64(主流服务器,本文所用)
zoraxy_linux_arm64Linux ARM64(树莓派 4+、ARM 云主机)
zoraxy_linux_armLinux ARMv6(旧款树莓派)
zoraxy_linux_386 / mipsle / riscv6432 位 x86 / MIPS 小端 / RISC-V
zoraxy_darwin_amd64 / freebsd_amd64 / windows_amd64.exemacOS / 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/Groupzoraxy以专用低权限用户运行,进程被入侵也不至于直接拿到 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.jsonACME 自动证书开关与账号邮箱
/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 会永久删除全部反代规则、证书与统计数据;如需迁移而非废弃,先备份该目录再删。

十一、参考链接