阿里云上一台机器有外网另一台没有,如何通过Squid代理访问外网
在阿里云上,如果您有一台机器无外网访问权限(内网机器),而另一台机器有外网访问权限(代理机器),您可以使用 Squid 作为代理服务器,让内网机器通过代理机器访问外网。以下是详细的步骤:
步骤概述
- 在代理机器上安装和配置 Squid。
- 配置内网机器使用 Squid 代理。
详细步骤
1. 在代理机器上安装和配置 Squid
1.1 安装 Squid
首先,在代理机器上安装 Squid。假设您使用的是 CentOS 7。
sudo yum update -y
sudo yum install squid -y
1.2 配置 Squid
编辑 Squid 配置文件 /etc/squid/squid.conf
。
sudo vi /etc/squid/squid.conf
进行以下配置:
-
允许内网机器访问代理:
找到acl localnet src
部分,添加内网机器的 IP 地址或子网。例如,如果内网机器的 IP 是192.168.1.100
,则添加:acl localnet src 192.168.1.100/32 # 允许单个IP
或者如果是整个子网:
acl localnet src 192.168.1.0/24 # 允许整个子网
-
配置 HTTP 和 HTTPS 端口:
确保 Squid 监听默认端口 3128。通常默认配置已经包含这一行:http_port 3128
-
启用 ACL 规则:
确保允许本地网络访问互联网。找到http_access allow localnet
这一行,并确保它没有被注释掉:http_access allow localnet http_access deny all
-
保存并退出编辑器。
1.3 启动并启用 Squid 服务
sudo systemctl start squid
sudo systemctl enable squid
1.4 检查 Squid 状态
sudo systemctl status squid
输出应显示 Squid 正在运行。
1.5 配置防火墙
确保防火墙允许 Squid 端口(默认是 3128)的流量。
sudo firewall-cmd --permanent --add-port=3128/tcp
sudo firewall-cmd --reload
2. 配置内网机器使用 Squid 代理
2.1 配置 YUM 使用代理
编辑 YUM 配置文件 /etc/yum.conf
。
sudo vi /etc/yum.conf
在 [main]
部分添加代理设置:
proxy=http://<代理机器IP>:3128
例如:
proxy=http://192.168.1.200:3128
2.2 配置系统环境变量使用代理
编辑 /etc/profile
文件,添加全局代理设置。
sudo vi /etc/profile
在文件末尾添加以下内容:
export http_proxy=http://<代理机器IP>:3128
export https_proxy=http://<代理机器IP>:3128
export no_proxy=localhost,127.0.0.1,<内网IP范围>
例如:
export http_proxy=http://192.168.1.200:3128
export https_proxy=http://192.168.1.200:3128
export no_proxy=localhost,127.0.0.1,192.168.1.0/24
使配置生效:
source /etc/profile
2.3 配置 Docker 使用代理(如果需要)
如果内网机器上安装了 Docker,并且需要通过代理访问镜像仓库,可以配置 Docker 使用代理。
编辑 Docker 服务配置文件 /etc/systemd/system/docker.service.d/http-proxy.conf
。
sudo mkdir -p /etc/systemd/system/docker.service.d
sudo vi /etc/systemd/system/docker.service.d/http-proxy.conf
添加以下内容:
[Service]
Environment="HTTP_PROXY=http://<代理机器IP>:3128/"
Environment="HTTPS_PROXY=http://<代理机器IP>:3128/"
Environment="NO_PROXY=localhost,127.0.0.1,<内网IP范围>"
例如:
[Service]
Environment="HTTP_PROXY=http://192.168.1.200:3128/"
Environment="HTTPS_PROXY=http://192.168.1.200:3128/"
Environment="NO_PROXY=localhost,127.0.0.1,192.168.1.0/24"
重新加载 systemd 配置并重启 Docker 服务:
sudo systemctl daemon-reload
sudo systemctl restart docker
示例代码
以下是完整的示例代码和步骤,确保代理配置正确并且内网机器可以通过代理访问外网。
1. 在代理机器上安装和配置 Squid
1.1 安装 Squid
sudo yum update -y
sudo yum install squid -y
1.2 配置 Squid
sudo vi /etc/squid/squid.conf
编辑 squid.conf
文件,添加以下内容:
acl localnet src 192.168.1.0/24 # 允许整个子网
http_port 3128
http_access allow localnet
http_access deny all
1.3 启动并启用 Squid 服务
sudo systemctl start squid
sudo systemctl enable squid
1.4 检查 Squid 状态
sudo systemctl status squid
1.5 配置防火墙
sudo firewall-cmd --permanent --add-port=3128/tcp
sudo firewall-cmd --reload
2. 配置内网机器使用 Squid 代理
2.1 配置 YUM 使用代理
sudo vi /etc/yum.conf
添加以下内容:
proxy=http://192.168.1.200:3128
2.2 配置系统环境变量使用代理
sudo vi /etc/profile
添加以下内容:
export http_proxy=http://192.168.1.200:3128
export https_proxy=http://192.168.1.200:3128
export no_proxy=localhost,127.0.0.1,192.168.1.0/24
使配置生效:
source /etc/profile
2.3 配置 Docker 使用代理(如果需要)
sudo mkdir -p /etc/systemd/system/docker.service.d
sudo vi /etc/systemd/system/docker.service.d/http-proxy.conf
添加以下内容:
[Service]
Environment="HTTP_PROXY=http://192.168.1.200:3128/"
Environment="HTTPS_PROXY=http://192.168.1.200:3128/"
Environment="NO_PROXY=localhost,127.0.0.1,192.168.1.0/24"
重新加载 systemd 配置并重启 Docker 服务:
sudo systemctl daemon-reload
sudo systemctl restart docker
总结
通过以上步骤,您可以在阿里云上配置一台具有外网访问权限的机器作为 Squid 代理服务器,并让内网机器通过该代理访问外网。关键点包括:
- 安装和配置 Squid:在代理机器上安装并配置 Squid 以允许内网机器访问。
- 配置内网机器使用代理:配置 YUM、系统环境变量和 Docker(如果需要)使用 Squid 代理。
确保所有配置正确无误后,内网机器应该能够通过代理访问外网资源。
如果您有任何问题或需要进一步的帮助,请随时告诉我!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 展开说说关于C#中ORM框架的用法!