天天看點

Centos8下搭建Squid代理伺服器

本來想搭建tinyproxy,結果一直提示找不到包,更新了yum源也沒用。就搭建squid吧

[root@VM-24-14-centos ~]# yum install tinyproxy -y
Last metadata expiration check: 1:13:37 ago on Tue 25 Jan 2022 07:17:54 AM CST.
No match for argument: tinyproxy
Error: Unable to find a match: tinyproxy      

yum源中的版本:

[root@VM-24-14-centos ~]# yum list | grep squid
Repository epel is listed more than once in the configuration
squid.x86_64                                                      7:4.15-1.module_el8.5.0+860+303ccf92                   AppStream
squidGuard.x86_64                                                 1.4-36.el8                                             epel      

直接yum安裝:

yum install -y squid      

檢視已安裝:

whereis squid

[root@VM-24-14-centos ~]# whereis squid
squid: /usr/sbin/squid /usr/lib64/squid /etc/squid /usr/libexec/squid /usr/share/squid /usr/share/man/man8/squid.8.gz      

檢視啟動服務:

[root@VM-24-14-centos ~]# ll /usr/lib/systemd/system | grep squid
-rw-r--r--  1 root root  451 Jul 12  2021 squid.service      

編輯配置檔案​

​squid.conf​

​:

[root@VM-24-14-centos ~]# cd /etc/squid/
cachemgr.conf          cachemgr.conf.default  errorpage.css          errorpage.css.default  mime.conf              mime.conf.default      squid.conf             squid.conf.default
# 這裡我們編輯的是squid.conf
[root@VM-24-14-centos ~]# vim /etc/squid/squid.conf      

修改配置如下:

# 預設是3128
http_port 3228

#http_access deny all  #注釋掉該行
http_access allow all # 添加 ,為容許全部ip      

檢查配置檔案是否有誤:

squid -k parse  # 配置檔案解析日志中,沒有出現ERROR 就沒有問題      

服務操作:

# 啟動服務
[root@VM-24-14-centos ~]# systemctl start squid
#檢視服務狀态
[root@VM-24-14-centos ~]# systemctl status squid
● squid.service - Squid caching proxy
   Loaded: loaded (/usr/lib/systemd/system/squid.service; disabled; vendor preset: disabled)
   Active: active (running) since Tue 2022-01-25 08:52:29 CST; 5s ago
     Docs: man:squid(8)
  Process: 2984503 ExecStartPre=/usr/libexec/squid/cache_swap.sh (code=exited, status=0/SUCCESS)
 Main PID: 2984509 (squid)
    Tasks: 3 (limit: 23722)
   Memory: 13.9M
   CGroup: /system.slice/squid.service
           ├─2984509 /usr/sbin/squid --foreground -f /etc/squid/squid.conf
           ├─2984511 (squid-1) --kid squid-1 --foreground -f /etc/squid/squid.conf
           └─2984512 (logfile-daemon) /var/log/squid/access.log

Jan 25 08:52:29 VM-24-14-centos systemd[1]: Starting Squid caching proxy...
Jan 25 08:52:29 VM-24-14-centos squid[2984509]: Squid Parent: will start 1 kids
Jan 25 08:52:29 VM-24-14-centos squid[2984509]: Squid Parent: (squid-1) process 2984511 started
Jan 25 08:52:29 VM-24-14-centos systemd[1]: Started Squid caching proxy.      

檢視運作端口:

[root@VM-24-14-centos ~]# netstat -nlp|grep squid
tcp6       0      0 :::3228                 :::*                    LISTEN      2984511/(squid-1)
udp        0      0 0.0.0.0:36982           0.0.0.0:*                           2984511/(squid-1)
udp6       0      0 :::41622                :::*                                2984511/(squid-1)      

檢視日志:

[root@VM-24-14-centos squid]# pwd
/var/log/squid
[root@VM-24-14-centos squid]# ll
total 4
-rw-r----- 1 squid squid    0 Jan 25 08:52 access.log
-rw-r----- 1 squid squid 1849 Jan 25 08:52 cache.log      

以上就是允許所有通路的squid代理服務。當然我們也可以限制IP使用。

建立ip白名單檔案,​

​/etc/squid/squid_allow_ips​

​​, 每一個ip一行,注意檔案的使用者群組權限( ​

​squid.root​

​):

cat /etc/squid/squid_allow_ips
192.168.22.232
192.168.22.132
192.168.22.133      

修改squid配置,添加acl 通路規則:

acl allowed_ips src "/etc/squid/squid_allow_ips"  # ip白名單
http_access allow localnet
http_access allow localhost
http_access allow allowed_ips  # 配置allow
# And finally deny all other access to this proxy
http_access deny all  # 禁止全部通路,這個不要漏了      

檢查配置檔案是否有誤:

squid -k parse  # 配置檔案解析日志中,沒有出現ERROR 就沒有問題      

重新開機服務:

systemctl restart squid      

我另外一台伺服器是Centos6,這個下面是有tinyproxy和squid的。我們嘗試使用tinyproxy搭建代理服務。

[root@VM_0_12_centos ~]# yum list | grep squid
lightsquid.noarch                           1.8-11.el6                   epel
lightsquid-apache.noarch                    1.8-11.el6                   epel
squid.x86_64                                7:3.1.23-24.el6              os
squid34.x86_64                              7:3.4.14-15.el6              os
squidGuard.x86_64                           1.4-10.el6                   epel
[root@VM_0_12_centos ~]# yum list | grep  tinyproxy
tinyproxy.x86_64                            1.8.3-1.el6                  epel      

yum安裝:

yum install tinyproxy -y      

編寫配置檔案:

vim /etc/tinyproxy/tinyproxy.conf

#修改端口  預設是8888 
Port 9878

#注釋掉  說明允許所有通路
#Allow 127.0.0.1      
chkconfig --level 35 tinyproxy on
# 檢測服務
[root@VM_0_12_centos ~]# chkconfig --list |grep tinyproxy
tinyproxy       0:off   1:off   2:off   3:on    4:off   5:on    6:off      
[root@VM_0_12_centos ~]# service tinyproxy start
Starting tinyproxy:                                        [  OK  ]
[root@VM_0_12_centos ~]# netstat -nlp|grep tinyproxy
tcp        0      0 0.0.0.0:9878                0.0.0.0:*                   LISTEN      4192/tinyproxy      

繼續閱讀