You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将两台不同电脑连接至同一IBGateway/TWS账户API?

跨机器连接TWS/IBGateway API故障排查方案

核心配置修正

首先必须处理你提到的关键选项:在TWS/IBGateway的API设置中,取消勾选"允许仅本地主机连接"(对应你截图中的选项)。这个选项默认开启时会直接拒绝所有非本机的API连接请求,是跨机器连接的首要障碍。

分步排查要点

1. 确认API配置细节

  • 可信IP列表:确保副电脑的完整局域网IP(如192.168.1.105)已准确添加到TWS/IBGateway的API可信IP列表中,不要用通配符(如192.168.1.*),避免匹配异常。
  • 端口一致性:核对主程序端口与代码中的端口:
    • IBGateway实盘端口为4001,模拟盘为4002;TWS实盘7496,模拟盘7497,确保你使用的端口与账户类型匹配。
  • 重启程序:所有配置修改完成后,必须重启TWS/IBGateway,否则新配置不会生效。

2. 网络与防火墙验证

  • 局域网连通性:在副电脑终端执行以下命令,确认能访问主电脑:
    • ping测试:ping 主电脑IP,确保有稳定的数据包返回
    • 端口开放测试:
      • Windows:Test-NetConnection 主电脑IP -Port 4001(PowerShell)
      • Linux/macOS:telnet 主电脑IP 4001 或 nc -zv 主电脑IP 4001
        如果端口测试失败,说明主电脑防火墙或网络设备拦截了请求。
  • 防火墙规则:
    • 主电脑:添加入站规则,允许副电脑IP访问目标端口(4001),同时确保TWS/IBGateway程序被允许通过防火墙(不要只放行端口,要放行程序本身)。
    • 副电脑:检查出站规则,是否阻止了对主电脑4001端口的连接。

3. 代码与连接参数修正

  • 客户端ID唯一性:两台电脑的clientId必须不同,比如主电脑用clientId=1,副电脑就要用clientId=2——相同ID会导致后连接的客户端踢掉前一个,甚至连接失败。
  • 主机IP正确性:如果是同一局域网,必须使用主电脑的局域网IP(而非公网IP);如果是跨公网连接,还需要在主电脑的路由器上设置端口转发,将4001端口映射到主电脑局域网IP。
  • 修正后的示例代码:
    self.ib.connect(host="主电脑局域网IP", port=4001, clientId=2)
    

4. IBGateway专属注意事项

  • 确保IBGateway已开启API访问:在设置中找到API选项,确认"Enable Active X and Socket Clients"已勾选。
  • 权限设置:如果不需要交易权限,可勾选"Read-Only API"降低权限限制;若需要交易,确保账户已开通API交易权限。

内容的提问来源于stack exchange,提问作者Oshea Kaminski

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.28 03:23:15