• 本文记录了作者在 CentOS 7 上搭建 shadowsocks 服务器的一些经验

准备工作

首先要有一台 CentOS 服务器,然后用 ssh 工具登录服务器 开始之前最好看一下shadowsocksr文档


环境搭建

分别执行以下命令 安装 shadowsocks 服务端

          
  • 0
  • 1
  • 2
yum update yum install python-setuptools && easy_install pip pip install shadowsocks

配置 shadowsocks

创建一个配置文件

          
  • 0
  • 1
mkdir /shadowsocks vi /shadowsocks/server-config.json

按下i键编辑 复制以下内容:

          
  • 0
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
{ "server":"0.0.0.0", "server_port":8388, "local_port":1080, "password":" password", "timeout":600, "method":"aes-256-cfb" }

server 是服务器的 IP 地址

- 多端口(多用户)配置:

          
  • 0
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
{ ... "port_password":{ "8388":"password1", "8389":"password2", "8390":"password3", ... }, ... }

编辑完成后按下 esc 退出编辑模式 然后按住 shift 按两下 z 保存并退出编辑


开放端口

CentOS 默认打开了防火墙 你可以直接关闭它 systemctl stop firewalld 但是这样不太安全,可以使用 iptables 来管理端口

开放所需端口

          
  • 0
iptables -A INPUT -p tcp --dport 8388 -j ACCEPT

(可选)禁止某个 IP 访问

          
  • 0
iptables -I INPUT -s 124.222.0.202 -j DROP

启动服务

          
  • 0
ssserver -c /shadowsocks/server-config.json -d start

停止服务

          
  • 0
ssserver -c /shadowsocks/server-config.json -d stop

优雅地管理你的服务器

编辑 bashrc

          
  • 0
vi ~/.bashrc

configFile 是你的 shadowsocks 配置文件

          
  • 0
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
ssr(){ configFile='/shadowsocks/server-config.json' if [[ $1 == 'start' ]];then sudo ssserver -c ${configFile} -d start elif [[ $1 == 'stop' ]];then sudo ssserver -c ${configFile} -d stop elif [[ $1 == 'log' ]];then if [[ "$2" == "" ]];then sudo tail -f /var/log/shadowsocks.log echo "显示全部日志" else echo "-------------- start ---------------" if [[ $3 == "" ]];then sudo tail -n $2 /var/log/shadowsocks.log else sudo tail -n $2 /var/log/shadowsocks.log |grep $3 fi echo "--------------- end ----------------" echo "显示最近 $2 条日志 $3" fi else echo "start:开始 | stop:停止 | log:查看日志" fi }

刷新以生效

          
  • 0
source ~/.bash_profile
          
  • 0
  • 1
  • 2
  • 3
  • 4
ssr start ssr stop ssr log # 只显示最近10条日志 ssr log 10

开机自动启动

          
  • 0
vi /etc/systemd/system/shadowsocks.service

复制以下内容

          
  • 0
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
[Unit] Description=Shadowsocks [Service] TimeoutStartSec=0 ExecStart=/usr/bin/ssserver -c /shadowsocks/server-config.json [Install] WantedBy=multi-user.target
          
  • 0
systemctl enable shadowsocks

end!