1、环境介绍:
内网172.168.0.0 网关 172.168.254.254
外网 10.10.10.10 网关 10.10.10.254
2、操作系统安装
为了保障代理服务器的安全性,建议使用最新版的操作系统。本次使用刚发布的RHEL 9.5。
U盘制作:使用ventoy制作启动U盘,把rhel-9.5-x86_64-dvd.iso文件拷贝到U盘上,可以把U盘当做windows和linux的公用安装盘。
选装最小化安装,其中设置网卡内网设置IP地址的时候,不设置网关,点route添加路由,172.168.0.0/16 网关设置172.168.254.254.外网地址设置IP地址、掩码和网关。外网网卡正常安装设置,这样安装之后,缺省路由只有一个就是外网的网关,不需要再手动调整缺省网关。
3、RHEL9.5最小化安装的时候没有安装ftp,需要用这个拷贝文件,就安装上去。需要设置华为源,编辑 /etc/yum.repos.d/huawei.repo,内容如下:
[baseos]
name=Rocky Linux $releasever - BaseOS
baseurl=https://mirrors.huaweicloud.com/rockylinux/$releasever/BaseOS/$basearch/os/
gpgcheck=1
enabled=1
countme=1
gpgkey=https://mirrors.huaweicloud.com/rockylinux/RPM-GPG-KEY-Rocky-9
[appstream]
name=Rocky Linux $releasever - AppStream
baseurl=https://mirrors.huaweicloud.com/rockylinux/$releasever/AppStream/$basearch/os/
gpgcheck=1
enabled=1
countme=1
gpgkey=https://mirrors.huaweicloud.com/rockylinux/RPM-GPG-KEY-Rocky-9
[extras]
name=Rocky Linux $releasever - Extras
baseurl=https://mirrors.huaweicloud.com/rockylinux/$releasever/extras/$basearch/os/
gpgcheck=1
enabled=1
countme=1
gpgkey=https://mirrors.huaweicloud.com/rockylinux/RPM-GPG-KEY-Rocky-9
[epel]
name=Extra Packages for Enterprise Linux $releasever - $basearch
baseurl=https://mirrors.huaweicloud.com/epel/$releasever/Everything/$basearch/
enabled=1
gpgcheck=1
countme=1
gpgkey=https://mirrors.huaweicloud.com/epel/RPM-GPG-KEY-EPEL-$releasever
#yum clean all
#yum makecache
#yum install -y ftp
下载squid6.12(当前的最新版)
#tar zxvf squid-6.12.tar.gz
#cd /root/squid6.12
# ./configure --enable-icmp --enable-linux-netfilter --enable-follow-x-forwarded-for --enable-ssl-crtd --enable-x-accelerator-vary --with-large-files --with-openssl --enable-ltdl-convenience
这么选项怎么来的,主要来自于十几年的应用经验。感兴趣的可以逐条查阅确认是否适合自己的代理服务器应用。
启动32个内核编译。
# make -j32 all
# make install
缺省安装之后的位置:/usr/local/squid
配置squid.conf文件
vi /usr/local/squid/etc/squid.conf
创建缓存目录,root用户操作,创建之后修改权限,便于squid启动使用nobody账号写文件。
#/usr/local/squid/sbin/squid -z
#chmod -R 777 /usr/local/squid/var
防火墙设置:
查看当前缺省设置
# firewall-cmd --get-active-zones
public
interfaces: enp9s0 eno1
把eno1设置成internal
# firewall-cmd --zone=internal --change-interface=eno1 --permanent
# firewall-cmd --get-active-zones
internal
interfaces: eno1
public
interfaces: enp9s0
两个网卡分别对应于一个public和internal,接下来分配squid和masquerade
# firewall-cmd --zone=public --add-masquerade --permanent
# firewall-cmd --zone=internal --add-service=squid --permanent
# firewall-cmd --reload
如果有图形化界面,也可以使用图形化界面firewall-config命令打开防火墙配置,设置internal、public及对应网卡上面的squid和masquerade。
启动squid,方法一
把 /usr/local/squid/sbin/squid 添加到/etc/rc.local里面。设置rc.local执行权限
#chmod 755 /etc/rc.d/rc.local
启动squid,方法二
#vi /etc/systemd/system/squid.service
[Unit]
Description=Squid Web Proxy Server
After=network.target
[Service]
Type=forking
ExecStart=/usr/local/squid/sbin/squid
ExecReload=/usr/local/squid/sbin/squid -k reconfigure
ExecStop=/usr/local/squid/sbin/squid -k shutdown
TimeoutSec=5min
Restart=always
[Install]
WantedBy=multi-user.target
没有 ExecStartPre项,因为前面的squid -z已经建立了缓存目录,不需每次启动都要重建。
# systemctl daemon-reolad
#systemctl enable squid.service
#systemctl start squid.service
重启系统,看看开机是否能自动启动:
# init 6
开机几分钟之后再查看,因为有时候squid.service设置不对,会自动运行几分钟后退出。
#ps -ef | grep squid