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/811.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

⚠️ 易错点标注

  1. 缩进必须用空格,禁止用 Tab 键(YAML 语法强制要求)
  2. 禁止添加任何额外参数(如 dhcp4-overrides,会导致 DHCP 失效)
  3. 网关 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. 默认路由只有 1 条,且走 ens33
  2. ping www.baidu.com
  3. ping 10.115.8.1
  4. 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

禁止执行的高危操作(避坑指南)

  1. ❌ 禁止在 Netplan 中添加 dhcp4-overrides 参数(会导致 DHCP 失效、丢 IP)
  2. ❌ 禁止手动修改网卡 MAC 地址、子网掩码
  3. ❌ 禁止删除 ens33 的默认路由
  4. ❌ 禁止使用 systemctl restart network(Ubuntu 不兼容,会断网)

配置总结

  1. 永久生效:重启服务器后,路由配置自动保留
  2. 流量规则:默认外网→ens33,10/11 网段→ens37
  3. 无冲突:彻底解决双网卡默认网关冲突问题
  4. 稳定性:不破坏 DHCP,网卡 IP 永久自动获取