前提
- 安装docker请参见这篇文章。
用docker安装squid
docker run -d --name squid -p 3128:3128 minimum2scp/squid
进入容器
docker exec -it squid /bin/bash
后面的操作都要在容器内进行。
设置访问权限
方式1:简单设置所有人均可访问,无密码 (不推荐)
编辑配置文件
vi /etc/squid/squid.conf
找到 http_access allow localhost 这一行,删掉,或注释掉
接着往下找到 http_access deny all 这一行,删掉,或注释掉
添加一行 http_access allow all
改完后大概是这样的
# Example rule allowing access from your local networks.
# Adapt localnet in the ACL section to list your (internal) IP networks
# from where browsing should be allowed
#http_access allow localnet
#http_access allow localhost
# And finally deny all other access to this proxy
#http_access deny all
http_access allow all
方式2:指定用户密码登录(http basic认证)推荐
首先要生成一个密码文件,用到htpasswd,是apache服务自带的一个命令工具。
如果没有使用apache服务器,例如使用nginx等,可能手头没有这个命令行工具,可以使用在线版生成器。
如图:

生成后得到一串文本将这个文本复制到容器内的密码文件
/usr/lib/squid/passwd
中即可(文件不存在就创建一个,如下),一个密码文件可以设置多个用户,每行一个。
root@5cdce0c2c796:/# echo 'apple:$apr....' > /usr/lib/squid/passwd
htpasswd -c passwd myuser
同样的,在宿主机生成密码文件以后cat查看文件内容并复制到容器内的密码文件/usr/lib/squid/passwd中。
密码文件准备好以后编辑配置文件启用密码认证
vi /etc/squid/squid.conf
找到 http_access allow localhost 这一行,删掉,或注释掉
接着往下找到 http_access deny all 这一行,删掉,或注释掉
添加一行 http_access allow auth_user
改完后大概是这样的
# Example rule allowing access from your local networks.
# Adapt localnet in the ACL section to list your (internal) IP networks
# from where browsing should be allowed
#http_access allow localnet
#http_access allow localhost
# And finally deny all other access to this proxy
#http_access deny all
http_access allow auth_user
继续找到auth_param basic部分的设置,默认是none,添加2行。
改完后大概是这样的
##auth_param basic program <uncomment and complete this line>
##auth_param basic children 5 startup=5 idle=1
##auth_param basic realm Squid proxy-caching web server
##auth_param basic credentialsttl 2 hours
#Default:
# none
auth_param basic program /usr/lib/squid/basic_ncsa_auth /usr/lib/squid/passwd
acl auth_user proxy_auth REQUIRED
访问权限(方式1或方式2)设置完毕后重启squid服务
/etc/init.d/squid restart
开放3128端口
常规操作不多说了。(用docker run生成容器时会自动开放-p指定的端口,但如果是云服务器还需要确认一下安全组的端口设置,比如腾讯云默认所有端口允许入站而阿里云则默认只允许一些常用端口入站)
利用代理
linux环境下临时用一下的话执行下面两句即可。
export http_proxy=http://user:pass@服务器地址:3128
export https_proxy=http://user:pass@服务器地址:3128
浏览器使用的话推荐chrome插件SwitchyOmega
版权属于:芒果爱吃胡萝卜
本文链接:http://blog.mangolovecarrot.net/2021/05/07/275
转载时须注明出处及本声明