首页 > 其他分享 >ss5 sk5 多备忘

ss5 sk5 多备忘

时间:2023-01-18 23:14:18浏览次数:57  
标签:sk5 00 ss5 0.0 备忘 sh test root

安装bbr

查看当前Centos的版本

cat /etc/redhat-release

大于7.3即可

wget --no-check-certificate https://github.com/teddysun/across/raw/master/bbr.sh && chmod +x bbr.sh && ./bbr.sh

验证当前的TCP算法
[root@hwsrv-781523 ~]# sysctl net.ipv4.tcp_available_congestion_control
net.ipv4.tcp_available_congestion_control = bbr cubic reno

输出结果包含了:bbr 表示成功

查看BBR是否启动
[root@hwsrv-781523 ~]# sysctl net.ipv4.tcp_congestion_control
net.ipv4.tcp_congestion_control = bbr

查看BBR是否已经载入了系统模块
[root@hwsrv-781523 ~]# lsmod | grep bbr
tcp_bbr 20480 32

多ip服务器搭建sock5

最小化安装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 <sub>]# 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 </sub>]# ./ip.sh

[root@yjigbj5 ~]# cat ip.sh  有的系统 需要这么加ip
#!/bin/bash
for((i=3,j=1;i<=254;i++,j=j+1));do ifconfig eth0:$j 192.168.0.$i up;done
[root@yjigbj5 ~]#


配置结果可以通过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 <sub>]# 4. 按照IP地址分布创建用户,253个IP 对应253个用户 [root@test </sub>]# 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 <sub>]# [root@test </sub>]# ./user.sh 配置结果可以通过cat /etc/passwd查看,正确结果如下: [root@test <sub>]# 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 </sub>]# 5. 配置iptables的mangle链及POSTROUTING链,把用户、UID和IP进行关联,确保最后每个IP都独立对外提供代理服务 [root@test <sub>]# 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 </sub>]# ./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 <sub>]# 以下配置实现了uid和IP的关联,从而最终实现了用户和IP的关联 [root@test </sub>]# 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 <sub>]#./snat.sh 配置结果可以通过iptables -nvL -t nat查看,正确结果如下: [root@test </sub>]# 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 <sub>]# 6. 配置socket5代理的认证方式及认证密码(非匿名方式,匿名方式请自行修改配置文件) [root@test </sub>]# 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 <sub>]# 以上配置结果为允许所有非匿名用户使用ss5代理,其它配置请自行研读ss5.conf配置说明 [root@test </sub>]# cat /etc/opt/ss5/ss5.passwd test test [root@test <sub>]# 以上配置结果为允许用户名test,密码test的用户使用ss5代理 7. 启动/重启ss5代理并修改端口为5555, 把IP和用户进行关联(默认端口 1080) [root@test </sub>]# 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 <sub>]#./ss5.sh 启动结果可以通过ps –ef | grep ss5查看,正确结果如下: [root@test </sub>]# 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地址绑定不同端口,请自行修改配置脚本即可,另外,请自行将各个配置脚本加入到启动脚本里面,实现重启后也能保持状态!由于本配置攻略不是

 

#每次重启计算机后或者出现以下错误时: Can’t create pid file /var/run/ss5/ss5.pid Can’t unlink pid file /var/run/ss5/ss5.pid

此问题是因 SS5-3.8.9的bug,重启会删掉/var/run/ss5/ 导致无法创建pid文件

解决: 每次启动系统先创建 /var/run/ss5目录后再启动 ss5

[root@yjigbj5 /]# cat /etc/rc.d/rc.local 
#!/bin/bash
mkdir /var/run/ss5/   ‘解决: 每次启动系统先创建 /var/run/ss5目录后再启动 ss5
~/ip.sh
~/nat-mangle.sh
~/snat.sh 
~/ss5.sh

/etc/init.d/ss5 发现没有这个文件存在啊,原来以为是安装失败,又重装了一遍才发现文件是存在的 只是没有执行权限所以你按死了tab键也没用

因此赶紧给赋予权限,并让ss5跟系统一起启动  chmod +x /etc/init.d/ss5

 

标签:sk5,00,ss5,0.0,备忘,sh,test,root
From: https://www.cnblogs.com/yangjig/p/17060798.html

相关文章

  • 备忘命令
    docker创建secretecho"ndwp_access_key"|dockersecretcreateaccess_key-echo"ndwp_access_key"|dockersecretcreatesecret_key-防火墙#查看已开放端......
  • 22.(行为型模式)java设计模式之备忘录模式
    一、什么是备忘录模式(MementoPattern)定义:在不破坏封闭的前提下,捕获⼀个对象的内部状态,保存对象的某个状态,以便在适当的时候恢复对象,⼜叫做快照模式,属于⾏为模式。备......
  • cmd命令行弹出提示消息的几种方法备忘
    msg%username%/time:10"要显示的内容"mshtavbscript:msgbox("要显示的内容",64,"要显示的标题")(window.close)mshtavbscript:CreateObject("Wscript.Shell").popu......
  • 学习记录-备忘录模式
    备忘录模式备忘录模式(MementoPattern)保存一个对象的某个状态,以便在适当的时候恢复对象。备忘录模式属于行为型模式。介绍意图:在不破坏封装性的前提下,捕获一个对象的内......
  • android studio 使用备忘
     androidstudio的下载androidstudio下载链接https://developer.android.google.cn/studio历史版本下载链接:https://developer.android.google.cn/studio/archive.ht......
  • Redis-使用备忘
    Redis-使用备忘基本介绍Redis(RemoteDictionaryServer),即远程字典服务,是一个开源的使用ANSIC语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并......
  • docker指令备忘
    菜鸟教程是个好地方拉取镜像:dockerpull镜像:tag启动容器(简单,放在镜像名后的是命令,这里我们希望有个交互式Shell,因此用的是/bin/bash):dockerrun-it镜像名......
  • GitBook的使用备忘
    GitBook环境搭建npminstall-ggitbook-cli#新建目录,如helloworldcdhelloworld#执行此语句,需等待一段时间gitbookinit#启动服务gitbookserve遇到问题......
  • Oracle11g Rman备份备忘录
    0x00 rman是什么RecoveryManager(RMAN) rman就是oracle官方推出的一种物理备份工具,以oracleblock为读取单位可以结合expdp使用做备份,可以实现更小粒度的备份。rman......
  • props & emit 使用备忘
    文章目录​​1.需求描述​​​​2.解决​​1.需求描述由父组件传递参数至子组件,子组件携带参数进行网络请求,处理业务。业务处理完毕,子组件成功事件触发父组件关闭弹窗。2......