gpt4 book ai didi

docker - 使用来自 docker 的本地 ssh 端口转发

转载 作者:行者123 更新时间:2023-12-02 13:47:20 25 4
gpt4 key购买 nike

所以,我从 dockerfile 调用一个网站(例如 https://ipinfo.io/ip )。我也想从 ssh local port-forward tunnel 传递这个流量.

所以我做了什么,

  • 创建 ssh 隧道
  • sudo ssh -N -L 0.0.0.0:443:ipinfo.io:443  my-username@xx.xx.xx.xx
  • 添加 ipinfo/etc/hosts
  • 127.0.0.1 ipinfo.io
  • 创建一个像
  • 这样的 Dockerfile
    FROM alpine


    RUN apk add curl

    RUN curl https://ipinfo.io/ip

    那么发生了什么 ipinfo.io可以在环回中解决,但不通过 ssh 隧道。
    我怎么能调用 ipinfo.io来自docker,以便它通过ssh隧道?

    P.S:我正在使用 macOS High Sierra

    最佳答案

    以下是我为使其正常工作所做的事情:

  • 使用的 IP 地址 ipinfo.io而不是使用 ssh 中的主机名命令
  • sudo ssh -g -N -L 0.0.0.0:443:216.239.38.21:443 my-username@xx.xx.xx.xx
  • 使用以下Dockerfile :
  • FROM alpine


    RUN apk add curl
    RUN cat /etc/hosts

    RUN curl -v https://ipinfo.io/ip
  • 使用以下命令执行构建,我在其中映射了 ipinfo.io到我的本地机器的 IP(在本例中是 docker 的虚拟接口(interface)的 IP):
  • docker build --add-host ipinfo.io:172.17.0.1 -t test:0.0.1 .
  • 样本输出:
  • Step 3/4 : RUN cat /etc/hosts
    ---> Running in b7384b27c1a5
    127.0.0.1 localhost
    ::1 localhost ip6-localhost ip6-loopback
    fe00::0 ip6-localnet
    ff00::0 ip6-mcastprefix
    ff02::1 ip6-allnodes
    ff02::2 ip6-allrouters
    172.17.0.1 ipinfo.io
    172.17.0.2 b7384b27c1a5
    Removing intermediate container b7384b27c1a5
    ---> 2a8b062984b8
    Step 4/4 : RUN curl -v https://ipinfo.io/ip
    ---> Running in 0fa2c413ab2c
    Trying 172.17.0.1:443...
    * TCP_NODELAY set
    * Connected to ipinfo.io (172.17.0.1) port 443 (#0)
    ...
    > GET /ip HTTP/2
    > Host: ipinfo.io
    > User-Agent: curl/7.66.0
    > Accept: */*
    >
    ...
    < HTTP/2 200
    < date: Fri, 20 Mar 2020 15:27:12 GMT
    < content-type: text/html; charset=utf-8
    < content-length: 14
    < access-control-allow-origin: *
    < x-frame-options: DENY
    < x-xss-protection: 1; mode=block
    < x-content-type-options: nosniff
    < referrer-policy: strict-origin-when-cross-origin
    < via: 1.1 google
    <
    37.42.143.111
    ...

    我认为可能需要启用 GatewayPortssshd_config并重新启动 sshd为此工作。

    关于docker - 使用来自 docker 的本地 ssh 端口转发,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60624533/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com