CentOS 8 上搭建代理服务

在 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 为例:

  1. 打开浏览器 设置
  2. 找到 网络设置代理 部分。
  3. 选择 手动配置代理
  4. HTTP 代理HTTPS 代理 栏中,填写你 CentOS 服务器的 IP 地址和端口号(如 <code>3128</code>)。
  5. 勾选 为所有协议使用相同代理(可选)。
  6. 点击 确定 保存。

现在,你可以尝试访问一个网站(如 <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> 安装,配置稍复杂一些。

安全提示

  1. 访问控制很关键:切勿在生产环境或公网上开放一个无任何认证、允许所有IP访问的代理服务器,这极易被滥用。
  2. 考虑添加认证:对于更高级的安全需求,可以为 Squid 配置用户名和密码认证。
  3. 保持更新:定期使用 <code>dnf update squid</code> 更新 Squid 软件,以修复潜在的安全漏洞。