在Centos上搭建Squid代理服务器
在 CentOS 上搭建代理服务器通常涉及安装和配置代理软件。以下是使用 Squid 代理服务器的步骤,这是一种常用的开源代理服务器。
安装 Squid
- 更新系统包
sudo yum update -y
- 安装 Squid
sudo yum install squid -y
配置 Squid
- 备份默认配置文件
sudo cp /etc/squid/squid.conf /etc/squid/squid.conf.bak
- 编辑 Squid 配置文件
sudo vim /etc/squid/squid.conf
以下是自带的一些基本配置示例:
- 允许本地网络访问:
acl localnet src 192.168.1.0/24 http_access allow localnet http_access deny all
- 设置代理端口:
http_port 3128
你需要自定添加自定义配置:
# 允许特定 IP 地址访问 acl allowed_ips src 192.168.1.100 http_access allow allowed_ips # 或者,允许所有 IP 地址访问(仅用于测试,生产环境中应小心使用) http_access allow all
- 允许本地网络访问:
- 保存并关闭配置文件
重新加载 Squid 配置
如果你修改了 squid.conf
文件,请重新加载 Squid 配置:
sudo systemctl reload squid
启动 Squid 服务
- 启动 Squid
sudo systemctl start squid
- 设置开机自启动
sudo systemctl enable squid
- 检查 Squid 状态
sudo systemctl status squid
防火墙配置
如果你的 CentOS 系统启用了防火墙,你需要允许 Squid 使用的端口(默认是 3128)。
- 允许 Squid 端口通过防火墙
sudo firewall-cmd --permanent --add-port=3128/tcp sudo firewall-cmd --reload
-
如果你需要允许特定的 IP 地址访问代理端口,可以使用富规则:
sudo firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="192.168.1.100" port protocol="tcp" port="3128" accept' sudo firewall-cmd --reload
测试代理服务器
在你的客户端设备上,设置浏览器或操作系统使用你搭建的代理服务器,指定代理 IP 和端口(默认是 3128)。例如,如果你的服务器 IP 是 192.168.1.10
,那么在客户端的代理设置中输入:
- 代理服务器:192.168.1.10
- 端口:3128
使用 curl 测试代理服务器:
curl -x http://your_proxy_host:3128 http://www.example.com
设置用户名密码
-
编辑Squid配置文件:
sudo vim /etc/squid/squid.conf
在配置文件中,找到或添加以下行来启用基本认证。注意,这些行应该放在
http_access deny all
之前,以确保认证被正确处理:auth_param basic program /usr/lib64/squid/basic_ncsa_auth /etc/squid/passwd acl auth_user proxy_auth REQUIRED http_access allow auth_user http_access deny all
这里
/usr/lib64/squid/basic_ncsa_auth
是认证程序的路径(这可能会因Squid版本和Linux发行版而异,请根据你的系统实际情况调整),/etc/squid/passwd
是存储用户名和密码的文件。 -
生成密码文件:
如果你的系统中没有
htpasswd
工具,你需要先安装它。htpasswd
通常作为httpd-tools
包的一部分提供:sudo yum install httpd-tools
然后,使用
htpasswd
工具生成密码文件。如果文件不存在,-c
选项会创建它:sudo htpasswd -c /etc/squid/passwd YOUR_USERNAME
替换
YOUR_USERNAME
为你希望创建的用户名。命令执行后,系统会提示你输入密码。如果密码文件已经存在,并且你想要添加更多用户,请不要使用
-c
选项,否则之前的用户数据将被覆盖:sudo htpasswd /etc/squid/passwd ANOTHER_USERNAME
-
重启Squid服务:
sudo systemctl restart squid
配置Git代理
在Git中设置代理连接,可以通过命令行来配置。以下是设置HTTP和HTTPS代理的方法:
设置HTTP代理和HTTPS代理:
git config --global http.proxy http://<proxy_user>:<proxy_password>@<proxy_host>:<proxy_port>
git config --global https.proxy https://<proxy_user>:<proxy_password>@<proxy_host>:<proxy_port>
如果你不需要认证,可以省略用户名和密码部分:
git config --global http.proxy http://<proxy_host>:<proxy_port>
git config --global https.proxy https://<proxy_host>:<proxy_port>
查看当前代理设置:
git config --global --get http.proxy
git config --global --get https.proxy
取消代理设置:
git config --global --unset http.proxy
git config --global --unset https.proxy
请根据你的实际代理设置替换
其他配置(可选)
你可以根据需要进一步配置 Squid,例如:
- 启用缓存:
cache_dir ufs /var/spool/squid 100 16 256
- 设置访问日志:
access_log /var/log/squid/access.log squid
完成以上步骤后,你的 CentOS 服务器上应该已经成功搭建并运行了 Squid 代理服务器。
版权声明:凡未经本网站书面授权,任何媒体、网站及个人不得转载、复制、重制、改动、展示或使用本网站的局部或全部的内容或服务,或在非本网站所属服务器上建立镜像。如果已转载,请自行删除。同时,我们保留进一步追究相关行为主体的法律责任的权利。我们希望与各媒体合作,签订著作权有偿使用许可合同,故转载方须书面/邮件申请,以待商榷。