

# 为 Amazon ECS Linux 容器实例使用 HTTP 代理
<a name="http_proxy_config"></a>

您可以将 Amazon ECS 容器实例配置为对 Amazon ECS 容器代理和 Docker 进程守护程序使用 HTTP 代理。如果您的容器实例无法通过 Amazon VPC互联网网关、NAT 网关或实例访问外部网络，则这非常有用。

要将 Amazon ECS Linux 容器实例配置为使用 HTTP 代理，请在启动时在相关文件中设置以下变量（利用 Amazon EC2 用户数据）。您也可以手动编辑配置文件，然后重新启动代理。

`/etc/ecs/ecs.config`（Amazon Linux 2 和 AmazonLinux AMI）    
`HTTP_PROXY=10.0.0.131:3128`  
将此值设置为某个 HTTP 代理的主机名（或 IP 地址）和端口号，供 Amazon ECS 代理用来连接到互联网。例如，在容器实例无法通过 Amazon VPC互联网网关、NAT 网关或实例访问外部网络时。  
`NO_PROXY=169.254.169.254,169.254.170.2,/var/run/docker.sock`  
将此值设置为 `169.254.169.254,169.254.170.2,/var/run/docker.sock` 可筛选 EC2 实例元数据、任务的 IAM 角色以及来自代理的 Docker 进程守护程序流量。

`/etc/systemd/system/ecs.service.d/http-proxy.conf`（仅 Amazon Linux 2）    
`Environment="HTTP_PROXY=10.0.0.131:3128/"`  
将此值设置为某个 HTTP 代理的主机名（或 IP 地址）和端口号，供 `ecs-init` 代理用来连接到互联网。例如，在容器实例无法通过 Amazon VPC互联网网关、NAT 网关或实例访问外部网络时。  
`Environment="NO_PROXY=169.254.169.254,169.254.170.2,/var/run/docker.sock"`  
将此值设置为 `169.254.169.254,169.254.170.2,/var/run/docker.sock` 可筛选 EC2 实例元数据、任务的 IAM 角色以及来自代理的 Docker 进程守护程序流量。

`/etc/init/ecs.override`（仅限 Amazon Linux AMI）    
`env HTTP_PROXY=10.0.0.131:3128`  
将此值设置为某个 HTTP 代理的主机名（或 IP 地址）和端口号，供 `ecs-init` 代理用来连接到互联网。例如，在容器实例无法通过 Amazon VPC互联网网关、NAT 网关或实例访问外部网络时。  
`env NO_PROXY=169.254.169.254,169.254.170.2,/var/run/docker.sock`  
将此值设置为 `169.254.169.254,169.254.170.2,/var/run/docker.sock` 可筛选 EC2 实例元数据、任务的 IAM 角色以及来自代理的 Docker 进程守护程序流量。

`/etc/systemd/system/docker.service.d/http-proxy.conf`（仅 Amazon Linux 2）    
`Environment="HTTP_PROXY=http://10.0.0.131:3128"`  
将此值设置为某个 HTTP 代理的主机名（或 IP 地址）和端口号，供 Docker 进程守护程序用来连接到互联网。例如，在容器实例无法通过 Amazon VPC互联网网关、NAT 网关或实例访问外部网络时。  
`Environment="NO_PROXY=169.254.169.254,169.254.170.2"`  
将此值设置为 `169.254.169.254,169.254.170.2` 可筛选来自代理的 EC2 实例元数据。

`/etc/sysconfig/docker`（仅限 Amazon Linux AMI 和 Amazon Linux 2）    
`export HTTP_PROXY=http://10.0.0.131:3128`  
将此值设置为某个 HTTP 代理的主机名（或 IP 地址）和端口号，供 Docker 进程守护程序用来连接到互联网。例如，在容器实例无法通过 Amazon VPC互联网网关、NAT 网关或实例访问外部网络时。  
`export NO_PROXY=169.254.169.254,169.254.170.2`  
将此值设置为 `169.254.169.254,169.254.170.2` 可筛选来自代理的 EC2 实例元数据。

在以上文件中设置这些环境变量仅影响 Amazon ECS 容器代理、`ecs-init` 和 Docker 进程守护程序。它们不配置任何其他服务（如 **yum**）使用代理。

有关如何配置代理的信息，请参阅[如何在 Amazon Linux 2 或 AL2023 中为 Docker 和 Amazon ECS 容器代理设置 HTTP 代理？](https://repost.aws/knowledge-center/ecs-http-proxy-docker-linux2)。