socks5
SOCKS5 是一个代理协议,它在使用 TCP/IP协议通讯的前端机器和服务器机器之间扮演一个中介角色,使得内部网中的前端机器变得能够访问Internet网中的服务器,或者使通讯更加安全。SOCKS5 服务器通过将前端发来的请求转发给真正的目标服务器, 模拟了一个前端的行为。在这里,前端和SOCKS5之间也是通过TCP/IP协议进行通讯,前端将原本要发送给真正服务器的请求发送给SOCKS5服务器,然后SOCKS5服务器将请求转发给真正的服务器。
如果您的机器具有一个合法的 Internet IP 地址, 或者您利用自己机器上的调制解调器拨号上网, 可以自由和 Internet 上任何主机沟通, 那么您通常不必关心 SOCKS5 协议。SOCKS5 协议对于处在内部网络中的机器, 需要透过网络中某些可以联通外部 Internet 的机器访问外部时,有用。SOCKS5服务器在将通讯请求发送给真正服务器的过程中,对于请求数据包本身不加任何改变。SOCKS5服务器接收到真正服务器的响应后,也原样转发给前端。因此,SOCKS5 协议是一种代理协议,对于各种基于 TCP/IP的应用层协议都能够适应,几乎是万能的。它虽然不能理解自己转发的数据的内部结构,但是它能够忠实地转发通讯包,完成协议本来要完成的功能。
与SOCKS5协议不同,HTTP代理是通过HTTP协议进行的,HTTP代理服务器软件了解通讯包的内部结构,在转发过程中还要对通讯进行某种程序的修改和转换。和HTTP代理协议不同,SOCKS5实际上是一个传输层的代理协议。我们可以想象,如果每个具体的应用层协议都要设计对应的代理协议表达办法,一个特定的代理服务器无论如何也支持不过来那么多新出现的协议。因此,可以说SOCKS5的出现缓解了各种具体协议需要专门设计代理协议的困难局面。不过,并不是凡是使用基于TCP/IP协议的应用协议的软件,都可以无条件地透过SOCKS5服务器进行通讯,还要求前端软件本身具有SOCKS5的接口,才能利用SOCKS5代理服务器。
安装配置
1. 安装socks 5
1.1 安装依赖开发库
复制代码代码如下:
# yum install pam-devel openldap-devel openssl-devel
1.2 安装socks 5
复制代码代码如下:
# wget http://downloads.sourceforge.net/project/ss5/ss5/3.8.9-8/ss5-3.8.9-8.tar.gz?r=&ts=1396802581&use_mirror=cznic
# tar -xzvf ss5-3.8.9-8.tar.gz
# cd ss5-3.8.9
# ./configure
# make
# make install
2. socks 5配置
2.1 修改配置文件
复制代码代码如下:
# vim /etc/opt/ss5/ss5.conf
auth 0.0.0.0/0 – -
改为
复制代码代码如下:
auth 0.0.0.0/0 – u
permit – 0.0.0.0/0 – 0.0.0.0/0 – – – – -
改成为
复制代码代码如下:
permit u 0.0.0.0/0 – 0.0.0.0/0 – – – – -
3. 添加socket 5用户
复制代码代码如下:
# cat /etc/opt/ss5/ss5.passwd
##用户 密码
ttlsa 123456
4. 启动socket 5
复制代码代码如下:
# sh /etc/rc.d/init.d/ss5 start
doneting ss5...
默认情况ss5文件没有执行权限,如果觉得使用sh来启动麻烦,那么按如下方法:
复制代码代码如下:
# chmod u+x /etc/rc.d/init.d/ss5
# chkconfig --add ss5 //可选
# chkconfig ss5 on //可选
# service ss5 start
5. 查看是否启动
复制代码代码如下:
# netstat -lntp | grep ss5
tcp 0 0 0.0.0.0:1080 0.0.0.0:* LISTEN 14262/ss5
默认端口1080
6. 测试socks5
安装Proxifier,默认情况所有请求都走socks5.打开百度,输入IP,可以看到如下结果是我们运维生存时间(ttlsa.com)的ip地址
7. 常见错误
7.1 缺少PAM
复制代码代码如下:
configure: error: *** Some of the headers weren't found ***
# yum -y install pam-devel
8. 结束
socks5你安装成功了吗?这会儿我还没关闭socks5,你可以拿本章的账号密码做个测试。