阿里云上一台机器有外网另一台没有,如何通过Squid代理访问外网

在阿里云上,如果您有一台机器无外网访问权限(内网机器),而另一台机器有外网访问权限(代理机器),您可以使用 Squid 作为代理服务器,让内网机器通过代理机器访问外网。以下是详细的步骤:

步骤概述

  1. 在代理机器上安装和配置 Squid
  2. 配置内网机器使用 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

进行以下配置:

  1. 允许内网机器访问代理
    找到 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  # 允许整个子网
    
  2. 配置 HTTP 和 HTTPS 端口
    确保 Squid 监听默认端口 3128。通常默认配置已经包含这一行:

    http_port 3128
    
  3. 启用 ACL 规则
    确保允许本地网络访问互联网。找到 http_access allow localnet 这一行,并确保它没有被注释掉:

    http_access allow localnet
    http_access deny all
    
  4. 保存并退出编辑器

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 代理。

确保所有配置正确无误后,内网机器应该能够通过代理访问外网资源。

如果您有任何问题或需要进一步的帮助,请随时告诉我!

posted @   Nine4酷  阅读(67)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 展开说说关于C#中ORM框架的用法!
点击右上角即可分享
微信分享提示