简介

我们国内的服务器通常是无法访问github的,但是一些工具的脚本指向的下载地址都是github,这时候就可以用到Squid了(前提是有个国外的服务器)

安装

1. 安装 Squid

在大多数 Linux 发行版上,你可以使用包管理器来安装 Squid。以下是一些常见的安装命令:

对于 Ubuntu/Debian:

sudo apt update
sudo apt install squid

对于 CentOS/RHEL:

sudo yum install squid

2. 配置 Squid

Squid 的主配置文件通常位于 /etc/squid/squid.conf。你可以使用文本编辑器打开它:

sudo nano /etc/squid/squid.conf

这货的注释有几千行,如果想删除这些注释可以执行

sudo sed -i '/^\s*#/d' /etc/squid/squid.conf

删除前可以备份一下

sudo cp /etc/squid/squid.conf /etc/squid/squid.conf.bak

2.1 设置监听端口

默认情况下,Squid 会监听 3128 端口。如果你想更改端口,可以找到以下行并进行修改:

http_port 3128

2.2 设置访问控制

Squid 使用访问控制列表(ACL)来管理哪些客户端可以访问代理。你需要添加适当的 ACL 规则。

例如,允许特定 IP 地址(如 192.168.1.0/24)访问 Squid:

acl localnet src 192.168.1.0/24  # 本地网络
http_access allow localnet        # 允许本地网络访问
http_access deny all              # 拒绝所有其他访问

2.3 允许匿名访问(可选)

如果你希望允许匿名访问,可以在 ACL 中添加:

http_access allow all

2.4 指定IP地址访问(指定一个IP的话上面的访问控制就不用填写了)

在文件中添加 ACL 来定义允许访问的 IP 地址。例如,假设你要允许 IP 地址为 192.168.1.100 的访问,可以添加如下内容:

acl allowed_ips src 192.168.1.100
http_access allow allowed_ips

2.6 拒绝其他访问

确保在允许特定 IP 访问之后,拒绝所有其他访问。通常可以在文件的末尾添加以下行:

http_access deny all

注意:这个拒绝其他访问最好添加上

3. 启动和启用 Squid 服务

在配置完成后,启动 Squid 服务并确保它在系统启动时自动启动:

sudo systemctl start squid
sudo systemctl enable squid

4. 检查 Squid 状态

你可以检查 Squid 服务的状态,以确保它正在运行:

sudo systemctl status squid

5. 配置防火墙

确保防火墙允许 Squid 监听的端口(例如 3128)。以下是一些常见的防火墙命令:

对于 UFW(Ubuntu):

sudo ufw allow 3128/tcp

对于 firewalld(CentOS):

sudo firewall-cmd --permanent --add-port=3128/tcp
sudo firewall-cmd --reload

6. 测试 Squid 代理

在客户端机器上,可以通过配置浏览器或使用 curl 命令来测试 Squid 代理。

例如,使用 curl 测试:

curl -x http://<代理服务器IP>:3128 http://www.google.com

7. 日志和监控

Squid 会在 /var/log/squid/ 目录下生成日志文件。你可以查看这些日志文件以监控访问情况:

tail -f /var/log/squid/access.log

每次修改配置文件后,记得重启 Squid 服务以应用更改:

sudo systemctl restart squid

8. 设置代理环境变量

在执行 curl 命令之前,首先需要设置代理环境变量。假设你的 Squid 代理服务器地址是 proxy_address,端口是 proxy_port,可以使用以下命令:(注意下面的步骤都是在你不能访问外网的机器上执行的)

export http_proxy=http://proxy_address:proxy_port
export https_proxy=http://proxy_address:proxy_port

9. 执行脚本

在设置了代理环境变量后,你就可以访问github进行下载了

curl -L https://raw.githubusercontent.com/nezhahq/scripts/main/agent/install.sh

10. 清理环境变量(可选)

执行完毕后,如果不再需要代理,可以清除环境变量:

unset http_proxy
unset https_proxy