.. _squid_startup:
===============
Squid快速起步
===============
安装
========
- :ref:`arch_linux` 安装:
.. literalinclude:: squid_startup/pacman_install_squid
:caption: 在 :ref:`arch_linux` 系统安装squid
- :ref:`redhat_linux` 安装:
.. literalinclude:: squid_startup/dnf_install_squid
:caption: 在 :ref:`redhat_linux` 系统安装squid
默认配置的缓存目录是 ``/var/cache/squid`` ,配置文件是 ``/etc/squid/squid.conf`` 。
配置
======
配置文件 ``/etc/squid/squid.conf`` 默认具备来开箱即用配置。
- 监听端口默认是 ``3128`` ::
http_port 3128
- 注意,默认只允许本地局域网和本地主机访问,并拒绝所有其他主机访问代理::
http_access allow localnet
http_access allow localhost
# And finally deny all other access to this proxy
http_access deny all
- 由于我们已经允许了 ``localnet`` ,所以我们还需要定义 ``localnet`` 的来源::
# 默认已经配置了本地局域网的网段
acl localnet src 0.0.0.1-0.255.255.255 # RFC 1122 "this" network (LAN)
acl localnet src 10.0.0.0/8 # RFC 1918 local private network (LAN)
acl localnet src 100.64.0.0/10 # RFC 6598 shared address space (CGN)
acl localnet src 169.254.0.0/16 # RFC 3927 link-local (directly plugged) machines
acl localnet src 172.16.0.0/12 # RFC 1918 local private network (LAN)
acl localnet src 192.168.0.0/16 # RFC 1918 local private network (LAN)
acl localnet src fc00::/7 # RFC 4193 local private network range
acl localnet src fe80::/10 # RFC 4291 link-local (directly plugged) machines
你可以再增加自己定义的网段段。
完整的初始配置可以参考如下(采用 :ref:`fedora` 发行版安装squid后默认初始 ``/etc/squid/squid.conf`` ):
.. literalinclude:: squid_startup/squid.conf
:language: bash
:caption: fedora默认初始squid配置: /etc/squid/squid.conf
:emphasize-lines: 36
.. note::
:ref:`fedora` 发行版安装squid默认没有启用本地缓存目录,修改了上述一行 ``cache_dir`` 配置
- 重启并激活squid服务:
.. literalinclude:: squid_startup/restart_enable_squid
:caption: 重启并激活squid服务器(在操作系统启动时启动)
- 对于使用了firewalld的防火墙主机,请设置允许访问端口 3128 ::
firewall-cmd --zone=public --add-port=3128/tcp --permanent
firewall-cmd --reload
无需重启即重新加载配置
=========================
很多时候修订配置重启squid是非常缓慢麻烦的事情,因为重启服务会清理缓存,效率非常低下。所以,通常我们修改配置后,应该仅仅重新加载配置而不要重启服务。有多种方法可以实现:
- 方法一: :ref:`systemd` 系统中使用::
sudo systemctl reload squid
- 方法二: 向进程id发送 ``HUP`` 信号::
sudo kill -HUP `cat /var/run/squid.pid`
或者::
sudo kill -HUP $(cat /var/run/squid.pid)
- 方法三: 命令参数(也适用于FreeBSD)::
sudo /usr/sbin/squid -k reconfigure
参考
======
- `How to install and configure Squid proxy server on Linux `_
- `arch linux官方文档 - Squid `_
- `Reload Squid Proxy Server Without Restarting Squid Daemon `_