在阿里云环境使用代理 IP,主要分两种场景:在阿里云 ECS 上使用外部代理(让 ECS 通过代理上网 / 访问),以及在阿里云 ECS 上搭建代理服务器(供外部设备通过 ECS 代理上网)。下面分别给出详细操作步骤。

一、在阿里云 ECS 上使用外部代理(HTTP/HTTPS/SOCKS5)
- Linux 系统(CentOS/Ubuntu/Alibaba Cloud Linux)
临时生效(当前会话)
bash
运行HTTP/HTTPS 代理(无认证)
export http_proxy=http://代理IP:端口
export https_proxy=https://代理IP:端口
export no_proxy="localhost,127.0.0.1,10.0.0.0/8,172.16.0.0/12,192.168.0.0/16"
带账号密码认证
export http_proxy=http://用户名:密码@代理IP:端口
export https_proxy=https://用户名:密码@代理IP:端口
SOCKS5 代理
export all_proxy=socks5://代理IP:端口
或带认证
export all_proxy=socks5://用户名:密码@代理IP:端口
永久生效(重启后依然有效)
bash
运行
编辑环境变量文件
sudo vim /etc/profile
在文件末尾添加
export http_proxy=http://代理IP:端口
export https_proxy=https://代理IP:端口
export no_proxy="localhost,127.0.0.1,10.0.0.0/8,172.16.0.0/12,192.168.0.0/16"
生效配置
source /etc/profile
- Windows 系统(ECS)
右键 “此电脑” → 属性 → 高级系统设置 → 环境变量
在 “系统变量” 中新建:
变量名:http_proxy,变量值:http://代理IP:端口
变量名:https_proxy,变量值:https://代理IP:端口
重启 CMD/PowerShell 或重启服务器生效 - 阿里云 SDK/API 调用代理
以 Python SDK 为例,配置代理访问阿里云 OpenAPI:
python
运行
from alibabacloud_ecs20140526.models import *
from alibabacloud_tea_openapi.models import Config
from alibabacloud_tea_util.models import RuntimeOptions
config = Config(
access_key_id="你的AccessKey ID",
access_key_secret="你的AccessKey Secret",
region_id="cn-hangzhou"
)
配置代理
runtime = RuntimeOptions(
http_proxy="http://代理IP:端口",
https_proxy="https://代理IP:端口"
)
client = EcsClient(config)
request = DescribeInstancesRequest()
response = client.describe_instances(request, runtime)
二、在阿里云 ECS 上搭建代理服务器(Squid/SOCKS5)
方案 1:搭建 HTTP 代理(Squid,最常用)
安装 Squid
bash
运行
Ubuntu/Debian
sudo apt update && sudo apt install squid -y
CentOS/Alibaba Cloud Linux
sudo yum install squid -y
配置 Squid(允许外部访问)
bash
运行
sudo vim /etc/squid/squid.conf
修改关键配置:
ini
允许所有IP访问(生产环境建议限制IP)
http_access allow all
监听端口(默认3128)
http_port 3128
缓存大小(可选)
cache_dir ufs /var/spool/squid 100 16 256
开放安全组与防火墙
阿里云控制台 → ECS → 安全组 → 入方向放行 3128 端口
系统防火墙放行:
bash
运行
sudo firewall-cmd --add-port=3128/tcp --permanent
sudo firewall-cmd --reload
启动并设置开机自启
bash
运行
sudo systemctl start squid
sudo systemctl enable squid
方案 2:搭建 SOCKS5 代理(Dante)
安装 Dante
bash
运行
CentOS
sudo yum install dante-server -y
Ubuntu
sudo apt install dante-server -y
配置 /etc/sockd.conf
ini
internal: 0.0.0.0 port=1080
external: 你的ECS公网IP
socksmethod: username none
clientmethod: none
user.privileged: root
user.unprivileged: nobody
client pass { from: 0.0.0.0/0 to: 0.0.0.0/0 }
pass { from: 0.0.0.0/0 to: 0.0.0.0/0 }
放行端口(1080)并启动
bash
运行
sudo systemctl start sockd
sudo systemctl enable sockd
三、常见问题与注意事项
安全组必须放行代理端口(3128/1080 等),否则外部无法连接
代理认证:生产环境建议配置账号密码,避免开放代理被滥用
带宽与性能:代理会占用 ECS 带宽,高并发场景需升级带宽
合规性:使用代理需遵守网络安全法规,禁止用于非法用途