智传网优云课堂,专注分享IT技术
与IT技术爱好者一起共同学习进步

CentOS 7怎么搭建ssr(shadowsocks)

本文主要介绍如何在linux环境中搭建shadowsocks服务器,以CentOS7.6为例。

Step1:CentOS7安装bbr

bbr用于TCP加速,不是必需,但强烈建议安装,由于CentOS7默认使用3.10内核,而4.9以上的内核版本才能原生支持bbr。所以需要额外安装最新内核。

把系统更新至最新

[root@zcwyou ~]# yum update -y

安装支持BBR的内核

[root@zcwyou ~]# rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org
[root@zcwyou ~]# rpm -Uvh http://www.elrepo.org/elrepo-release-7.0-2.el7.elrepo.noarch.rpm
[root@zcwyou ~]# yum --enablerepo=elrepo-kernel install kernel-ml

下图表明新内核已经安装成功:
centos7安装新内核

检查已安装的内核:

[root@zcwyou ~]# awk -F\' '$1=="menuentry " {print i++ " : " $2}' /etc/grub2.cfg
0 : CentOS Linux (4.19.12-1.el7.elrepo.x86_64) 7 (Core)
1 : CentOS Linux (3.10.0-957.1.3.el7.x86_64) 7 (Core)
2 : CentOS Linux (3.10.0-957.el7.x86_64) 7 (Core)
3 : CentOS Linux (0-rescue-6804c81efa044f55a8b33fa201c18cbb) 7 (Core)

记下最大版本的内核对应的序号。比如最大的版本号对应的序号为0。4.9以上的内核版本才能支持bbr。

查看系统已安装的内核

把最大版本的内核序号设置为默认。

[root@zcwyou ~]# grub2-set-default 0

重启后自动使用最新的内核。

[root@zcwyou ~]# reboot

检查当前内核版本是不是刚才记下的最新版本号

[root@zcwyou ~]# uname -r

查看正在运行的内核版本

编辑/etc/sysctl.conf,启动bbr

[root@zcwyou ~]# vi /etc/sysctl.conf

在文件最后加入这两行:

net.core.default_qdisc = fq
net.ipv4.tcp_congestion_control = bbr

立即生效:

[root@zcwyou ~]# sysctl -p

检查系统是否启用bbr

[root@zcwyou ~]# lsmod | grep bbr

显示tcp_bbr说明BBR已正常启动。

Step2:安装额外仓库

[root@zcwyou ~]# rpm -ivh https://mirrors.aliyun.com/epel/epel-release-latest-7.noarch.rpm

或者使用仓库源安装:

[root@zcwyou ~]# yum -y install epel-release

Step3:安装shadowsocks

3.1 安装python setup tools

[root@zcwyou ~]# yum install python-setuptools -y

3.2 安装pip

[root@zcwyou ~]# easy_install pip

3.3 升级 pip

[root@zcwyou ~]# pip install --upgrade pip

3.4 安装git

[root@zcwyou ~]# yum install -y git

3.5 安装 shadowsocks, 当前版本为 3.0

[root@zcwyou ~]# pip install git+https://github.com/shadowsocks/shadowsocks.git@master

3.6 升级 shadowsocks

[root@zcwyou ~]# pip install --upgrade git+https://github.com/shadowsocks/shadowsocks.git@master

Step4:创建shadowsocks配置文件

4.1 创建目录

[root@zcwyou ~]# mkdir /etc/shadowsocks

4.2 创建shadowsocks配置文件

[root@zcwyou ~]# vi /etc/shadowsocks/ssserver.json

添加以下内容

{
    "server":"这里写本机公网IP",
    "local_address":"127.0.0.1",
    "local_port":1080,
    "fast_open": false,
    "port_password": {
        "9001": "user1",
        "9002": "user2",
        "9003": "user3",
        "9004": "user4",
        "9005": "user5",
        "9006": "user6",
        "9007": "user7",
        "9008": "user8",
        "9009": "user9",
        "9010": "user10",
        "9011": "user11",
        "9012": "user12",
        "9013": "user13",
        "9014": "user14"
    },
    "timeout": 300,
    "method": "chacha20-ietf"
}

:wq
退出vi

以上创建了14个用户,即用户名为user1至user14。每个用户都对应不同的TCP端口。

Step5:创建 shadowsocks 服务, 随系统启动.

5.1 方法1:使用Systemd,推荐使用,

[root@zcwyou ~]# vi /usr/lib/systemd/system/shadowsocks.service

添加以下内容

[Unit]
Description=Shadowsocks Server
Documentation=https://github.com/shadowsocks/shadowsocks
After=network.target remote-fs.target nss-lookup.target

[Service]
Type=forking
ExecStart=/usr/bin/ssserver -c /etc/shadowsocks/ssserver.json --user nobody -d start
ExecReload=/bin/kill -HUP $MAINPID
ExecStop=/usr/bin/ssserver -d stop

[Install]
WantedBy=multi-user.target

:wq
退出vi

5.1.1 安装shadowsocks依赖关系

[root@zcwyou ~]# yum -y install libsodium

5.1.2 设置开机启动,下次开机生效

[root@zcwyou ~]# systemctl enable shadowsocks

5.1.3 马上启动服务

[root@zcwyou ~]# systemctl start shadowsocks

设置成功后,直接跳到Step7,设置防火墙开放流量

5.2 方法2:使用传统的init启动,在CentOS7中不推荐

5.2.1 创建启动脚本:

[root@zcwyou ~]# vi /etc/shadowsocks/ssserver.sh

添加以下内容

/usr/bin/ssserver -c /etc/shadowsocks/ssserver.json --user nobody -d start

:wq
退出vi

5.2.2 添加脚本的执行权限

[root@zcwyou ~]# chmod +x /etc/shadowsocks/ssserver.sh

5.2.3 在RHEL7里,rc.local默认没有执行权限,需要额外配置

[root@zcwyou ~]# chmod +x /etc/rc.d/rc.local

把启动脚本的路径写入rc.local

[root@zcwyou ~]# vi /etc/rc.d/rc.local

加入以下内容

/etc/shadowsocks/ssserver.sh

:wq
退出vi

5.2.4 启动服务

[root@zcwyou ~]# service shadowsocks start

Step6:设置防火墙firewalld,开放的端口范围根据配置文件而定

执行以下两条指令

6.1 临时允许,立刻生效,重启firewalld服务时失效

[root@zcwyou ~]# firewall-cmd --add-port=9001-9014/tcp

6.2 永久允许,下次启动firewalld服务时生效

[root@zcwyou ~]# firewall-cmd --add-port=9001-9014/tcp --permanent 

Step7:检查

[root@zcwyou ~]# ps -ef |grep ssserver

看到ssserver的进程即表示成功。

查看shadowsocks进程

赞(2)
未经允许不得转载:Linux入门学习到精通 » CentOS 7怎么搭建ssr(shadowsocks)
分享到: 更多 (0)

学习QQ群:557371664

关注微信公众号自助视频学习

评论 抢沙发

评论前必须登录!