站群 多IP 搭建SOCKS5 sk5服務器


安裝SS5

有疑問可以聯系Q1853479098

```

最小化安裝CentOS7版本,然后安裝ss5編譯必須的組
yum install wget vim automake make gcc openldap-devel pam-devel openssl-devel
從 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
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地址綁定不同端口,請自行修改配置腳本即可,另外,請自行將各個配置腳本加入到啟動腳本里面,實現重啟后也能保持狀態!由於本配置攻略不是為初學者准備的,配置過程中如有問題,請聯系我!

```

可以成功啟動后,簡單修改下配置文件,使其需要進行身份驗證。如果提示vim不存在則可以使用vi編輯器,或使用“yum install -y vim”安裝后再執行。

找到對應行將“#”刪除,同時在“auth”一行末尾Authentication列將“-”修改為“u”,“permit”一行中的Auth列修改“-”為“u”。修改完畢后保存。

修改完配置文件后先不要急着重啟,我們去添加一下ss5的用戶配置文件。我這里因為有兩個IP所以配置了兩個賬號,每一行配置一個用戶,格式:用戶+空格+密碼

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM