CentOS部署
首先关闭防火墙:
setenforce 0
设置最大文件数:
ulimit -n 1048576
设置最大文件句柄数:
echo "* soft nofile 1048576" >> /etc/security/limits.conf
echo "* hard nofile 1048576" >> /etc/security/limits.conf
停止sendmail服务,防止占用25 SMTP端口:
killall sendmail
停止postfix服务,防止占用25 SMTP端口:
postfix stop
从Linux运行级关闭postfix服务:
chkconfig --level 2345 postfix off
安装squid:
这里必须用25端口, 别问为什么。。。
yum -y install squid
vim /etc/squid/squid.conf,修改以下内容:
http_port 25
重启squid:
systemctl restart squid.service
检查端口是否开启
netstat -ntpl |grep squid
从Linux运行级开启squid服务:
systemctl enable squid.service
至此,你的服务器就已经部署成了代理服务器。(参考自这里)
加入用户验证
yum install -y openssl openssl-devel httpd
passwd 文件使用 htpasswd 生成,auth_user 替换为自己需要设定的用户名
htpasswd -c /etc/squid/passwd auth_user
vim /etc/squid/squid.conf,写入以下内容:
auth解释:
第一行:选择的认证方式为basic,认证程序路径和密码文件路径。
第二行:认证程序的进程数
第三行:认证有效时间
第四行:认证领域内容,上面定义的web浏览需要输入用户密码
第五,六行:设置允许认证的用户访问
# auth
auth_param basic program /usr/lib64/squid/basic_ncsa_auth /etc/squid/passwd
auth_param basic children 5
auth_param basic credentialsttl 2 hours
auth_param basic realm Example.com's Squid proxy-caching
acl auth_user proxy_auth REQUIRED
http_access deny !auth_user
http_access allow auth_user
#额外2句,隐藏真实ip变成匿名代理,squid 3.1
via off
forwarded_for delete
# And finally deny all other access to this proxy
http_access deny all
# Squid normally listens to port 3128
http_port 25
使用HTTPS
如果要使用https协议则必须找台国内VPS或者自己本机安装Stunnel ,并修改以下配置:
https_port 443 cert=/etc/squid/xx.crt key=/etc/squid/xx.key
上面的密钥文件使用下面的命令来生成
(需要注意的是,Common Name需要与服务器的IP或者主机名一致)
cd /etc/squid
openssl req -new > hb.csr
openssl rsa -in privkey.pem -out xx.key
openssl x509 -in xx.csr -out xx.crt -req -signkey xx.key -days 3650
参考自这里
服务器安装stunnel - linux
yum install -y stunnel 安装
killall stunnel 停止
stunnel 运行
增加文件/etc/stunnel/tunnel.conf ,配置如下:
[proxy]
client = no
[squid]
accept = 其他端口
connect = 127.0.0.1:25
cert = /etc/stunnel/stunnel.pem
stunnel.pem生成方法可参考这里
本地安装stunnel -Windows
下载:https://www.stunnel.org/downloads.html
修改关键配置如下:
[proxy]
client = yes
accept = 本地:端口
connect = 远程:端口
可能用得找的东西 XXXList