Linux 下 Hermes Agent 代理配置不生效问题的解决

Linux 下 Hermes Agent 代理配置不生效问题的解决

  • [Linux 下 Hermes Agent 代理配置不生效问题的解决](#Linux 下 Hermes Agent 代理配置不生效问题的解决)

Linux 下 Hermes Agent 代理配置不生效问题的解决

在使用 Hermes Agent(或类似 Gateway 服务)时,即使已在 Linux 环境变量中配置了 ALL_PROXY,并且 curl 测试正常,服务本身仍然可能无法通过代理访问网络,导致 Telegram 连接超时、OpenRouter 报错等问题。

问题现象

查看错误日志,执行命令cat ~/.hermes/logs/errors.log

log 复制代码
WARNING gateway.platforms.telegram_network: [Telegram] Primary api.telegram.org connection failed
WARNING agent.auxiliary_client: marking openrouter unhealthy (payment / credit error)

curl -v https://api.telegram.org 可正常返回,但 Gateway 服务始终报错。

原因分析

  • 服务进程未继承终端环境变量hermes gateway 通常以 systemd 用户服务方式运行,不会自动读取你终端里 exportALL_PROXY
  • 直接修改主服务文件无效 :手动编辑 /home/用户名/.config/systemd/user/hermes-gateway.service,每次服务启动(或执行 hermes gateway install)时会被自动重置覆盖。

正确解决方案:使用 systemd drop-in 覆盖

systemd 提供了 drop-in 目录 机制,可以在不修改原始服务文件的前提下,添加或覆盖配置。

步骤

  1. 创建 drop-in 目录和覆盖文件
bash 复制代码
mkdir -p ~/.config/systemd/user/hermes-gateway.service.d
cat > ~/.config/systemd/user/hermes-gateway.service.d/override.conf <<EOF
[Service]
Environment="ALL_PROXY=http://127.0.0.1:7890"
Environment="NO_PROXY=localhost,127.0.0.1"
EOF

请将 http://127.0.0.1:7890 替换为你的实际代理地址。

  1. 重载 systemd 配置并重启服务
bash 复制代码
systemctl --user daemon-reload
systemctl --user restart hermes-gateway.service
  1. 验证配置是否生效
bash 复制代码
systemctl --user cat hermes-gateway.service

输出中会显示原始服务文件 + drop-in 覆盖内容。

  1. 查看日志确认问题解决
bash 复制代码
journalctl --user -u hermes-gateway.service -f

此时 Telegram 和 OpenRouter 应能正常连接。

总结

错误做法 正确做法
直接修改 ~/.config/systemd/user/hermes-gateway.service 创建 override.conf 进行配置覆盖
仅在终端 export ALL_PROXY 在 systemd 服务的 Environment= 中设置代理
重启整个主机 systemctl --user daemon-reload + restart

核心原则:永远不要手动编辑由程序自动生成的服务文件,应使用 systemd 官方推荐的 drop-in 方式追加配置。

相关推荐
zx_7414848115 分钟前
【Linux入门】Shell 函数、正则表达式与文本处理:cut 与 awk
linux·运维·正则表达式
Zenova EdgeOS27 分钟前
Linux dmesg 工业边缘实战:内核日志过滤、持久化与故障定位
linux·运维·边缘计算·工业边缘·dmesg·内核日志
金士顿38 分钟前
System.Text.Json Source Generator 深度解析:为什么 Native AOT 不喜欢反射
linux·asp.net core·arm64·net·native aot
做运维的阿瑞2 小时前
Python 标准库汇总:分类速览与常用模块清单
linux·运维·python
百万蹄蹄向前冲2 小时前
密码都对Node.js却连不上Linux数据库
linux·mysql
彧azz2 小时前
Linux 网络编程学习总结
linux·网络·笔记·学习·面试
浅念-2 小时前
Redis基础详解:单线程模型、String与Hash数据结构
服务器·数据库·redis·sql·mysql·nosql数据库·nosql
susplus3 小时前
【ARM 裸机开发 (IMX6ULL-mini)】GNU工具、Makefile 工程构建、链接脚本详解|C 语言点灯 + 蜂鸣器驱动
linux·arm·makefile·imx6ull
Shadow(⊙o⊙)3 小时前
Linux进阶知识1.0
linux·运维·服务器
>Andre<4 小时前
UFS5.0标准中文全译·卷一:范围、术语与架构
android·linux·嵌入式硬件