故障排除 与 错误代码详解

故障排除 与 错误代码详解

故障排除

常规维护文档 (opens in a new tab)

  1. 先查询后端状态

    大概会得到以下输出

  • 正常输出
PortForwardGo.service - PortForwardGo Service
     Loaded: loaded (/etc/systemd/system/PortForwardGo.service; enabled; preset: enabled)
     Active: active (running); 1min ago
   Main PID: 114514 (PortForwardGo)
      Tasks: 8
     Memory: 13.2M
        CPU: 589ms
     CGroup: /system.slice/PortForwardGo.service
             └─114514 /opt/PortForwardGo/PortForwardGo --config backend.json --log run.log
 
systemd[1]: Started PortForwardGo.service - PortForwardGo Service.
  • 启动失败
PortForwardGo.service - PortForwardGo Service
     Loaded: loaded (/etc/systemd/system/PortForwardGo.service; enabled; preset: enabled)
     Active: activating (auto-restart) (Result: exit-code); 1s ago
    Process: 114514 ExecStart=/opt/PortForwardGo/PortForwardGo --config backend.json --log run.log (code=exited, status=1/FAILURE)
   Main PID: 114514 (code=exited, status=1/FAILURE)
        CPU: 589ms
 
systemd[1]: PortForwardGo.service: Main process exited, code=exited, status=1/FAILURE
systemd[1]: PortForwardGo.service: Failed with result 'exit-code'.

查看 Active 后面的内容

  • 如果是 active (running)

    说明后端运行正常, 请直接看下一步

  • 如果是 activating (auto-restart)

    说明后端运行异常, 需要进行进一步排查

查看 ProcessMain PID 后面的内容

  • 如果是 (code=exited, status=203/EXEC)

    说明后端程序没有可执行权限

    赋予程序可执行权限后重新查询后端状态

    chmod +x /opt/PortForwardGo/PortForwardGo # /opt/PortForwardGo 为默认服务名的安装位置, 如果您安装了多个后端请自行修改
  • 如果是 (code=killed, signal=SEGV)

    说明后端程序不完整

    请重新安装后端, 然后重新查询后端状态

  • 如果是 (code=exited, status=1/FAILURE)

    则有两种可能: 后端崩溃 或 运行出错

    先查看后端日志, 再查看服务日志

  • 如果是 (code=exited, status=2/INVALIDARGUMENT)

    请查看服务启动的参数是否正常


  1. 根据日志关键信息, 在下方查询解决方案, 并按照方案解决

服务日志

查看日志时请注意左侧的日志时间, 以最新的日志为准

下方没有写的错误大部分是由操作系统返回的, 可使用 Google 翻译询问 ChatGPT

Unknown key name '...' in section 'Service', ignoring.

系统差异 或 systemd 版本号不同, 不会影响后端运行, 忽略即可

This program can only be run on AMD64 processors with v2/v3/v4 microarchitecture support.

说明安装架构不对, 可能是由于脚本识别 CPU 错误, 您可以使用离线升级脚本来解决问题

科普: 维基百科 AMD64 分级 (opens in a new tab)

选择对应 AMD64 等级的二进制有助于提升性能, 如果不清楚可以直接使用 v1

发布页面的文件名 amd64v1 就是 AMD64 等级 v1 的包, 以此类推


如何判断 CPU 的 AMD64 等级

  • QEMU Virtual CPU

    QEMU 虚拟化的 CPU 型号, 隐藏了真实型号, 等级大概率为 v1 (可使用下方通用方法检测)

    如果碰到这种 CPU 建议联系商家将 CPU Model 改为 hosthost-passthrough

    使用这种 CPU 的商家不是 故意为之 就是默认设置不调整 (没有技术), 建议远离 (也可能是做集群热备需要)

    此类 CPU 可能没有 AES 硬解 (可以联系商家开启), 如果没有 AES 硬解可以考虑使用 SecureX 隧道 以提升性能

  • Common KVM processer

    QEMU (KVM) 虚拟化的 CPU 型号, 隐藏了真实型号, 等级大概率为 v1 (可使用下方通用方法检测)

    如果碰到这种 CPU 建议联系商家将 CPU Model 改为 hosthost-passthrough

    使用这种 CPU 的商家不是 故意为之 就是默认设置不调整 (没有技术), 建议远离 (也可能是做集群热备需要)

    此类 CPU 可能没有 AES 硬解 (可以联系商家开启), 如果没有 AES 硬解可以考虑使用 SecureX 隧道 以提升性能

  • 通用方法

    GitHub: 检测 AMD64 等级 (opens in a new tab)


panic: ....

后端运行崩溃, 请附上崩溃日志联系客服

后端日志

查看日志时请注意左侧的日志时间, 以最新的日志为准

下方没有写的错误大部分是由操作系统返回的, 可使用 Google 翻译询问 ChatGPT

[Config]

请检查配置文件位置是否正确

配置文件格式是否正确

[Transparent]

请检查 IP 透明配置是否正确

可尝试关闭 IP 透明

[License]

授权相关问题, 无法获取授权状态 (网络问题)

可以设置后端代理解决问题

[Proxy]

请检查后端代理配置是否正确

后端代理能否正常联通

[gRPC API Client]

  • x509

    • 网站 DNS 解析结果是否正常

    • 网站 HTTPS 证书是由有效 (是否吊销, 过期 或 证书链不完整)

  • unexpected HTTP status code received from server

    • 检查 CDN 是否支持并启用 HTTP/2 和 gRPC

    • CDN 回源是否正常

    • 面板是否正常运行

    521, 522, 523 错误均为 CDN 回源的网络问题

    524 为处理超时 (请优化数据库性能)

  • rpc error: code = Internal desc = stream terminated by RST_STREAM with error code: INTERNAL_ERROR

    正常现象无需理会

    Cloudflare 会断开长时间不通信的连接

  • core version not match

    面板和后端的版本不匹配, 下列方法任选其一

    • 升级面板和全部后端到最新

    • 降级后端版本, 使后端版本与面板版本一致

Unauthorized

  • 授权码是否正确
  • 是否更换过面板 API
  • 授权可用数量是否用尽
  • 是否可以连接到授权网站 API
  • 后端设置的代理是否工作正常

Load failed

一般由操作系统返回的, 可使用 Google 翻译询问 ChatGPT