squid搭建代理服务器(centos7)
使用squid搭建 centos7代理服务器
Centos7服务器端
1、开启IP_Forward:
echo 1 > /proc/sys/net/ipv4/ip_forward
2、安装squid
yum install squid
3、修改配置文件/etc/squid/squid.conf
vi /etc/squid/squid.conf
增加如下配置
acl OverConnLimit maxconn 10 #定义每个IP最大连接数
auth_param basic program /usr/lib64/squid/basic_ncsa_auth /etc/squid/passwords #配置的认证方式和认证文件
auth_param basic children 5 #认证程序的进程数
auth_param basic realm superman's squid server #代理连接提示信息,详见下图
auth_param basic credentialsttl 5 hours #认证持续时间
acl authenticated proxy_auth REQUIRED #设置代理需要认证
http_access deny OverConnLimit #超出连接数则拒绝
http_access allow authenticated #允许认证用户访问
http_access deny all #拒绝其他访问
注释如下配置:
# http_access deny !Safe_ports
# http_access deny CONNECT !SSL_ports
# http_access deny to_localhost
# http_access allow localnet
# http_access deny all
修改如下配置:
# Squid normally listens to port 3128
http_port 6666 #修改默认端口3128为自定义端口6666
4、生成密码文件
yum install httpd
htpasswd -c -d /etc/squid/passwords superman #创建一个密码文件名为passwords,账号名为superman
注意密码长度过长会截断为8个字符,即密码长度<=8。
[root@vm228789 squid]# htpasswd -c -d /etc/squid/passwords superman
New password:
Re-type new password:
Warning: Password truncated to 8 characters by CRYPT algorithm.
Adding password for user surperman
5、重启服务并加入开机启动
systemctl start squid.service
systemctl enable squid.service
6、防火墙开放6666端口
firewall-cmd --zone=public --add-port=6666/tcp --permanent
systemctl restart firewalld.service #重启防火墙生效
Centos7 客户端
1、编辑配置文件(设置永久全局代理)
vi /etc/profile
2、末尾增加http_proxy配置,用户名密码为服务器端配置的账户superman 和自定义的8位密码
#add http_proxy
export http_proxy=http://用户名:密码@服务器IP:端口/
export http_proxy
3、测试连接
[root@localhost /]# curl http://myip.ipip.net
当前 IP:XXX.XXX.XXX.XXX 来自于:俄罗斯 新西伯利亚州
tips
- 1、squid配置文件格式不对启动不起来的,需要仔细检查,重点区分/
etc/squid3
和/etc/squid
、/usr/lib64/squid/
和/usr/lib/squid/
,其实也就是关注有无该路径或者文件。 - 2、
http_access allow authenticated
该项不要简写为auth_user,我测试的时候是没成功的,头铁的多试试
本作品采用 知识共享署名-非商业性使用-禁止演绎 4.0 国际许可协议 (CC BY-NC-ND 4.0) 进行许可。