SS5 是高性能的 SOCKS 代理服务器,支持 SOCK4 和 SOCKS5 协议。下面的安装指南详细描述了如何在 CentOS 6.x服务器上安装和配置SS5,运行多个 ss5 进程来绑定不同端口到多个IP地址 ,以及设置用户名/密码认证的方法。本文以1个C段地址(192.168.5.0/24)为例,演示如何在CentOS上面架设多IP Socket5代理服务器,debian系统配置方式也类似,在此不在重复,另外,本文档不是很适合Linux初学者阅读,初学者如有问题,可以给我留言!

1. 最小化安装CentOS6版本,然后安装ss5编译必须的组件
yum install wget vim automake make gcc openldap-devel pam-devel openssl-devel

2. 从 sourceforge.net 下载最新的SS5源码,然后编译源码,完成ss5安装
wget http://jaist.dl.sourceforge.net/project/ss5/ss5/3.8.9-8/ss5-3.8.9-8.tar.gz
tar vzxf  ss5-3.8.9-8.tar.gz 
cd ss5-3.8.9
./configure 
make 
make install
如果编译有错误,请自己检查第一步,是否少安装了某些依赖包,或者自己查看编译错误日志,自行补齐相关头文件

3. 给centos配置多IP地址(192.168.5.2-253)
[root@test ~]# cat ip.sh   
#!/bin/bash

for((i=2;i<=254;i++));do /sbin/ip address add 192.168.5.$i/24 dev eth1;done
[root@test ~]# ./ip.sh
配置结果可以通过ip addr命令查看,正确结果如下:
    eth1: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN qlen 1000
    link/ether 00:0c:29:d9:b1:ad brd ff:ff:ff:ff:ff:ff
    inet 192.168.5.2/24 scope global eth1
    inet 192.168.5.3/24 scope global secondary eth1
    inet 192.168.5.4/24 scope global secondary eth1
    ………………………………………………………..
    inet 192.168.5.253/24 scope global secondary eth1
    inet 192.168.5.254/24 scope global secondary eth1
[root@test ~]#

4. 按照IP地址分布创建用户,253个IP 对应253个用户
[root@test ~]# cat user.sh
#!/bin/bash
for ((i=2, j=1002; i <= 254 ; i++, j=j+1))
do
        /usr/sbin/useradd socks$j -u $j -M -s /dev/null
done
[root@test ~]#
[root@test ~]# ./user.sh
配置结果可以通过cat /etc/passwd查看,正确结果如下:
[root@test ~]# cat /etc/passwd
root:x:0:0:root:/root:/bin/bash
………………………………….
sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin
socks1002:x:1002:1002::/home/socks1002:/dev/null
socks1003:x:1003:1003::/home/socks1003:/dev/null
…………………………………………………………
socks1253:x:1253:1253::/home/socks1253:/dev/null
socks1254:x:1254:1254::/home/socks1254:/dev/null
[root@test ~]#

5. 配置iptables的mangle链及POSTROUTING链,把用户、UID和IP进行关联,确保最后每个IP都独立对外提供代理服务
[root@test ~]# cat nat-mangle.sh
#!/bin/bash
iptables -t mangle -F OUTPUT
for ((i=2, j=1002; i <= 254 ; i++, j=j+1))
do
        iptables -t mangle -A OUTPUT -m owner --uid-owner $j -j MARK --set-mark $j
done
[root@test ~]# ./nat-mangle.sh
以上配置实现了用户和uid的关联,配置结果可以通过iptables -nvL -t mangle查看,正确结果如下:
Chain OUTPUT (policy ACCEPT 1418 packets, 286K bytes)
pkts bytes target     prot opt in     out     source               destination        
    0     0 MARK       all  --  *      *       0.0.0.0/0            0.0.0.0/0           owner UID match 1002 MARK set 0x3ea
    0     0 MARK       all  --  *      *       0.0.0.0/0            0.0.0.0/0           owner UID match 1003 MARK set 0x3eb 
    ……………………………………………………………………………………………………………………………. 
    0     0 MARK       all  --  *      *       0.0.0.0/0            0.0.0.0/0           owner UID match 1253 MARK set 0x4e5
    0     0 MARK       all  --  *      *       0.0.0.0/0            0.0.0.0/0           owner UID match 1254 MARK set 0x4e6

Chain POSTROUTING (policy ACCEPT 1418 packets, 286K bytes)
pkts bytes target     prot opt in     out     source               destination        
[root@test ~]#

以下配置实现了uid和IP的关联,从而最终实现了用户和IP的关联 
[root@test ~]# cat snat.sh
#!/bin/bash
iptables -t nat -F POSTROUTING

for ((i=2, j=1002; i <= 254 ; i++, j=j+1))
do
       iptables -t nat -A POSTROUTING -m mark --mark $j -j SNAT --to 192.168.5.$i
done
[root@test ~]#./snat.sh
配置结果可以通过iptables -nvL -t nat查看,正确结果如下:
[root@test ~]# iptables -nvL -t nat
Chain PREROUTING (policy ACCEPT 551 packets, 95022 bytes)
pkts bytes target     prot opt in     out     source               destination

Chain POSTROUTING (policy ACCEPT 2 packets, 142 bytes)
pkts bytes target     prot opt in     out     source               destination        
   17  1110 SNAT       all  --  *      *       0.0.0.0/0            0.0.0.0/0           mark match 0x3ea to:192.168.5.2
    0     0 SNAT       all  --  *      *       0.0.0.0/0            0.0.0.0/0           mark match 0x3eb to:192.168.5.3 
………………………………………………………………………………………………………………………….
    0     0 SNAT       all  --  *      *       0.0.0.0/0            0.0.0.0/0           mark match 0x4e5 to:192.168.5.253
    0     0 SNAT       all  --  *      *       0.0.0.0/0            0.0.0.0/0           mark match 0x4e6 to:192.168.5.254

Chain OUTPUT (policy ACCEPT 19 packets, 1252 bytes)
pkts bytes target     prot opt in     out     source               destination        
[root@test ~]#

6. 配置socket5代理的认证方式及认证密码(非匿名方式,匿名方式请自行修改配置文件) 
[root@test ~]# cat /etc/opt/ss5/ss5.conf  
auth             0.0.0.0/0       -       u
permit -        0.0.0.0/0       -       0.0.0.0/0       -       -       -       -       -
[root@test ~]#
以上配置结果为允许所有非匿名用户使用ss5代理,其它配置请自行研读ss5.conf配置说明

[root@test ~]# cat /etc/opt/ss5/ss5.passwd
test test
[root@test ~]#
以上配置结果为允许用户名test,密码test的用户使用ss5代理

7. 启动/重启ss5代理并修改端口为5555, 把IP和用户进行关联(默认端口 1080)
[root@test ~]# cat ss5.sh
#!/bin/bash
killall -9 ss5
for ((i=2, j=1002; i <= 254 ; i++, j=j+1))
do
       /usr/sbin/ss5 -t -m -b 192.168.5.$i:5555 -u socks$j
#      /usr/sbin/ss5 -t    -b 192.168.5.$i:5555 -u socks$j
done
[root@test ~]#./ss5.sh
启动结果可以通过ps –ef | grep ss5查看,正确结果如下: 
[root@test ~]# ps -ef | grep ss5
1002      6602     1  0 18:06 ?        00:00:00 /usr/sbin/ss5 -t -m -b 192.168.5.2:5555 -u socks1002
1003      6605     1  0 18:06 ?        00:00:00 /usr/sbin/ss5 -t -m -b 192.168.5.3:5555 -u socks1003
…………………………………………………………………………………………………………………
1253      7357     1  0 18:06 ?        00:00:00 /usr/sbin/ss5 -t -m -b 192.168.5.253:5555 -u socks1253
1254      7359     1  0 18:06 ?        00:00:00 /usr/sbin/ss5 -t -m -b 192.168.5.254:5555 -u socks1254
root      7466  6564  0 18:09 pts/1    00:00:00 grep ss5
[root@test ~]#

8. 放开CentOS防火墙的5555端口 
执行命名“iptables -I INPUT 1 -m state --state NEW -m tcp -p tcp --dport 5555 -j ACCEP”T即可放开防火墙的5555端口,然后将以上命令加入/etc/rc.d/rc.local即可实现开机自动运行
注意千万不能执行命令services  iptables restart命令,会覆盖nat-mangle.sh脚本的执行结果!

9. 调整内核参数,优化性能,以实现4G内存的vps跑10万个socket5代理连接     
ulimit -SHn 10240
ulimit -SHs unlimited
echo 500000 >/proc/sys/net/nf_conntrack_max

10. 结束语

至此,一台高性能多IP的Sockt5代理服务器已配置完毕,如果想要不同IP地址绑定不同端口,请自行修改配置脚本即可,另外,请自行将各个配置脚本加入到启动脚本里面,实现重启后也能保持状态!由于本配置攻略不是为初学者准备的,配置过程中如有问题,请联系博主!

11.2015年圣诞再补充

通过以上方式配置的代理服务器的极限连接数是15万,如果需要50-100万并发连接数的S5代理需求请联系博主,新方式采用docker技术实现,在16G内存的配置上能达到单台70万并发,需要配置低,更高代理并发连接数(35w+)及对代理稳定性要求非常高等特殊需求的话,请私信给我即可。

12.2017年1月再补充

实现了动态多IP代理,支持ADSL多拨,服务器直接拨号,跳过ROS软路由,大大提升多拨效率!实现了代理转发,支持白名单代理再次转发,有特殊需求的可以联系我!



站群服务器用SS5 SOCKS5 配置多IP/多端口高性能代理服务器(16G内存主机支持超过100万并发S5代理)相关推荐

  1. 站群服务器用SK5 SOCKS5 配置多IP

    socks5 搭建 脚本 ** 不会的话 可以加好友 QQ1853479098 ** done [root@test ~]#./ss5.sh 启动结果可以通过ps –ef | grep ss5查看,正 ...

  2. 深度测评:RAKsmart美国站群服务器怎么样

    站群服务器就是针对网站群开发的一种服务器类型,所以它的主要功能也就是围绕着网站优化来的,特别是近年来百度算法的不断更新,做网站优化越来越难,所以很多站长自然而然的选择了站群服务器.很多站长使用同一个I ...

  3. 站长SEO优化排名选择什么样的站群服务器

    通常情况下站群服务器而言,应用较为多通常全是做网站运营seo层面的工作员.由于站群服务器得话,规定的IP是较为多,由于网站多得话,网站过多提升,将会造成网站被K.如今给大伙儿叙述一下下:如何挑选站群服 ...

  4. 站群服务器C段是什么

    A类地址:即1.0.0.0-126.255.255.255,用于大型的网络,节点数可达167万个. B类地址:即128.0.0.0-191.255.255.255用于中型网络,节点数可达65536个. ...

  5. 站群服务器和虚拟主机的区别,WordPress虚拟主机与站群服务器之间有什么关系 - WordPress 多站点站群...

    站群服务器指一个管理资源和资料并为使用者提供服务的计算机站群软件,站群服务器具有所有的许可权和功能的,能配置各种环境,当前配置环境一般是使用者自行去搭建,站群服务器提供商一般是不提供该服务的.因此这考 ...

  6. 什么是站群服务器?站群服务器与普通服务器的区别,为什么站长都爱用站群服务器

    什么是站群服务器? 想要知道什么是站群服务器,那么我们就必须知道目前服务器都有哪些种类,目前市面上的服务器分为:云服务器.高防服务器.站群服务器.虚拟主机,我们常说的VPS服务器包含了云服务器.高防服 ...

  7. 香港韩国日本美国站群服务器如果选择

    一提到做泛站群,蜘蛛池等专用的多IP服务器,大家首先想到的都是美国站群服务器.这主要是因为做SEO的人们最开始就是利用美国站群服务器来给网站做优化的.香港站群服务器后来也赶了上来,成为站群服务器当中使 ...

  8. 什么是站群服务器?站群服务器性能如何?

    为增进大家对站群服务器的认识,本文将对站群服务器的性能予以介绍. 高防服务器.云服务器.网站服务器等都是服务器的具体类型,而在服务器中,还有一种特别的存在,那就是站群服务器.为增进大家对站群服务器的认 ...

  9. 搭建站群应该如何选择站群服务器空间

    很多新手小白做操作站群排名这种黑帽SEO技术的时候经常会问到一个问题,那就是在搭建站群的时候该如何选择合适最佳的服务器空间,配置太高吧太贵,配置太低吧担心做到中途出现问题,比如网站访问速度慢啊,操作太 ...

  10. 站群可以用虚拟服务器吗,站群服务器是云服务器吗

    站群服务器,就是单独为一个网站或多个网站配置独立IP的一种服务器,又叫 站群,一般指同一个用户组建的多个网站,为了提升每个网站对搜索引擎的权重,单独为一个或几个网站配置一个独立的IP,这样做的目的是为 ...

最新文章

  1. java.io.FileNotFoundException: /storage/emulated/0/one.mp4 (Permission denied)
  2. word转pdf后公式出现乱码怎么办?
  3. Windows 中 FS 段寄存器
  4. mysql中 group_concat长度限制
  5. 无法连接到 recaptcha_汕头精巧的重载连接器报价行情,靠谱的重载连接器出厂价...
  6. bzoj3130 [SDOI2013]费用流 结论+二分答案+网络流检验
  7. Mysql 时间类型整理
  8. C++ IO库:cmd读写,字符串读写,文件读写,<<重载,标准输出
  9. Python(十六):标准库
  10. Ubuntu无法联网解决方案
  11. 什么是编程?为什么要编程?
  12. 属性加密技术及基于属性的访问控制技术
  13. w ndows无法连接到System,Windows无法连接到System Event Notification Service 服务
  14. 用HTML制作简单的个人介绍主页
  15. 华为Datacom认证介绍
  16. [GYCTF2020]Node Game
  17. 详解软件无线电(SDR)架构
  18. LED:视展VSD控制卡网口闪烁不能访问
  19. 从2022看2023年发展趋势
  20. 软件工程导论11-软件测试

热门文章

  1. 机器人学习-matlab四足机器人控制仿真
  2. MATLAB 2016b--神经网络工具箱中图形用户界面的使用
  3. 电子产品检验-检验中心
  4. 批量下载网页上ts视频文件(撸sir!你还在为下载小电影而苦恼吗?)
  5. java+js+html 实现webSocket广播及私聊
  6. CSDN如何上传gif图片
  7. 【CANdelaStudio编辑CDD】-0.1-如何对比两个CDD诊断描述文件
  8. 杂文笔记(一):博弈论在网络安全中的应用
  9. c++ 工厂模式简介和应用场景
  10. Java 判断输入的是否为元音字母