关于SOCKS5
这里只做简单介绍。
SOCKS5 是一个代理协议,它在使用TCP/IP协议通讯的前端机器和服务器机器之间扮演一个中介角色,使得内部网中的前端机器变得能够访问Internet网中的服务器,或者使通讯更加安全。
正常情况下客户端和服务端的通信:
客户端<–>服务端
使用了SOCKS5代理后的通讯:
客户端<–>代理服务器<–>服务端
我接触这个是因为,我的客户端没有办法直接访问一部分服务端(被墙了),但是我可以访问代理服务器,而且代理服务器可以访问我需要的服务端。
所以我尝试通过代理服务器来访问需要的服务端(翻墙)。
安装ss5
首先,你需要一台服务器,这个没有什么现在,不过本文适用于CentOS 7.2 64位操作系统。
连接你的服务器:
这里写图片描述
通过yum安装ss5 依赖包:
yum install gcc openldap-devel pam-devel openssl-devel
安装成功之后,安装ss5:
首先下载ss5
# 这个是一个日本大学的sourceforge镜像
wget http://blog.mengyiju.com/wp-content/uploads/2019/03/ss5-3.8.9-8.tar.gz
这里写图片描述
然后解压压缩包:
# 解压,”ss5-3.8.9-8.tar.gz”是刚才下载的压缩包
# -v过程显示文件 -z解压/压缩gzip -x解压操作 -f 后面加要操作的文件
tar -vzx -f ss5-3.8.9-8.tar.gz
会解压出来很多文件,进入解压目录:
cd ss5-3.8.9/
运行’./configure’
# configure是一个shell脚本
# 主要的作用是对即将安装的程序进行配置,
# 检查当前的环境是否满足要安装程序的依赖关系.
# 如果系统环境合适,就会生成makefile,否则会报错。
./configure
这里写图片描述
可以看到check通过了生成了makefile文件~
这时,我们ls一下就会看到文件(红色方框):
这里写图片描述
接下来我们按照makefile中的规则编译ss5。
# make是一个命令工具
# 解释 Makefile 中的规则。
# Makefile文件中描述了整个工程所有文件的编译顺序、编译规则。
# 实际上make是执行Makefile中的第一条命令
make
接下来开始安装刚刚编译的程序:
# 执行Makefile中的install
# 这些都可以在Makefile文件中看到
# 可以使用vim Makefile查看文件
make install
这样安装就完成了。
ss5基本配置
这时我们启动ss5
service ss5 start
可能会出现如下情况:
这里写图片描述
原因权限不足,我们修改一下权限:
# a+x 给所有人加上可执行权限(所有者,所属组,其他)
chmod a+x /etc/init.d/ss5
再启动ss5,就没有问题了~
这里写图片描述
目前为止只是安装上了ss5,也可以正常运行服务,但实际上代理服务还是用不了,
需要配置一下文件。
首先我们打开ss5的配置文件。
vim /etc/opt/ss5/ss5.conf
这里写图片描述
这里写图片描述
把这两处的注释打开(就是auth,permit这两行)
这里写图片描述
这里写图片描述
保存并重启ss5(service ss5 restart)
这样一个最基本的代理功能就可以使用了
但是有时我们想设置用户,只允许他们使用代理。
这样,我们就需要将上面两处改为
auth 0.0.0.0/0 – u
和
permit u 0.0.0.0/0 – 0.0.0.0/0 – – – – -
就是将其中的一个’-‘用’u’代替。
然后打开/etc/opt/ss5/ss5.passwd
vim /etc/opt/ss5/ss5.passwd
在第一行加入你允许的用户名和密码,例如
root rootroot
ss5.passwd文件的格式是一个用户一行: [用户名] [密码]。
别忘了 重启ss5 (service ss5 restart)
代理服务测试(客户端配置)
回到自己的客户端(就是自己的电脑),打开Proxifier
这里写图片描述
选择: 配置文件(p)->代理服务器(p)->添加..
这里写图片描述
然后输入自己服务器的地址和端口号(端口号默认是1080),
协议选择 SOCKS 版本 5,
验证一栏如果服务端设置了就填设置的用户和密码,没有就不启用。
这里写图片描述
点击检查:
这里写图片描述
按照上面步骤进行正常情况下会检查成功。
然后退出来确认添加代理服务器。
接下来配置代理规则:
选择: 配置文件(p)->代理规则(R)->添加..
这里写图片描述
将Default条目的动作选项选择为刚刚设置的代理服务器就可以了,
这样就完成了全局代理。