在日常工作中我们经常会使用到代理, 这里记录一下Proxifier和ss5的使用,这两个工具既可以单独使用,也可以配合使用。本文讲解proxifier+ss5配合使用的场景及配置。
先看下百度百科的介绍,Proxifier是一款功能非常强大的socks5客户端,可以让不支持通过代理服务器工作的网络程序能通过HTTPS或SOCKS或代理链。
也就是说即使你的程序不像浏览器或者QQ支持代理配置,Proxifier也可以帮你做代理,并且支持代理和代理链,支持多代理服务器多规则。
ss5是由Matteo Ricchetti大佬编写的,官网链接SS5 Socks Server。
关于ss5的描述,官方写的很清晰。
SS5 is a socks server that implements the SOCKS v4 and v5 protocol. As a proxy server, SS5 authenticates, profiles and processes network requests for clients. It establishes connections to Application hosts for client applications. When the client attempts to access the network, the client connects to the SS5 daemon instead of the application host.
Following authentication, clients request that SS5 perform network activities for the client. The activities might include:Connect
Bind
Udp
Associate
The SS5 protocol is independent of application protocols, and can assist with different networking services, including telnet, ftp, finger, whois, gopher, and WWW access.
以下场景纯属虚构,不是十分贴切, 单纯为了方便讲解例举用。
程序员小王办公电脑IP为 192.168.2.100,小王有公司测试环境主机192.168.3.100-110 ,11台服务器,办公电脑到服务器之间有防火墙隔离,但这11台服务器之间网络互通,没有防火墙限制。
小王在这些机器上搭建好了测试环境的服务,就向网络工程师张三提出需求申请办公电脑访问这11台服务器的80,8080,443,3306端口。但张三平时看小王就不爽了,看到小王要访问那么多端口更是火冒三丈,故意为难小王的说道:我就给你开一个你办公电脑访问192.168.3.100的80端口,剩下的你自己看着办。小王有技术啊,嘴角微微一笑说道:哦了,没问题,多谢。
小王是如何实现访问多台服务器的目的呢?
本章以centos7为示例。小王登录192.168.3.100这台服务器进行了以下操作:
wget https://nchc.dl.sourceforge.net/project/ss5/ss5/3.8.9-8/ss5-3.8.9-8.tar.gz
运行以下指令,检查编译环境
rpm -qa | egrep 'pam-devel|openldap-devel|openssl-devel'
如未安装,自行安装即可。
tar zxvf ss5-3.8.9-8.tar.gz
cd ss5-3.8.9-8
./configure
make && make install
默认安装完成后,ss5为无用户认证方式,若需要账号密码验证,则需要在配置文件/etc/opt/ss5
/ss5.conf中添加以下配置
auth 0.0.0.0/0 - u
permit u 0.0.0.0/0 - 0.0.0.0/0 - - - - -
开启账号密码认证方式后,需要新增密码文件并添加用户和密码
vi /etc/opt/ss5/ss5.passwd #每行一个用户名及密码,用户和密码之间用空格分隔
xiaowang 123abc
zhangsan 456cde
test 1234_aA
test2 Qaz_123!
由于张三只给小王开通了一个80端口,这里将监听端口设置为80。
vi /etc/sysconfig/ss5
找到注释的这行配置
#SS5_OPTS=” -u root”
将其取消注释并修改为
SS5_OPTS=" -u root -b 0.0.0.0:80"
chmod 755 /etc/rc.d/init.d/ss5
#启动
systemctl start ss5
#停止
systemctl stop ss5
或者
service ss5 start && service ss5 stop
或者
/etc/init.d/ss5 start && /etc/init.d/ss5 stop
#查看进程
ps -ef|grep ss5
root 2804 1 0 15:46 ? 00:00:00 /usr/sbin/ss5 -t -u root -b 0.0.0.0:80
#查看监听端口
netstat -anp|grep ss5
tcp 0 0 0.0.0.0:8080 0.0.0.0:* LISTEN 2804/ss5
#查看日志
more /var/log/ss5/ss5.log
至此,SS5已经安装完毕,可提供服务。
请自行下载并进行windows客户端的安装
如下图所示添加代理服务器,地址与端口为SS5服务监听端口,小王则配置为192.168.3.100的80端口,选择socket5,启用验证,输入SS5密码文件中创建的账号和密码。
配置完成后可点击检查测试与代理服务器的联通性,确认正常后点击确定保存。
代理规则即在我们规定的条件下使用代理工具进行转发,其他情况不通过代理,我们可以灵活的按照的使用需求定制规则。
小王的配置如下图:
上图中小王不需要对192.168.3.100的80端口进行代理,则此条规则暂不配置192.168.3.100。
然后再创建一条规则单独配置192.168.3.100。
至此小王的代理规则配置完成!
其中规则中的应用程序、目标主机、目标端口可以理解为是“与”的关系,当我们发起一次网络请求后,以上三项都匹配到则进行代理转发,而动作则定义了转发到哪个代理服务器(即上面五、2配置的代理服务器),上图小王选的是自己搭建的SS5服务器。
到此,小王可以通过在他的办公电脑上直接访问
192.168.3.100-192.168.3.110的80,8080,443端口以及 192.169.3.100的8080和443端口。
如后期增加还有其他端口需要访问,在Proxifier代理规则中添加对应的目标端口即可。
写在最后:
如有错误,请评论告知,多多包涵。