Total Pageviews

Wednesday, 8 February 2012

linux vps下安装配置socks代理服务器程序-ss5(支持设置用户名和密码)

SOCKS协议

SOCKS5协议是一组由Internal工程工作小组(IETF)所开发出来的开放软件开放标准,用来处理网络安全的事宜。这个词不是英文字母缩写,而是一个与TCP/IP的socket端口有关的安全标准,作用于TCP/IP协议栈的应用层与传输层之间,处于OSI的7层标准模型的会话层,提供了会话层到会话层之间的安全方案,不受应用层变化的影响。
协议设计的目的是让高权限的用户穿过防火墙的限制访问外部资源,而一般用户则限制访问外部资源。当时设计者考虑到几乎所有使用TCP/IP通信的应用软件都使用socket(套接字,实际上是一组应用程序接口)完成底层的数据通信。为了方便软件开发者使用该协议,协议设计者就刻意对应了几组socket编程最经典的操作,并且将协议定名为SOCKS。SOCKS5是第五版,相对第四版作了大幅度的增强。首先,它增加了对UDP协议的支持;其次,它可以支持多种用户身份验证方式和通信加密方式;最后,修改了SOCKS服务器进行域名解析的方法。

SOCKS5服务器

上层应用软件连接网络时,如果使用的是TCP/IP协议,而且支持SOCKS5的接口,那么就可以使用代理服务器访问网络。代理服务器实现了SOCKS5的具体协议,本文选择的Linux下广泛使用的ss5代理服务器。Windows下有nec的sock5代理服务器也很好,另外还有CCproxy。

安装过程

1、准备安装环境

由于本人使用的是一台新的VPS服务器,基本编译环境都没有,需要首先安装:
apt-get install build-essential
apt-get install gcc
  • 1
  • 2
上述环境安装好之后,可以测试一下gcc是否安装完成:
gcc --version
  • 1

2、安装ss5服务器

首先需要下载ss5服务器源码:
wget -c http://sourceforge.net/projects/ss5/files/ss5/3.8.9-6/ss5-3.8.9-6.tar.gz/download
  • 1
直接安装ss5服务器会报如下的错误:
checking for security/pam_misc.h... no
configure: error: *** Some of the headers weren't found ***
  • 1
  • 2
因此需要安装pam开发包,Ubuntu、Debian、Mint使用:
apt-get install libpam0g-dev
  • 1
CentOS、Fedora或者RHEL使用:
yum install gcc pam-devel
  • 1
之后还需要安装ldap开发包,否则make阶段会出错:
SS5OpenLdap.c:29:18: fatal error: ldap.h: No such file or directory
  • 1
安装ldap包:
apt-get install libldap2-dev
  • 1
之后make的时候还会出现openssl/md5.h不存在的错误,因此还需要安装:
apt-get install openssl
apt-get install libssl-dev
  • 1
  • 2
这样安装完成之后,进行make,到最后会发现出现链接错误:
undefined reference to `MD5_Init'
  • 1
经过查找资料,了解到这个是环境变量的问题,解决办法如下:
如果在编译时提示undefined reference to `MD5_Final’之类的信息,需要在运行configure前,执行export EXTRA_LIBS=’-lcrypto’
尝试上述办法之后,make && make install就安装完成。

配置

默认情况下配置文件在/etc/opt/ss5文件夹下,默认使用的是1080端口,任何用户都可以连接,需要配置之后来控制权限。
对于ss5.conf文件配置使用用户名密码验证,同时可以添加指定ip的访问规则:
auth  0.0.0.0/0 - u
permit u 0.0.0.0/0 - 0.0.0.0/0 - - -....
  • 1
  • 2
在ss5.passwd文件中设置用户名和密码,格式为:
user1  password1
  • 1
最后还可以修改默认端口。在/etc/rc.d/init.d/ss5文件中启动的命令后添加端口号:
daemon /usr/sbin/ss5 -t $SS5_OPTS -b 0.0.0.0:port
  • 1
在/etc/sysconfig/ss5中将SS5_OPTS取消注释:
SS5_OPTS=” -u root”
  • 1
最后启动服务器,也可以加入到开机自启动的服务中:
/etc/rc.d/init.d/ss5 start

chkconfig --add ss5
chkconfig --level 345 ss5 on
  • 1
  • 2
  • 3
  • 4

客户端

SOCKS5代理需要在本地安装客户端,个人的本地电脑是Windows,推荐使用Proxifier,非常好用,可以指定应用程序上网。

from https://blog.csdn.net/u010487568/article/details/49700831
------

Socks5服务器安装指南 

Socks是个电路级网关,由David
Koblas在1990年开发。此后,就一直作为Internet RFC(Request for
Comments)中的开放标准。Socks在协议栈的TCP层上运行。Socks代理只是简单地传递数据包,而不必关心是何种应用协议(比如FTP、HTTP和NNTP请求)。

文档分为两部分,第一部分为 ss5服务器(Socks5)的配置方法.照抄即可使用.
后面的是配置文件详解.和应用举例.
# 下载ss5服务器锁需要的包
yum install openldap-devel.x86_64 cyrus-sasl-devel.x86_64 pam-devel.x86_64
# 下载并解压
wget http://sourceforge.net/projects/ss5/files/ss5/3.8.9-6/ss5-3.8.9-6.tar.gz/download
tar zxf ss5-3.8.9-6.tar.gz
# 编译并安装
# 注意: ./configure 增加安装路径的参数无效 是官方bug
# 通过修改 Makefile 文件,来指定安装目录
cd ss5-3.8.9
./configure
修改Makefile 文件
make
make install
# 添加配置文件 user 和 pass 自行修改
echo -ne "user pass" > /etc/opt/ss5/ss5.passwd
mv /etc/opt/ss5/ss5.conf /etc/opt/ss5/ss5.conf.bak
echo -ne "set\tSS5_DNSORDER\n" >> /etc/opt/ss5/ss5.conf
echo -ne "set\tSS5_CONSOLE\n" >> /etc/opt/ss5/ss5.conf
echo -ne "set\tSS5_SVR\n" >> /etc/opt/ss5/ss5.conf
echo -ne "set\tSS5_VERBOSE\n" >> /etc/opt/ss5/ss5.conf
echo -ne "set\tSS5_DEBUG\n" >> /etc/opt/ss5/ss5.conf
echo -ne "auth 0.0.0.0/0 - u\n" >> /etc/opt/ss5/ss5.conf
echo -ne "permit - 0.0.0.0/0 - 0.0.0.0/0 - - - - -\n" >> /etc/opt/ss5/ss5.conf
# 将准备的服务文件增加执行权限
# 这个文件我就不发了 自行学习一下 有好处的
chmod +x /etc/init.d/ss5
# 加入开机自启并开启ss5服务
chkconfig --add ss5
chkconfig --level 345 ss5 on
service ss5 start
# 增加防火墙选项
iptables -A INPUT -p tcp -m tcp --dport 1080 -j ACCEPT
service iptables save
# 显示ss5状态
ss5srv show_connect

# Auth SHost SPort DHost DPort Fixup Group Band ExpDate
####### 以下为介绍和配置文件详解
Socks5。Socks是个电路级网关,由David
Koblas在1990年开发。此后,就一直作为Internet RFC(Request for
Comments)中的开放标准。Socks在协议栈的TCP层上运行。Socks代理只是简单地传递数据包,而不必关心是何种应用协议(比如FTP、HTTP和NNTP请求)。
Socks5代理支持TCP和UDP协议,而且还支持各种身份验证机制、服务器端域名解析等,socks5通过配置可以支持socks4。我们平时使用的Internet
Explorer、QQ等软件都支持socks代理设置。
Red Hat Linux本身并不带socks5的rpm软件包,但可以从网上下载:
http://ftp.falsehope.com/home/gomez/socks5/socks5-1.0r11-3.i386.rpm
我们主要通过socks5.conf
文件来配置socks5服务器。缺省路径为:/etc/socks5.conf。在/usr/doc/socks5-1.0r11/examples目录
下有socks5的配置示例(注意是/usr/doc/而不是/usr/share/doc/)。
§§ socks5.conf的配置选项
socks5.conf通常由以下几个方面的内容构成:
-ban host:定义拒绝服务的客户列表
-authentication:定义Socks5服务器使用的用户认证方法
-interface:定义Socks5服务器绊定的ip地址和服务端口
-variables and flags:定义Socks5服务器运行的环境
-proxies:定义客户可以通过Socks5服务器访问的地址列表以及Socks5服务器访问这些地址的方法
-access control:定义Socks5服务器接受或拒绝客户连接的规则
下面我们分别来讲述这些条目对应的语法:
ban host
语法:ban source-host source-port
说明:Socks5服务器将拒绝接受来自source-host:source-port的客户连接。
authentication
语法:auth source-host source-port auth-methods
说明:对于来自source-host:source-port的客户连接,Socks5服务器将使用
auth-methods所定义的用户认证方法。对于没有定义认证方法的客户将使用任何可以使用的认证方法。
interface
语法:interface hostpatern portpattern interface-address
说明:来自source-host:source-port的客户连接由interface-address处理;目的地址为source-host:source-port的客户连接由Socks5
代理服务器从 interface-address发出连接请求。
variables
语法:set variable value
说明:定义Socks5运行参数,Socks5有以下一些常用的运行参数:
SOCKS5_BINDINTFC host:port
host:port
指定socks5运行的主机和端口号,用于代替缺省的端口。忽略时,socks5用0.0.0.0作为主机值。
SOCKS5_CONFFILE filename
Filename
指定配置文件。在许多系统中,缺省是/etc/socks5.conf。在运行socks5之前,设置这个变量。如果有多个socks5
daemon运行,为每个daemon使用不同的配置文件。
SOCKS5_DEMAND_IDENT
当客户没有响应ident
请求时,认证失败。使用SOCKS5_DEMAND_IDENT确认每个连接有一个关联的用户名。
SOCKS_ENCRYPT
如果可能的话,请求下一个socks5进程加密数据。SOCKS5_ENCRYPT
仅仅在编译socks5时包括了GSS-API认证时,才有意义。
SOCKS5_FORCE_ENCRYPT
当认证方式支持加密时,强迫客户加密数据。
SOCKS5_IDENTFILE filename
Filename指定存储ident信息的文件名。在许多系统中,缺省是/tmp/socks5.ident。当有多个socks5
daemon运行时,SOCKS5_IDENTFILE非常有用。
SOCKS5_MAXCHILD val
val指定同时存在的最大子进程数。Socks5预设为64。可以降低预设置。不能超过64。Socks5运行在线程模式时,忽略此参数。当运行在oneshot或inetd模式时,此参数不发生作用。
SOCKS_NOIDENT
忽略ident请求。当客户机没有运行identd时,使用SOCKS5_NOIDENT将降低超时值。
SOCKS_NOINTCHK
请求下一个socks5进程执行没有完整检查的代理请求。只有在编译时加入GSS-API认证时,SOCKS5_NOINTCHK才发生作用。
SOCKS_NONETMASKCHECK
指示daemon忽略检查主机的子网掩码。缺省时,daemon检查掩码,如果在同一子网时,在检查配置文件之前,直接连接。
SOCKS5_REVERSEMAP
总是试图影射地址到主机名。缺省时,socks5只有当主机名或域名在配置文件中使用时才影射。设置后,log文件将纪录主机名,这将降低性能。
SOCKS5_SERVICENAME
总是影射端口号到服务名。缺省时,socks5只有当服务名在配置文件中使用时才影射。设置后,log文件将纪录服务名,这将降低性能。
SOCKS5_PASSWD [password]
当socks5 daemon连接到其它socks服务器时,如果采用Username/Password
认证,用它来指定密码。
SOCKS5_PIDFILE filename
指定存储socks5进程ID的文件名。Socks5缺省存贮PID在/tmp/socks5.pid。你可以用—bindintfc参数或设置SOCKS5_BINDINTFC环境变量运行socks5在不同于缺省端口的其它端口。当运行在不同于缺省端口的其它端口时,socks5存贮PID在/tmp/socks5.pid-port。
SOCKS5_PWDFILE filename
指定密码文件。在许多系统中,缺省是/etc/socks5.passwd。
SOCKS5_TIMEOUT minutes
指定连接停顿最长时间。超过最大值后,socks5断开连接。忽略此值时,缺省是15。
SOCKS5_UDPPORTRANGE port1-port2
指定一个Socks5用来发送UDP包的UDP端口范围。
SOCKS5_USER [user id]
当socks5 daemon连接到其它socks
server时,如果采用Username/Password认证,用此变量指定用户名。
SOCKS5_V4SUPPORT
缺省时,socks5只接受SOCKS5协议(rfc 1928)的请求。设此变量后,socks5将接受SOCKS
V4 协议的请求。
proxies
语法:proxy-type dest-host dest-port proxy-list
说明:当客户请求的目的为dest-host:dest-port时,Socks5将使用proxy-list中的
代理服务器请求数据。
access control
语法:permit auth cmd src-host dest-host src-port dest-port [user-list]
deny auth cmd src-host dest-host src-port dest-port [user-list]
说明:通过这两条语句所定义的规则来进行客户访问控制。
我们再对以上语法作进一步的解释:
host的表示方法:
-:表示任意主机
n1.:表示n1.0.0.0/255.0.0.0
n1.n2.:表示n1.n2.0.0/255.255.0.0
n1.n2.n3.:表示n1.n2.n3.0/255.255.255.0
.domain.name:表示主机名以.domain.name结尾的主机
some.domain.name:表示主机名为some.domain.name的主机
port的表示方法
-:表示任意端口
service name:用/etc/service中定义的服务名来表示,如telnet
port number:直接指定数字端口,如80
[port_start,port_end]:指定一个端口范围,如[1024,6000]表示从端口1024到6000,(1024,6000)表示从端口1025到5999
auth的值
n:无用户认证
u:使用username/password用户认证方法
k:使用Kerberos用户认证方法
-:使用任何可用的用户认证方法
cmd的值
-:任何命令
c:connect
b:bind
u:UDP
p:ping
t:traceroute
user的值
-:任何用户
proxy的值
socks5: Socks 5
socks4: SOCKS 版本4
noproxy:不使用代理而直接连接
server的值
host: 指定服务器的hostname,使用缺省服务端口
host:port:指定服务器的hostname和该服务的监听端口
下面是一些例子:
auth – – u
说明:对所有的客户连接都使用username/password用户认证方法
permit u – 192.168.1. – – –
说明:允许来自192.168.1.的任何经过用户认证的连接
更多的例子请参考以下资源:http://www.socks.nec.com/reference/socks5.html
§§ Socks5一些常见问题的说明
Windows客户端的配置
有些Windows的应用程序,如IE、QQ等
等本身就支持SOCKS代理服务器,但是更多的Windows应用程序是不提供对SOCKS代理服务器的支持的,这时候我们就可以利用一些相应的工具来使
得这些应用程序可以使用SOCKS代理服务器。其中最常用的工具sockscap,可以从以下的网址下载:http://www.socks.nec.com/cgi-bin/download.pl
用户认证问题
Socks5已经具有了用户认证功能。诸如IE等应用程序虽然提供了对SOCKS代理服务器的支持,但是并不能进行用户认证,这种情况下我们也只能用sockscap等工具来提供IE的用户认证接口。需要注意的是,SOCKS的认证过程并不会象squid一样弹出认证窗口。
运行模式问题
Socks5具有以下几种运行模式:
standalone:这是Socks5缺省的运行模式
preforking:该模式适合服务器资源有限的情况,因为我们可以事先指定运行的子进程数。可以用-p选项指定SOCKS以preforking模式运行。
inetd:和telnet等服务一样通过inetd超级服务器运行SOCKS
threaded:在linux平台上,我们推荐使用该模式运行SOCKS,这样能获得最佳性能。
超时问题
默认的,在一个客户会话空闲超过15分钟后,该会话将被断开,可以使用SOCKS5_TIMEOUT变量改变该值。
绑定失败问题
有时候会出现Bind failed for xxx.xxx.xxx.xxx:…的提示,通常这是因为SOCKS所绑定的端口已被其他程序所使用的缘故,可以通过更改该端口的值来解决这类问题。
§§ 一个简单的socks5配置文件
下面给出一个socks代理的简单配置示例,该配置允许192.168.100.0/255.255.255.0这个网络的用户使用socks代理,但禁止通过socks代理访问ftp服务:
# variables and flags
set     SOCKS5_NOIDENT
#超时设置为15分钟
set     SOCKS5_TIMEOUT 15
#支持socks4
set     SOCKS5_V4SUPPORT
# access control
deny – – – – – 20
deny – – – – – 21
permit – – 192.168.100.0/255.255.255.0 – – -

from http://linux.it.net.cn/m/view.php?aid=22395
-----------------------------------------------------

首先用putty.exe登录你的linux vps.然后:
1.配置编译环境
yum -y install gcc automake make
2.安装socks5必要的包
yum -y install pam-devel openldap-devel cyrus-sasl-devel
3.下载,编译安装ss5(socks5)
wget http://www.linuxso.com/uploads/soft/101018/ss5-3.6.1-1.tar.gz 或者
wget http://sourceforge.net/projects/ss5/files/latest/download?source=files
(另外一个下载地址 http://www.box.com/s/fbyt7zsbbkxrvjp0zulj)
tar zxvf ss5-3.6.1-1.tar.gz
cd ss5-3.6.1
./configure
make
make install
#启动ss5服务
/etc/init.d/ss5 start
添加ss5到服务中,并随机启动
chkconfig --add ss5
chkconfig ss5 on
ss5 默认使用1080端口,并允许任何人使用。
我们可以修改ss5的配置文件 /etc/opt/ss5/ss5.conf中的如下内容,进行用户认证:
#       SHost           SPort           Authentication
#
auth    0.0.0.0/0               -              -

#       SHost           SPort           Authentication
#
auth    0.0.0.0/0               -              u
(把第二个小短横改为u)
然后在 /etc/opt/ss5/ss5.passwd 中添加用户名和密码 如:
testuser testpw
重启ss5服务,以使修改生效:
/etc/init.d/ss5 restart
这一次配置成功了。注意最好在32位系统下安装,在64位系统下安装容易出错。
另外不要安装最新版,新版容易出错.建议安装3.6.1-1版.

相关帖子:http://briteming.blogspot.in/2015/12/socks5ss5.html
然后,你就可关闭putty.exe,运行tor browser,在新版的tor vidalia 程序中,点击“设置中继服务器”-“网络”-勾选“我使用代理服务器连接到网络”-address栏填写你的vps的主机名或ip,端口填写你的socks server的端口:1080
username和password栏填写你设置的用户名和密码。
type选择socks 5,不勾选“我的防火墙只允许我连接到特定端口”和“我的isp阻止与tor网络的连接",
然后点击“确定”。这样通过你建立的socks 5代理,即可很顺利的连接上tor网络,设置浏览器的socks5代理为127.0.0.1:9050,从而可用tor顺利的翻墙了。
----------------------------------------------------------
Install and configure ss5 socks proxy with simple authentication

SS5 is a high performance socks proxy server implementing SOCK4 and SOCKS5 protocols. This step-by-step guide describes installation and configuration of SS5 with user/password authentication on a RHEL/CentOS server.
1. Download the latest source rpm from sourceforge.net.
wget http://downloads.sourceforge.net/ss5/ss5-3.8.7-1-MYSQL-DEBUG.src.rpm
2. Build the source rpm.
This requires the rpmbuild tool provided by rpm-build package. Also, ss5 requires openldap-devel, pam-devel and openssl-devel deveopment packages. Install these packages with yum:
yum install gcc rpm-build openldap-devel pam-devel openssl-devel mysql-devel libgssapi-devel -y (for 32 bit Linux)
yum install gcc.x86_64 rpm-build.x86_64 openldap-devel.x86_64 pam-devel.x86_64 openssl-devel.x86_64 mysql-devel.x86_64 libgssapi-devel.x86_64 -y (for 64 bit Linux)
Now build ss5 source rpm to create the binary rpm package:
rpmbuild --rebuild ss5-3.8.7-1-MYSQL-DEBUG.src.rpm
3. Install SS5 rpm package
After building, the rpm package will be created in /usr/src/redhat/RPMS/x86_64/ (for 64 bit Linux) or in /usr/src/redhat/RPMS/i386/ (for 32 bit Linux). You can install the rpm using following command:
rpm -ivh /usr/src/redhat/RPMS/x86_64/ss5-3.8.7-1.x86_64.rpm (for 64 bit Linux)
rpm -ivh /usr/src/redhat/RPMS/i386/ss5-3.8.7-1.i386.rpm (for 32 bit Linux)
4. Run SS5 as root and change the port to 9999 (default port is 1080)
Edit /etc/init.d/ss5 and put following lines at the top after shabang:
export SS5_SOCKS_PORT=9999
export SS5_SOCKS_USER=root

You can use any available port you want.
5. User/password authentication
SS5 configuration file is /etc/opt/ss5/ss5.conf. The ‘auth’ directive sets the authentication policy.
For no authentication,
auth 0.0.0.0/0 – –
For user/pass auth,
auth 0.0.0.0/0 – u
The user/password pairs are stored in /etc/opt/ss5/ss5.passwd. Make sure that this file is readable only by root:
chown root.root /etc/opt/ss5/ss5.passwd
chmod 750 /etc/opt/ss5/ss5.passwd
In /etc/opt/ss5/ss5.passwd, specify user and pass separated by a space and one user/password per line.
E.g.
user1 pass1
user2 pass2
6. Permission
Allow all hosts to connect:
permit – 0.0.0.0/0 – 0.0.0.0/0 – - – - -
7. Start ss5
service ss5 start
If you see an error message like the following,
Can’t create pid file /var/run/ss5/ss5.pid
Can’t unlink pid file /var/run/ss5/ss5.pid
create the directory /var/run/ss5 and start ss5 again
from http://lijeesh.in/install-and-configure-ss5-socks-proxy-with-simple-authentication.html
-----------------------------------------------------------------------------

Setup SS5 Socks Proxy

Install and configure ss5 socks proxy with simple authentication


SS5 is a high performance socks proxy server implementing SOCK4 and SOCKS5 protocols. This step-by-step guide describes installation and configuration of SS5 with user/password authentication on a RHEL/CentOS server.

1. Download the latest source rpm from sourceforge.net.

wget http://downloads.sourceforge.net/ss5/ss5-3.7.9-2.src.rpm

2. Build the source rpm.

This requires the rpmbuild tool provided by rpm-build package. Also, ss5 requires openldap-devel, pam-devel and openssl-devel deveopment packages. Install these packages with yum:

yum install rpm-build openldap-devel pam-devel openssl-devel libgssapi-devel -y (for 32 bit Linux)
yum install rpm-build.x86_64 openldap-devel.x86_64 pam-devel.x86_64 openssl-devel.x86_64 libgssapi-devel.x86_64 -y (for 64 bit Linux)

Now build ss5-3.7.9-2.src.rpm and create the rpm package:

rpmbuild –rebuild ss5-3.7.9-2.src.rpm

3. Install SS5 rpm package

After building, the rpm package will be created in /usr/src/redhat/RPMS/x86_64/ (for 64 bit Linux) or in /usr/src/redhat/RPMS/i386/ (for 32 bit Linux). You can install the rpm using following command:

rpm -ivh /usr/src/redhat/RPMS/x86_64/ss5-3.7.9-2.x86_64.rpm (for 64 bit Linux)
rpm -ivh /usr/src/redhat/RPMS/i386/ss5-3.7.9-2.i386.rpm (for 32 bit Linux)

4. Run SS5 as root and change the port to 9999 (default port is 1080)

Edit /etc/init.d/ss5 and put following lines at the top after shabang:

export SS5_SOCKS_PORT=9999
export SS5_SOCKS_USER=root

You can use any available port you want.

5. User/password authentication

SS5 configuration file is /etc/opt/ss5/ss5.conf. The ‘auth’ directive sets the authentication policy.

For no authentication,
auth 0.0.0.0/0 – –

For user/pass auth,
auth 0.0.0.0/0 – u

The user/password pairs are stored in /etc/opt/ss5/ss5.passwd. Make sure that this file is readable only by root:

chown root.root /etc/opt/ss5/ss5.passwd
chmod 750 /etc/opt/ss5/ss5.passwd

In /etc/opt/ss5/ss5.passwd, specify user and pass separated by a space and one user/password per line.

E.g.
user1 pass1
user2 pass2

6. Permission

Allow all hosts to connect:

permit – 0.0.0.0/0 – 0.0.0.0/0 – – – – -

7. Start ss5

service ss5 start

from http://www.linuxexpert.ro/Linux-Tutorials/setup-ss5-socks-proxy.html
----------------
1。先在北大天网搜索一下socks5的安装包,发现一大堆,最新版本是socks5-v1.0r11.tar.gz,于是下载到我的RH9的服务器上。 
2。解压缩软件包 
#tar xvfz socks5-v1.0r11.tar.gz  
3.开始编译 
#cd socks5-v1.0r11  
#./configure --with-threads 
#make  
#make install  

4.建立/etc/socks5.conf,其实在软件包里已经有现成的examples 
#cd examples 
#cp socks5.conf.singlehomed /etc/socks5.conf (我们挑选一个最简单的配置文件) 
默认配置就是 
# A Socks5 Config file for a normal, single homed server 
permit - - - - - - 
这个配置文件是允许任何人都可以使用这个socks5代理,并不需要验证 
如果想限制只是某个IP段(192.168.0.0/255.255.255.0)可以访问,可以改成 
permit - - 192.168.0. - - - 
或者只允许某个IP(192.168.0.10)可以访问使用,可以改成 
permit - - 192.168.0.10 - - - 
5.ok 运行一下socks5 -t 启动socks5服务,然后用QQ测试一下代理是否生效,记住默认端口是1080 
反正我是在FTP软件和QQ上试了 都没问题。 
6.如果要停止socks5,只要运行stopsocks -KILL就行,socks5就会停止! 
7.使用非默认端口:如果你想让socks5服务启动的时候不启动默认监听端口1080,比如为1234,我们可以运行如下命令 
socks5 -b 1234 -t 当然你关掉这个服务,就必须用下面的命令 stopsocks -p 1234 -KILL  

8.我们来深入配置一下socks5.conf,使socks5使用用户验证机制 
要使用用户验证,首先要建立/etc/socks5.pwsswd文件 
内容为:(userA代表用户名。passwdA代表用户userA的密码) 
#/etc/socks5.passwd  
userA passwdA  
userB passwdB  
userC passwdC 
然后修改/etc/socks5.conf 
添加下列语句 
auth - - u 
或者把: 
auth - - -改成auth - - u 
添加: 
把默认permit - - - - - - 改成permit u - 192.168.0. - - -  
即允许来自192.168.0.0/255.255.255.0网段的任何经过用户认证的连接  

如果你不想把密码文件存在默认的/etc/socks5.passwd里。想存在自定义的文件,比如/etc/qq.passwd 
那就得修改/etc/socks5.conf.添加一项参数 
set SOCKS5_PWDFILE /etc/qq.passwd  

ok!重启一下服务,这时如果不输入正确的用户名和密码是使用不了socks5代理服务器的,输入正确的用户名和密码便可使用。 
以上说的参数,大家可以结合使用,比如限制某个IP段使用socks5服务,而且要使用用户名验证.

from http://www.chinaunix.net/old_jh/38/319872.html
------

安装配置ss5

系统环境:以CentOS7为例
提前准备:官网下载Socks5 tar包
版本:ss5-3.8.9-8.tar.gz
链接:
http://sourceforge.net/projects/ss5/files/
http://ss5.sourceforge.net/
官方实例
http://ss5.sourceforge.net/examples.htm
wget http://downloads.sourceforge.net/project/ss5/ss5/3.8.9-8/ss5-3.8.9-8.tar.gz

1、安装依赖开发库

yum install pam-devel openldap-devel openssl-devel

2、解压tar包并进行编译安装

tar -zxvf ss5-3.8.9-8.tar.gz #注:解压后得到的目录是ss5-3.8.9

cd ss5-3.8.9
./configure
注:默认是1080端口,如果想改端口的话,./configure –with-defaultport=10086
make
make install
典型的默认编译三部曲,没有什么好说的

3、修改配置文件

ss5 默认使用1080端口,并允许任何人使用
在这里主要是修改对ss5开启用户验证

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 – – – – –

开启用户验证:

要有用户验证的才通过
其它还有许多细致和更严瑾的配置,这里就不多作研究了。
大致上看conf文件上的注释也能理解。

4、添加认证用户

 vim /etc/opt/ss5/ss5.passwd
##用户  密码
test  123456

5、启动Socks

默认情况ss5文件没有执行权限,所以有两种方法可以做到启动效果,一种是chmod加上x执行权限:

 chmod u+x /etc/rc.d/init.d/ss5

另外一种是
在/etc/sysconfig/ss5中将SS5_OPTS取消注释:

SS5_OPTS=” -u root”

不取消注释的话运行ss5用户的是nobody,后面出于安全考虑,可能这里指定自己新建的用户好些。

还有就是你想运行使用不是默认的1080端口的话还可以这样:

/usr/sbin/ss5 -t $SS5_OPTS -u root -b 0.0.0.0:10086

-u 指定运行的用户(当然后面不建议直接用root)、-b 指定监听网卡和端口.

又或者修改环境变量
以 root 身份运行 SS5 并修改端口为 8899 (默认端口 1080)
修改 /etc/init.d/ss5 并在文件顶部的 #!/bin/sh 之后添加下面的代码:

export SS5_SOCKS_PORT=10086
export SS5_SOCKS_USER =root

开机启动ss5

chkconfig --add ss5 //可选加入开机启动
chkconfig --level 345 ss5 on //可选启用开机启动
systemctl restart ss5.services  #centos7是用systemctl来启动服务的

至此,SS5就可以使用了。

--------------------

https://github.com/wyx176/Socks5
---------------------
相关帖子:https://briteming.blogspot.com/2015/12/socks5ss5.html