Linux 源码安装 squid 代理服务器
本次使用的 squid 源码包为 squid-3.5.26-20170702-r14182.tar.gz
1. 解压
这步很简单啦, 直接解压就行了
[root@ ~]# tar zxvf squid-3.5.26-20170702-r14182.tar.gz
2. 进入解压后的目录 cd squid-3.5.26-20170702-r14182
配置
[root@ squid-3.5.26-20170702-r14182]# ./configure --prefix=/usr/local/squid --with-included-ltdl
\# /usr/local/squid 是要安装的路径
\# --with-included-ltdl 是防止报错 (找不到 'LT_DLSYM_CONST')
3. 编译/安装
[root@ squid-3.5.26-20170702-r14182]# make
[root@ squid-3.5.26-20170702-r14182]# make install
4. 修改 /proc/sys/net/ipv4/ip_forward 配置文件
[root@ ~]# echo "1">/proc/sys/net/ipv4/ip_forward
\# 将该文件中的0改成1 (允许数据包转发) 没具体使用squid, 不知道有什么效果
5. 修改 squid.conf 配置文件
默认在 /usr/local/squid/etc/squid.conf
[root@ ~]# vi /usr/local/squid/etc/squid.conf
添加以下内容:
cache_mem 32 MB
cache_dir ufs /usr/local/squid/var/cache 100 16 256
cache_swap_low 90
cache_swap_high 95
cache_effective_user squid # 这是squid用户
cache_effective_group squid
cache_access_log /usr/local/squid/var/logs/access.log
cache_log /var/squid/cache.log
然后 修改http_access deny all 为 http_access allow all
注意: 如果没有创建 squid 用户, 则要创建一个新用户
[root@ ~]# useradd squid
[root@ ~]# passwd squid
\# 输入密码, 确认密码
6. 更改目录权限, 为了使 squid 账户能顺利写入缓存 (报错: permission denied)
[root@ ~]# chmod -R 777 /usr/local/squid
7. 初始化缓存目录
[root@ ~]# /usr/local/squid/sbin/squid –z
注意: 如果目录不存在会报错, 要手动创建上面第5点提到的目录和文件
\# 如果你的目录不一样需要自己调整哦!
mkdir /var/squid
touch /var/squid/cache.log
chmod 777 -R /var/squid
8. 启动和关闭 squid
/usr/local/squid/sbin/squid -s # 后台静默运行
/usr/local/squid/sbin/squid -k shutdown # 停止运行
出现错误: 'visible_hostname'
之前安装了 3.0 的包 squid-3.0.STABLE18.tar.gz
, 直接 configure && make && make install 编译安装完后, 可以直接启动, 但是需要配置 hostname !
可以直接修改 xxx/squid/etc/squid.conf
这个文件, 加上一句
visible_hostname 主机名
\# 主机名好像可以随便取一个的
当然, 默认缓存文件目录放在 xxx/squid/var/cahce
下, 但没有这个目录, 所以要手动创建, 并且给 var 目录下的 logs 和 cache 目录权限, 当然也可以和上面的一样自定义
mkdir /usr/local/squid/var/cache
chown -Rf nobody /usr/local/squid/var/*
\# /var/* 直接给 var 目录下的所有文件赋权限, 也可以一个一个来!
然后就可以初始化, 启动了 (看上面哦 ↑ )