龙之介大人

不使用脚本搭建ssr方法
安装依赖环境yum install -y python python-devel python-setuptool...
扫描右侧二维码阅读全文
24
2019/08

不使用脚本搭建ssr方法

安装依赖环境

yum install -y python python-devel python-setuptools openssl openssl-devel curl wget unzip gcc automake autoconf make vim libtool
  • shadowsocksR 服务端下载

Github下载地址:https://github.com/shadowsocksrr/shadowsocksr/archive/3.2.2.tar.gz
资 源 库 下载地址:点击下载

  • shadowsocksR管理脚本下载

Github下载:https://raw.githubusercontent.com/teddysun/shadowsocks_install/master/shadowsocksR
资源库下载:点击下载

  • libsodium-1.0.17下载地址

Github下载:https://github.com/jedisct1/libsodium/releases/download/1.0.17/libsodium-1.0.17.tar.gz
资源库下载:点击下载

关闭selinux

  • 查询selinux是否开启
[root@server-node1 ~]# getenforce  
Enforcing

[root@server-node1 ~]# cat /etc/selinux/config | grep 'SELINUX='
#SELINUX= can take one of these three values:
SELINUX=enforcing

返回 Permissive 表示开启,后面步骤执行关闭selinux!

  • 关闭 selinux
[root@server-node1 ~]# sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config 
[root@server-node1 ~]# setenforce 0
[root@server-node1 ~]# getenforce 
Permissive

执行getenforce返回Permissive表示关闭~

查看内核版本

  • 内核是否大于3.10,低于3.10的内核安装一些其他的服务器会失败比如bbr加速!
[root@server-node1 ~]# uname -r
3.10.0-327.el7.x86_64
内核更新以后再说.大部分Centos 7使用的内核都在3.10以上已经能够兼容目前的所有服务!

安装目录的规划

  • 规划目录主要是方便管理,不然安装完成后都不知道安装到哪里了~
/tmp/download/            <--安装文件的下载地址
/usr/local/shadowsocks <--安装目录
#这里需要提醒一下,如果安装目录改变了,那么管理脚本的目录也需要改变

/etc/init.d/shadowsocks<--管理脚本的存放处
/etc/shadowsocks-r/       <--配置文件的存放处
#这里也是如果安装目录改变了,那么管理脚本的目录也需要改变

/usr/        <--libsodium安装目录

安装libsodium

wget https://github.com/jedisct1/libsodium/releases/download/1.0.17/libsodium-1.0.17.tar.gz

tar -zxvf libsodium-1.0.17.tar.gz

cd libsodium-1.0.17

./configure --prefix=/usr && make && make install

ldconfig 

安装ssr

wget https://github.com/shadowsocksrr/shadowsocksr/archive/3.2.2.tar.gz 

wget --no-check-certificate https://raw.githubusercontent.com/teddysun/shadowsocks_install/master/shadowsocksR -O /etc/init.d/shadowsocks

tar -zxvf 3.2.2.tar.gz

mv shadowsocksr-3.2.2/shadowsocks/ /usr/local/shadowsocks

chmod +x /etc/init.d/shadowsocks 

chkconfig --add shadowsocks

chkconfig shadowsocks on
  • ssr配置文件
{
    "server":"0.0.0.0",
    "server_ipv6":"[::]",
    "server_port":8080,
    "local_address":"127.0.0.1",
    "local_port":1080,
    "password":"passwd",
    "timeout":120,
    "method":"chacha20",
    "protocol":"auth_sha1_v4",
    "protocol_param":"",
    "obfs":"http_simple",
    "obfs_param":"",
    "redirect":"",
    "dns_ipv6":false,
    "fast_open":false,
    "workers":1
}
把上面的配置文件复制用vim编辑放到/etc/shadowsocks-r/config.json

开放防火墙

CentOS6.x

  • 查看防火墙是否运行:/etc/init.d/iptables status
  • 放行需要的端口
#查询放行的端口是否存在
iptables -L -n | grep -i 8080

#放行
iptables -I INPUT -m state --state NEW -m tcp -p tcp --dport 8080 -j ACCEPT
iptables -I INPUT -m state --state NEW -m udp -p udp --dport 8080 -j ACCEPT

#保存重启
/etc/init.d/iptables save
/etc/init.d/iptables restart

CentOS7.x

  • 查看防火墙是否运行:systemctl status firewalld
  • 查看默认防火墙zone:firewall-cmd --get-default-zone
  • 放行需要的端口
firewall-cmd --permanent --zone=$(firewall-cmd --get-default-zone) --add-port=8080/tcp
firewall-cmd --permanent --zone=$(firewall-cmd --get-default-zone) --add-port=8080/udp
firewall-cmd --reload

启动 重启与关闭

启动SSR:/etc/init.d/shadowsocks-r start

停止SSR:/etc/init.d/shadowsocks-r stop

重启SSR:/etc/init.d/shadowsocks-r restart

SSR状态:/etc/init.d/shadowsocks-r status

多端口、多端口密码配置

配置文件有所变动,需要删除"server_port":8080,这一行,然后修改"password":"shiyu",这一行为:"port_password":{},
然后我们往里面写端口和密码,比如开一个8080端口,密码为pwd,8081端口,密码为111,8082端口,密码为222。

"port_password":{"8080":"pwd","8081":"111","8082":"222"},

完整配置如下:

{
    "server":"0.0.0.0",
    "server_ipv6":"::",
    "local_address":"127.0.0.1",
    "local_port":1080,
    "port_password":{"8080":"pwd","8081":"111","8082":"222"},
    "timeout":120,
    "method":"chacha20",
    "protocol":"auth_sha1_v4",
    "protocol_param":"",
    "obfs":"http_simple",
    "obfs_param":"",
    "redirect":"",
    "dns_ipv6":false,
    "fast_open":true,
    "workers":1
}

多端口单独配置加密、混淆

  • 为端口配置不同的协议和混淆方式只需要修改"port_password",以上文为例!
"port_password":{"8080":"pwd","8081":"111","8082":"222"},
  • 比如8080端口我想让他用rc4-md5加密方法:
"port_password":{"8080":{"method":"rc4-md5","password":"pwd"},"8081":"111","8082":"222"},
  • 比如8081端口我想用http_post混淆就这样写:
"port_password":{
    "8080":{
        "method":"rc4-md5","password":"pwd"
    },
    "8081":{
        "obfs":"http_post","password":"111"
    },
    "8082":"222"
},

卸载SSR

  • 提供卸载脚本,也可以手动停止删除目录文件
#!/usr/bin/env bash

/etc/init.d/shadowsocks status > /dev/null 2>&1
if [ $? -eq 0 ]; then
    /etc/init.d/shadowsocks stop
fi
chkconfig --del shadowsocks
rm -f /etc/shadowsocks.json
rm -f /etc/init.d/shadowsocks
rm -f /var/log/shadowsocks.log
rm -rf /usr/local/shadowsocks

配置文件的介绍

  • 配置文件的组成
{
    "server":"0.0.0.0",    //服务器ipv4地址
    "server_ipv6":"::",    //服务器ipv6地址
    "server_port":8080, //远程的连接端口
    "local_address":"127.0.0.1", //本地代理地址
    "local_port":1080,    //本地代理端口
    "password":"passwd",  //连接密码
    "timeout":120,        //超时
    "method":"chacha20",  //加密方法
    "protocol":"auth_sha1_v4", //协议
    "protocol_param":"",    //协议参数
    "obfs":"http_simple", //混淆
    "obfs_param":"",    //混淆参数
    "redirect":"",
    "dns_ipv6":false,    //ipv6的dns
    "fast_open":true,    
    "workers":1
}
一般修改配置文件也就修改端口、密码、加密、协议、混淆这几个
  • 端口

"server_port":8080,这一行就是端口号,如果修改成8081端口就是"server_port":8081,端口号只能是阿拉伯数字,而且最大值为65535。注意末尾有英文逗号。修改之后如果无法连接的话,可能需要防火墙开放相应的端口。

  • 密码

和上面同理,"password":"passwd",代表密码是“passwd”,改成1123就是"password":"1123",密码设置建议英文字母或者数字组合,尽量不要设置符号。

  • 加密方法

ssr支持的加密方法如下,可以自己写自己想要的!

none
aes-256-cfb
aes-192-cfb
aes-128-cfb
aes-256-cfb8
aes-192-cfb8
aes-128-cfb8
aes-256-ctr
aes-192-ctr
aes-128-ctr
chacha20-ietf
chacha20
salsa20
xchacha20
xsalsa20
rc4-md5
  • 协议

支持的协议如下:

origin
verify_deflate
auth_sha1_v4
auth_sha1_v4_compatible
auth_aes128_md5
auth_aes128_sha1
auth_chain_a
auth_chain_b
auth_chain_c
auth_chain_d
auth_chain_e
auth_chain_f
  • 混淆

支持的混淆如下:

plain
http_simple
http_simple_compatible
http_post
http_post_compatible
tls1.2_ticket_auth
tls1.2_ticket_auth_compatible
tls1.2_ticket_fastauth
tls1.2_ticket_fastauth_compatible
最后修改:2019 年 08 月 24 日 05 : 20 PM

发表评论