IPIPGO ip代理 centos搭建http代理服务器教程:从零开始配置Squid/Nginx

centos搭建http代理服务器教程:从零开始配置Squid/Nginx

准备工作:选对系统和软件 在CentOS上搭建HTTP代理服务器,首先得确保你的系统是干净的。推荐用CentOS 7或者8,毕竟用的人多,出了问题也好找解决方案。你得有一台能稳定运行的服务器,配置不用太高,1核1G…

centos搭建http代理服务器教程:从零开始配置Squid/Nginx

准备工作:选对系统和软件

在CentOS上搭建HTTP代理服务器,首先得确保你的系统是干净的。推荐用CentOS 7或者8,毕竟用的人多,出了问题也好找解决方案。你得有一台能稳定运行的服务器,配置不用太高,1核1G内存就够起步了。

重点来了,搭建代理服务器主要用两款软件:Squid和Nginx。Squid是老牌的代理软件,专门干这个的,稳定又好用。Nginx本来是个Web服务器,但通过模块也能实现代理功能,更适合一些轻量级或者有特殊需求的场景。下面这张表帮你快速对比:

软件 主要用途 优点 适合场景
Squid 专业代理和缓存 功能强大,配置灵活,缓存效果好 需要高性能转发、内容缓存的企业环境
Nginx Web服务器、反向代理 性能高,资源占用少,配置相对简单 轻量级代理、或已有Nginx做Web服务需扩展

选哪个?如果你就想要个纯粹的、功能强大的HTTP代理,Squid是首选。如果你的服务器上已经跑着Nginx了,只是想顺便加个代理功能,那用Nginx会更省事。

方法一:使用Squid搭建HTTP代理

Squid的安装非常简单,用yum命令一行就能搞定。先登录你的CentOS服务器,最好用root账号或者有sudo权限的账号。

第一步:安装Squid

yum update -y
yum install squid -y

安装完成后,Squid服务会自动创建,但还没启动。

第二步:配置Squid

这才是关键。Squid的主配置文件在 /etc/squid/squid.conf。我们先备份一下原文件,然后再修改。

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

用vi或nano编辑器打开配置文件:

vi /etc/squid/squid.conf

你需要找到并修改几个核心配置项:

 设置Squid监听的端口,默认是3128,你可以改成自己喜欢的,比如8080
http_port 3128

 定义访问控制列表(ACL),这里设置允许所有IP访问,生产环境要限制!
acl all src 0.0.0.0/0

 允许上面定义的ACL进行访问
http_access allow all

 强烈建议加上这一行,隐藏客户端真实IP,提高匿名性
forwarded_for delete

配置完后,保存退出。

第三步:启动Squid并设置开机自启

 启动Squid服务
systemctl start squid

 设置开机自动启动
systemctl enable squid

 检查一下服务状态,看到active (running)就说明成功了
systemctl status squid

第四步:配置防火墙

如果服务器开启了防火墙,需要放行你设置的Squid端口(比如3128)。

 对于firewalld(CentOS 7/8)
firewall-cmd --permanent --add-port=3128/tcp
firewall-cmd --reload

至此,一个基础的HTTP代理服务器就搭好了。你可以在其他电脑上测试一下,把代理服务器地址和端口设置为你的服务器IP和3128,看能否正常上网。

方法二:使用Nginx搭建HTTP代理

如果你的服务器上已经安装了Nginx,用它来搭建代理会更方便。Nginx主要通过ngx_http_proxy_module模块实现代理功能。

第一步:安装Nginx

如果还没安装Nginx,可以用yum安装:

yum install nginx -y

第二步:配置Nginx代理

Nginx的配置文件通常在 /etc/nginx/nginx.conf 或者 /etc/nginx/conf.d/ 目录下。我们可以在conf.d目录里新建一个专门用于代理的配置文件,比如proxy.conf

vi /etc/nginx/conf.d/proxy.conf

然后写入以下配置:

server {
    listen 8080;  Nginx代理服务监听的端口
    location / {
         这是核心配置,将请求转发到目标网站
        proxy_pass http://$http_host$request_uri;
         设置一些代理头信息,让请求看起来更“自然”
        proxy_set_header Host $http_host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
    }
}

这个配置比Squid的简单很多,它创建了一个在8080端口监听的服务器,把所有收到的请求都原样转发出去。

第三步:启动Nginx

 启动前,检查一下配置文件语法对不对
nginx -t

 如果显示syntax is ok,就可以启动了
systemctl start nginx
systemctl enable nginx

第四步:放行防火墙端口

同样,别忘了防火墙。

firewall-cmd --permanent --add-port=8080/tcp
firewall-cmd --reload

现在,你的Nginx HTTP代理服务器也运行在8080端口了。

进阶配置:让代理更好用

上面搭建的是最基础的代理,谁都能用,不太安全。在实际使用中,我们通常需要加一些限制。

1. 给代理加密码认证(以Squid为例)

这能防止别人随便用你的代理。我们需要借助Apache的工具htpasswd来创建密码文件。

 安装httpd-tools
yum install httpd-tools -y

 创建密码文件,用户名是myuser
htpasswd -c /etc/squid/passwords myuser
 执行后会提示你输入密码

然后修改Squid配置文件,在http_port行下面加入认证配置:

 启用认证
auth_param basic program /usr/lib64/squid/basic_ncsa_auth /etc/squid/passwords
auth_param basic realm proxy
acl authenticated proxy_auth REQUIRED
 只允许认证用户访问
http_access allow authenticated
 拒绝其他所有访问
http_access deny all

重启Squid服务后,再用代理时就需要输入用户名和密码了。

2. 限制访问的IP范围

如果你只想让公司内网的IP使用这个代理,可以在Squid配置里设置ACL。比如只允许192.168.1.0网段访问:

acl local_network src 192.168.1.0/24
http_access allow local_network
http_access deny all

自建代理的局限与专业代理服务推荐

自己搭建代理服务器,对于内部网络测试、管理多台服务器等场景确实很方便。但如果你需要大量、高质量、来自不同地区的代理IP,自建的成本就非常高了。你需要维护很多台服务器,还要担心IP被目标网站封禁的问题。

这时候,选择一个专业的代理IP服务商就非常有必要了。比如ipipgo,它提供高质量的代理IP服务,能完美解决自建代理的痛点。

ipipgo的动态住宅代理IP资源非常丰富,IP来自真实的家庭网络,匿名性极高,非常适合需要模拟真实用户访问的场景。它的静态住宅代理IP则更加稳定,IP长期不变,适合需要固定IP才能进行的业务,比如管理社交媒体账户。无论是哪种需求,ipipgo都能提供稳定可靠的解决方案,让你省去维护服务器的麻烦,专注于核心业务。

常见问题QA

Q1: 测试代理时连接被拒绝,怎么办?

A:大概率是防火墙没放行端口。请检查服务器防火墙(firewalld或iptables)是否允许代理端口(如3128, 8080)的TCP连接。确保代理服务(Squid或Nginx)已经成功启动。

Q2: 使用代理后访问网站很慢,是什么原因?

A:原因可能有几个:1. 你的服务器本身网络带宽小或者不稳定。2. 代理服务器的配置不高,处理请求慢。3. 没有开启缓存(针对Squid)。可以检查服务器资源使用情况(用top命令),并为Squid合理配置缓存目录和大小。

Q3: 我想让代理服务器只能访问特定的几个网站,如何设置?

A:在Squid中可以通过ACL实现。例如,只允许访问google.com和github.com:

acl allowed_sites dstdomain .google.com .github.com
http_access allow allowed_sites
http_access deny all

Q4: 自建的代理IP用不了多久就被目标网站封了,有什么好办法?

A:这正是自建代理的主要局限。单个服务器IP容易被识别和封禁。对于需要大量IP且要求高匿名的业务,强烈建议使用像ipipgo这样的专业服务。ipipgo拥有海量的动态住宅IP池,IP不断轮换,能有效避免被封,确保你的业务连续稳定运行。

本文由ipipgo原创或者整理发布,转载请注明出处。https://www.ipipgo.com/ipdaili/57846.html
新春惊喜狂欢,代理ip秒杀价!

专业国外代理ip服务商—IPIPGO

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注

联系我们

联系我们

13260757327

在线咨询: QQ交谈

邮箱: hai.liu@xiaoxitech.com

工作时间:周一至周五,9:30-18:30,节假日休息
关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部
zh_CN简体中文