在 Docker 容器中运行 InteractiveBrokers 客户端 API 网关

问题描述 投票:0回答:1

我正在尝试设置 InteractiveBrokers Client Portal API Gateway 以在 Docker 容器内运行,我只能从本地主机访问它。我希望解决方案独立于操作系统,主要是 Windows 或 Linux。

我能够配置 Docker 容器以使网关运行,但是当我尝试访问它时,我得到

Access Denied
。我相信这是来自实际的网关,所以我至少连接到了它。

这是我的

Dockerfile

FROM ubuntu
WORKDIR /home
RUN apt-get update
RUN apt-get upgrade -y
RUN apt-get install default-jre wget unzip -y
RUN wget https://download2.interactivebrokers.com/portal/clientportal.gw.zip
RUN unzip clientportal.gw.zip -d ./clientportal.gw
WORKDIR /home/clientportal.gw
CMD ./bin/run.sh ./root/conf.yaml

我分别使用以下命令构建并运行 Docker 映像和容器:

docker build -t clientportal ./
docker run -p 5000:5000 -it clientportal

我还修改了

conf.yaml
以允许各种IP范围:

ips:
  allow:
    - 192.*
    - 131.216.*
    - 127.0.0.1
    - host.docker.internal
    - 172.17.0.*
  deny:
    - 212.90.324.10

我的理解是,从 Docker 容器的角度来看,

host.docker.internal
是主机的主机名,Docker 容器的
localhost
解析为
172.17.0.*
。这是我添加到默认列表中的两个附加范围。据我了解,该 IP 是可以连接到网关的 IP 地址白名单。我不确定在尝试连接到 Docker 容器内运行的网关时主机缺少哪个 IP 地址范围。如果我直接在 Windows 中运行网关,那么我可以连接并进行身份验证。 我应该在

conf.yaml

中等待哪些 IP 才能实现此功能?我还需要什么其他设置?除了上述内容之外,我还检查了

IBeam 存储库
中的
conf.yaml
,没有发现任何重大差异。我也尝试了那里的 IP 范围,但无济于事。

docker http https ip interactive-brokers
1个回答
0
投票

https://github.com/gnzsnz/ib-gateway-docker

© www.soinside.com 2019 - 2024. All rights reserved.