一.socks简介
socks是一种网络传输协议,主要用于客户端与外网服务器之间通讯的中间传递。根据OSI七层模型来划分,SOCKS属于会话层协议,位于表示层与传输层之间。当防火墙后的客户端要访问外部的服务器时,就跟socks代理服务器连接。该协议设计之初是为了让有权限的用户可以穿过过防火墙的限制,使得高权限用户可以访问外部资源。经过10余年的时间,大量的网络应用程序都支持socks5代理。
相对于HTTP代理,sock5代理支持对udp协议的支持,支持多种用户身份验证方式和通信加密方式。
二.centos6部署dante代理服务器服务端
1.安装及配置dante
wget http://www.inet.no/dante/files/dante-1.4.2.tar.gz
tar -xvzf dante-1.4.2.tar.gz
cd dante-1.4.2
yum install gcc make -y ##编译必备
./configure && make && make install
cd
which sockd ##可以查看sockd命令存放位置
vi /etc/sockd.conf
internal: 172.25.254.7 port = 3128
external:
clientmethod: none
socksmethod: none
user.notprivileged: nobody
errorlog: /var/log/sockd.err
client pass { from: 0/0 to: 0/0 }
socks block { from: 0/0 to: lo }
socks pass { from: 0/0 to: 0/0 }
注:以client开头 以client开头的规则会先被检查 – 检查谁被允许连接到服务器(danted-server),谁不被允许连接到服务器。 其中,from 代表来源,to代表服务器监听的IP地址(因为服务器可能有多个IP,监听哪一个就是在这里配置的)。 注:没有client开头 没有client开头的规则会在后面被检查,大概什么时候呢?就是客户端把请求发给服务器的时候,用来检查客户端实际的请求。 其中,from仍然代表请求来源,和上面的规则一样;但是to在这里表示请求的目的服务器地址。
2.设置开机自启动以及启动脚本
vi sockd-start ##创建服务启动脚本
killall sockd > /dev/null 2>&1
/usr/local/sbin/sockd -D
vi sockd-stop ##创建服务停止脚本
killall sockd > /dev/null 2>&1
chmod +x sockd-start sockd-stop ##添加可执行权限
./sockd-start
ps aux |grep sockd
vi /etc/rc.local
/root/sockd-start
注:对于vps,如果配置了安全组,则必须打开相应的端口,允许外部访问
三.客户端配置
1.客户端需求 与http|代理不同的是,使用sockd5代理,浏览器需要强制设置dns远程解析,才能skip the gfw. 火狐浏览器可以实现这一功能,其他的浏览器需要第三方工具才能实现。 、
![]()