更换了一台阿里云服务器,重新部署服务。直接上了CentOS8系统。
CentOS8系统除了默认的pyhton版本是 Python 3.6 ,RHEL 包含PHP 7.2。
结果,原来的python2的服务都要重新兼容一次python3,也懒得再去安装pyhton2版本。
更重要的是,原本代理服务Tinyproxy,在CentOS8上面,无论是rpm安装,还是源码安装最新版本Version 1.10.0,都起不来!!!
Tinyproxy git地址:https://github.com/tinyproxy
rpm支持EPEL 7 for x86_64的版本:tinyproxy-1.8.3-2.el7.x86_64.rpm
不是 PID 未创建,就是 protocol错误。
本想开--enable-debug调试模式研究下, 看下怎么解决。但是业务优先,立刻更换代理,换上 squid。
Squid是一个高性能的代理缓存服务器,Squid支持FTP、gopher、HTTPS和HTTP协议。和一般的代理缓存软件不同,Squid用一个单独的、非模块化的、I/O驱动的进程来处理所有的客户端请求。
squid官网:http://www.squid-cache.org/
squid下载地址:http://www.squid-cache.org/Versions/
squid的rpm文件:http://rpmfind.net/linux/rpm2html/search.php?query=squid
服务器环境:
$ cat /etc/redhat-release
CentOS Linux release 8.1.1911 (Core)
yum源中的版本:
$ yum list | grep squid
squid.x86_64 7:4.4-8.module_el8.1.0+197+0c39cdc8 @AppStream
squidGuard.x86_64 1.4-36.el8 epel
直接yum安装:
$ yum install -y squid
查看已安装:
$ whereis squid
查看启动脚本:
$ ll /usr/lib/systemd/system | grep squid
进入配置文件目录:
$ cd /etc/squid/
编辑配置文件,允许所有ip访问:
$ vim squid.conf
http_port 3228 # 修改端口,默认为 3128
http_access allow all # 添加 ,为允许所有ip
检查配置文件是否有误:
$ squid -k parse # 配置文件解析日志中,没有出现ERROR 就没有问题
启动服务:
$ systemctl start squid
查看squid监听的端口:
$ netstat -lnpt
squid的日志目录为/var/log/squid/, 两种类型日志access 和cache;
使用代理 http 或 https:
公网IP:监听端口
管理命令:
$ squid -k parse # 检查配置文件是否有误
$ systemctl start squid # 启动 squid
$ systemctl status squid # 查看 squid 运行状态
$ systemctl stop squid # 停止 squid
$ systemctl restart squid # 重启 squid
-------
1. 创建ip白名单文件,/etc/squid/squid_allow_ips, 每个ip一行,注意文件的用户和组权限( squid.root):
$ cat /etc/squid/squid_allow_ips
1.2.3.4
2.2.3.4
3.2.3.4
2. 修改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 # 禁止所有访问,这个不要漏了
3. 检查配置文件是否有误:
$ squid -k parse # 配置文件解析日志中,没有出现ERROR 就没有问题
4. 重新启动服务:
$ systemctl restart squid