連接到基於 ubuntu 的 docker 容器內的代理伺服器時如何進行身份驗證?

連接到基於 ubuntu 的 docker 容器內的代理伺服器時如何進行身份驗證?

我正在建立一個在發送 HTTP 請求時應使用代理伺服器的 docker 容器。不幸的是,我無法讓它工作 - 即使憑證正確,我也無法從容器內部對代理進行身份驗證。

預期結果 curl https://api.myip.com傳回帶有代理 IP 的 JSON 回應

實際結果: curl https://api.myip.com返回curl: (56) Received HTTP code 407 from proxy after CONNECT

我嘗試過的:

  • 設定 HTTP_PROXY 環境變數(與 HTTPS 環境相同)
  • 將“Acquire::http::Proxy”字串新增至 /etc/apt/apt.conf (與 https 相同)
  • 嘗試了不同的配置(僅 ENV,僅 apt.conf 文件,兩者)

我檢查的內容:

  • /etc/apt/apt.conf 包含所需的行(下面提供)
  • ENV 在容器內正確設置
  • 代理在容器外正常工作
  • 代理身份驗證透過從容器外部運行的瀏覽器正常工作(授權成功)
  • docker網路運作正常(不使用代理程式時沒有問題)

我的 apt.conf:

Acquire::http::Proxy "http://<my_login>:<my_pass>@<proxy_ip>:<proxy_port>/";
Acquire::https::Proxy "https://<my_login>:<my_pass>@<proxy_ip>:<proxy_port>/";
Acquire::socks::Proxy "socks://<my_login>:<my_pass>@<proxy_ip>:<proxy_port>/";

我的 Dockerfile:

from ubuntu:latest

COPY ./rss/apt.conf /apt.conf
ENV HTTP_PROXY=<ip>:<port>
ENV HTTPS_PROXY=<ip>:<port>

RUN apt update && apt install -y curl
RUN cat /apt.conf >> /etc/apt/apt.conf

ENTRYPOINT ["sleep","1000"]

碼頭工人版本: Docker version 20.10.8, build 3967b7d

相關內容