squid搭建代理服务器(centos7)

N 人看过

使用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) 进行许可。