Hermes Agent安装使用
Hermes Agent安装使用
环境
- windows11主机,双网卡,内网卡分配IP和外网卡分配IP不在同一网段,通过路由设置实现内外网不互相通信
- vmware workstation16,虚拟机,虚拟机中安装ubuntu22.04(双网卡),虚拟机中安装hermes agent
初始化
ubuntu22.04初始化
- 更新时间
sudo timedatectl set-timezone Asia/Shanghai - 更换数据源阿里云
- 更新系统
sudo apt update sudo apt upgrade - 安装1panel,会一并安装docker
- 通过docker安装hermes agent
hermes agent连接飞书
# 进入Hermes容器
docker exec -it hermes-agent bash
# 启动网关配置向导
hermes gateway setup
# 按提示操作:
1. 输入对应数字选择 Feishu/Lark
2. 粘贴 App ID 和 App Secret
3. 选择连接模式:WebSocket(推荐)
4. 配置用户授权方式(配对码模式最便捷)
# 启动飞书网关
hermes gateway start feishu通过hermes agent远程连接windows主机的chrome浏览器
Chrome 支持开启远程调试模式,监听局域网端口,接收外部发送的调试指令(打开网页、点击、输入等)。Ubuntu 中的 Hermes Agent 通过 Chrome DevTools Protocol(CDP)连接到 Windows Chrome 的调试端口,实现远程控制。
网络环境是同一局域网(192.168.212.x 网段),只要配置好端口和防火墙,就能直接连通,无需额外公网 IP。
给 Chrome 创建 “远程调试快捷方式”
找到你的 Chrome 安装路径,默认是:
C:\Program Files\Google\Chrome\Application\chrome.exe
右键桌面 → 新建 → 快捷方式,目标路径填:
plaintext
"C:\Program Files\Google\Chrome\Application\chrome.exe" --remote-debugging-address=0.0.0.0 --remote-debugging-port=9222 --user-data-dir="C:\ChromeDebugProfile"
--remote-debugging-address=0.0.0.0:允许所有局域网设备连接(默认仅允许localhost)
--remote-debugging-port=9222:调试端口,建议固定为 9222(后续 Hermes 要用到)
--user-data-dir="C:\ChromeDebugProfile":指定独立的用户数据目录,避免和你正常的 Chrome 实例冲突(必须设置,否则无法启动调试模式)
给快捷方式命名(比如 “Chrome 远程调试”),双击启动 Chrome。
验证 Chrome 调试模式是否正常
在 Windows 上打开浏览器,访问:
http://localhost:9222/json
如果返回一串 JSON(包含webSocketDebuggerUrl字段),说明 Chrome 远程调试已成功启动。当前情况下只能windows主机的localhost访问,不能使用IP:端口访问。需要开启windows的端口转发。
# 配置端口转发(管理员权限)
# 配置端口转发(监听所有网卡的9222端口,转发到本地127.0.0.1:9222)
netsh interface portproxy add v4tov4 listenaddress=0.0.0.0 listenport=9222 connectaddress=127.0.0.1 connectport=9222
# 查看转发规则是否生效
netsh interface portproxy show all
# ubuntu主机访问curl http://192.168.212.22:9222/json, 获取到内容说明连接成功。
curl http://192.168.212.22:9222/json配置 Hermes Agent 的浏览器控制
修改配置文件,添加以下内容:
config.yaml
# 浏览器控制配置(核心部分)
browser:
enabled: true
remote_debug_url: "http://192.168.212.22:9222" # Windows Chrome的调试地址
default_timeout: 30 # 操作超时时间(秒)
headless: false # 因为是Windows上的有界面Chrome,必须设为false
screenshot_dir: "/tmp/hermes-screenshots" # 截图保存路径(可选)
# 工具集必须包含浏览器工具(确保Hermes能调用)
toolsets:
- hermes-cli
- browser # 新增浏览器工具集Linux 双网卡静态路由配置执行文档
适用环境
- 网卡:
ens33(主网卡,DHCP 获取 IP:192.168.212.23,默认路由)、ens37(业务网卡,DHCP 获取 IP:10.115.97.100) - 系统:Ubuntu(Netplan 网络管理)
- 需求:所有默认流量 / 外网走 ens33,仅
10.0.0.0/8、11.0.0.0/8网段走 ens37 - 风险说明:全程不破坏 DHCP、不丢失 IP,无断网风险
紧急恢复网络(必执行!修复之前配置错误导致的 IP 丢失)
执行以下命令,强制两张网卡重新获取 DHCP IP,恢复网络通信:
# 启用网卡
sudo ip link set ens33 up
sudo ip link set ens37 up
# 重新获取IP地址(核心恢复命令)
sudo dhclient ens33
sudo dhclient ens37验证恢复结果
ip addr
✅ 预期结果:
- ens33 有
192.168.212.23/24 - ens37 有
10.115.97.100/24
配置 Netplan 静态路由(零风险极简配置)
1. 编辑 Netplan 配置文件
sudo vim /etc/netplan/01-network-manager-all.yaml
2. 替换为以下配置(严格复制,禁止修改参数)
yaml
network:
version: 2
renderer: networkd
ethernets:
ens33:
dhcp4: true
ens37:
dhcp4: true
routes:
- to: 10.0.0.0/8
via: 10.115.97.254
- to: 11.0.0.0/8
via: 10.115.97.254
⚠️ 易错点标注
- 缩进必须用空格,禁止用 Tab 键(YAML 语法强制要求)
- 禁止添加任何额外参数(如 dhcp4-overrides,会导致 DHCP 失效)
- 网关
10.115.97.254为固定值,禁止修改
修复文件权限(消除 Netplan 警告)
执行命令,修复权限过宽的问题:
# 设置文件归属为root
sudo chown root:root /etc/netplan/01-network-manager-all.yaml
# 仅root可读写(安全权限)
sudo chmod 600 /etc/netplan/01-network-manager-all.yaml
应用网络配置(无断网,热加载)
sudo netplan apply
✅ 预期结果:无任何报错 / 警告
清理路由冲突(临时生效,立即可用)
删除 ens37 自动生成的默认网关(唯一冲突点):
sudo ip route del default via 10.115.97.254 dev ens37
⚠️ 易错点标注
- 若提示
RTNETLINK answers: No such process,说明路由已删除,直接忽略即可
开机自动清理路由(永久生效,重启不复发)
配置开机脚本,自动删除 ens37 默认网关,彻底解决冲突:
# 创建开机自启脚本
sudo tee /etc/rc.local << 'EOF'
#!/bin/bash
ip route del default via 10.115.97.254 dev ens37 2>/dev/null
EOF
# 赋予执行权限
sudo chmod +x /etc/rc.local
最终功能验证(复制一键执行)
echo "===== 1. 查看默认路由(必须仅ens33)====="
ip route | grep default
echo -e "\n===== 2. 测试外网/百度(走ens33)====="
ping www.baidu.com -c 2
echo -e "\n===== 3. 测试10网段(走ens37)====="
ping 10.115.8.1 -c 2
echo -e "\n===== 4. 查看路由走向(硬核验证)====="
ip route get 10.115.8.1
✅ 验证通过标准
- 默认路由只有 1 条,且走
ens33 ping www.baidu.com通ping 10.115.8.1通- 10 网段路由明确走
ens37
八、常用排查命令(备用)
# 查看所有网卡IP
ip addr
# 查看完整路由表
ip route
# 单独重启ens33(不影响ens37)
sudo nmcli connection down ens33 && sudo nmcli connection up ens33
# 单独重启ens37(不影响ens33)
sudo nmcli connection down ens37 && sudo nmcli connection up ens37
禁止执行的高危操作(避坑指南)
- ❌ 禁止在 Netplan 中添加
dhcp4-overrides参数(会导致 DHCP 失效、丢 IP) - ❌ 禁止手动修改网卡 MAC 地址、子网掩码
- ❌ 禁止删除 ens33 的默认路由
- ❌ 禁止使用
systemctl restart network(Ubuntu 不兼容,会断网)
配置总结
- 永久生效:重启服务器后,路由配置自动保留
- 流量规则:默认外网→ens33,10/11 网段→ens37
- 无冲突:彻底解决双网卡默认网关冲突问题
- 稳定性:不破坏 DHCP,网卡 IP 永久自动获取
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 WenYan Blog!
评论


