前提

用docker安装squid

docker run -d --name squid -p 3128:3128 

进入容器

docker exec -it squid /bin/bash

后面的操作都要在容器内进行。

设置访问权限

方式1:简单设置所有人均可访问,无密码

不推荐,很快你的代理服务器就会被别人扫描到然后就会进入那些卖代理的IP列表,不然你以为那么多代理IP哪里来的。不信过段时间你查看一下/var/log/squid/access.log

编辑配置文件

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中即可,一个密码文件可以设置多个用户,每行一个。
在线生成

如果宿主机已经安装了apache可在宿主机下用以下命令生成密码文件。passwd是文件名,myuser是用户名。

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

注意,根据版本不同,/usr/lib/squid/basic_ncsa_auth可能会是/usr/lib/squid/ncsa_auth,自己检查一下。

访问权限(方式1或方式2)设置完毕后重启squid服务

/etc/init.d/squid restart

开放3128端口

常规操作不多说了。

利用代理

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

转载时须注明出处及本声明

Last modification:May 12th, 2021 at 03:13 pm