Linux搭建Socks5服务端

测试环境

  • CentOS release 6.5 64 bit

下载安装与编译

安装依赖

1
yum -y install gcc gcc-c++ automake make pam-devel openldap-devel cyrus-sasl-devel openssl-devel

安装最新版,可以从这里获取最新版 ==> 官方网站

目前我的最新版是 3.8.9-8 ,使用 wget 下载:

1
wget https://ncu.dl.sourceforge.net/project/ss5/ss5/3.8.9-8/ss5-3.8.9-8.tar.gz

解压编译

1
2
3
4
5
tar zxvf ./ss5-3.8.9-8.tar.gz
cd ss5-3.8.9
./configure
make
make install

配置与使用

####设置开机启动

1
2
3
chmod +x /etc/init.d/ss5
chkconfig --add ss5
chkconfig --level 345 ss5 on

修改访问控制配置

程序默认配置路径在 /etc/opt/ss5,修改配置来允许访问,编辑 /etc/opt/ss5/ss5.conf文件,找到如下位置:

1
2
3
4
# ///////////////////////////////////////////////////////////////////////////////////
# SHost SPort Authentication
#
auth 0.0.0.0/0 - -

上面的英文字段和下面的值一一对应,如果不需要认证,只用把auth前面的 # 号去掉即可。然后还需要修改一处:

1
2
3
4
# /////////////////////////////////////////////////////////////////////////////////////////////////
# Auth SHost SPort DHost DPort Fixup Group Band ExpDate
#
permit - 0.0.0.0/0 - 0.0.0.0/0 - - - - -

此处与上同理,去掉 permit 前面的# 号即可。

修改访问控制配置 (带权限认证)

这样配置的ss5是开放性的,任何能访问到你服务端口的人都能访问,如果你要设置账户授权访问,则可以限制使用者

具体设置授权访问的方法如下,同样在 /etc/opt/ss5/ss5.conf 文件中找到上面两处,

1
2
3
4
# ///////////////////////////////////////////////////////////////////////////////////
# SHost SPort Authentication
#
auth 0.0.0.0/0 - -

看到后面又一个 Authentication 字段,下面对应了一个 - ,这里将横杠改成 u 即可,修改后如下:

1
2
3
4
# ///////////////////////////////////////////////////////////////////////////////////
# SHost SPort Authentication
#
auth 0.0.0.0/0 - u

然后还有第二处:

1
2
3
4
# /////////////////////////////////////////////////////////////////////////////////////////////////
# Auth SHost SPort DHost DPort Fixup Group Band ExpDate
#
permit - 0.0.0.0/0 - 0.0.0.0/0 - - - - -

同样 Auth 下面对应的横杠 - 改成 u ,修改后如下:

1
2
3
4
# /////////////////////////////////////////////////////////////////////////////////////////////////
# Auth SHost SPort DHost DPort Fixup Group Band ExpDate
#
permit u 0.0.0.0/0 - 0.0.0.0/0 - - - - -

这样就配置好了允许授权访问,然后你需要添加授权用户,此时操作 /etc/opt/ss5/ss5.passwd 文件,添加账户,一行一个,用空格隔开账号密码 /etc/opt/ss5/ss5.conf 内容如下:

1
2
admin passw0rd123
root pa55w0Rdl23

这里添加了两个授权账户,可供连接ss5服务时授权认证。

修改默认端口

ss5默认开启的代理端口时1080,这是一个常用的代理端口,经常会被一些黑客使用扫描器快速捕获到,我们可以通过修改默认端口的方式来隐藏ss5代理服务

修改默认端口的方法如下,编辑 vim /etc/sysconfig/ss5 文件:

1
2
# Add startup option here
SS5_OPTS=" -u root -b 0.0.0.0:9999"

去掉第二行前面的 # 井号主食 ,并将双引号中间的内容修改为上文中的配置,其中 9999 是修改后的代理端口,每次修改配置都需要重启ss5服务,使其生效。

启动、关闭 ss5 服务

启动服务

1
service ss5 start

关闭服务

1
service ss5 stop

查看运行状态

1
service ss5 status

重启服务

1
service ss5 restart

查看日志

1
tail -f /var/log/ss5/ss5.log

完。