在 CentOS 8 上搭建供本地浏览器使用的代理服务,最主流、稳定的方案是使用 Squid。它是一个高性能的专用代理服务器软件。
下面是一个基于 Squid 的完整操作流程。
方案一:使用 Squid 搭建 HTTP/HTTPS 代理(推荐)
这是最通用、稳定的方案,适合大多数浏览器的代理需求。
1. 安装 Squid
CentOS 8 的官方软件源已包含 Squid,可以直接安装。
# 更新软件包信息(可选)
sudo dnf update -y
# 安装 Squid
sudo dnf install -y squid
2. 配置 Squid
Squid 的主配置文件是 <code>/etc/squid/squid.conf</code>。在修改前,建议先备份。
# 备份原始配置文件
sudo cp /etc/squid/squid.conf /etc/squid/squid.conf.bak
# 编辑配置文件
sudo vi /etc/squid/squid.conf
在配置文件中,找到并修改或添加以下几行:
- 设置监听端口:找到 <code>http_port</code> 行,默认是 <code>3128</code>,你可以保留或按需修改。
http_port 3128 -
配置访问控制:为了能让你的浏览器连接,需要添加允许规则。请注意,以下示例为了演示允许了所有IP访问,这在公网上是极不安全的,请务必根据你的实际情况限制访问来源。
# 定义一个名为 all 的访问控制列表,包含所有IP acl all src 0.0.0.0/0 # 允许 all 这个列表访问代理 http_access allow all如果你只想允许特定IP(例如你的本地IP <code>192.168.1.100</code>)访问,可以这样配置:
acl my_local src 192.168.1.100 http_access allow my_local http_access deny all - 提高匿名性(可选):建议添加以下配置来隐藏客户端的真实IP地址。
forwarded_for delete - 设置主机名(可选):可以自定义代理服务器的主机名。
visible_hostname your_proxy_hostname
修改完成后,保存并退出编辑器。
3. 启动 Squid 服务
# 启动 Squid 服务
sudo systemctl start squid
# 设置 Squid 开机自启
sudo systemctl enable squid
# 检查服务状态,确保显示为 active (running)
sudo systemctl status squid
4. 配置防火墙
如果服务器开启了防火墙(<code>firewalld</code>),需要放行 Squid 的监听端口(如 <code>3128</code>)。
# 永久开放 3128 端口
sudo firewall-cmd --permanent --add-port=3128/tcp
# 重载防火墙规则使其生效
sudo firewall-cmd --reload
# (可选)验证端口是否已开放
sudo firewall-cmd --list-ports | grep 3128
注意:如果你的服务器是云服务器(如阿里云、腾讯云),除了系统防火墙,还需要在云平台的控制台“安全组”中放行相应的端口。
5. 配置浏览器
以 Firefox 为例:
- 打开浏览器 设置。
- 找到 网络设置 或 代理 部分。
- 选择 手动配置代理。
- 在 HTTP 代理 和 HTTPS 代理 栏中,填写你 CentOS 服务器的 IP 地址和端口号(如 <code>3128</code>)。
- 勾选 为所有协议使用相同代理(可选)。
- 点击 确定 保存。
现在,你可以尝试访问一个网站(如 <code>http://whatismyipaddress.com</code>)来验证代理是否生效,显示的IP地址应该是你代理服务器的IP。
方案二:其他备选方案
根据你的具体需求,也可以考虑以下两种方案:
- Tinyproxy(轻量级 HTTP/HTTPS 代理):如果你需要一个资源占用极低、配置极其简单的代理,Tinyproxy 是很好的选择。它可以通过 <code>dnf install -y tinyproxy</code> 安装,默认端口为 <code>8888</code>。
- Shadowsocks(SOCKS5 代理):如果你需要更高级的加密和更灵活的协议(SOCKS5),可以考虑 Shadowsocks。它通常通过 <code>pip</code> 安装,配置稍复杂一些。
安全提示
- 访问控制很关键:切勿在生产环境或公网上开放一个无任何认证、允许所有IP访问的代理服务器,这极易被滥用。
- 考虑添加认证:对于更高级的安全需求,可以为 Squid 配置用户名和密码认证。
- 保持更新:定期使用 <code>dnf update squid</code> 更新 Squid 软件,以修复潜在的安全漏洞。