1.安装pip
Pip 是 Python 的包管理工具,下载ss十分方便,但是centos是没有pip的,我们需要安装一个。
yum install python-setuptools & easy_install pip //装了python-setuptools 再去安装pip。
或者用
yum install python-pip //若提示没有pip就执行下面的安装 yum -y install epel-release yum -y install python-pip pip install --upgrade pip
2.安装Shadowsocks 客户端
shadowsocks安装时是不分客户端还是服务器端的,只不过安装后有两个脚本一个是sslocal代表以客户端模式工作,一个是ssserver代表以服务器端模式工作。命令:
pip install shadowsocks
3.配置shadowsocks
shadowsocks有两种配置方法,一种是命令行参数配置,一种是配置文件。
·命令行参数
·配置文件:
shadowsocks的配置文件是一个json形式的文件,各参数的意义和命令行参数意义相同。
{ "server":"my_server_ip", "server_port":8388, "password":"mypassword", "timeout":300, "method":"aes-256-cfb", "fast_open": true }
服务器地址就写服务器的ip地址(内网地址),不要写127.0.0.1。端口号可以自己写,但是不要占用其他服务的端口。密码尽量采用复杂一点的密码,以保证安全性。加密方式使用aes-256-cfb就可以了。如果服务器是Linux系统的话,打开fast_open。
温馨提示:
1)如果出现报错: Cannot assign requested address, 请将 server 换成 0.0.0.0, 然后重新启动上面的命令。
2)也可以进行多用户设置,已经测试可用!
{ "server": "my_server_ip", "port_password": { "8388": "mypassword", "8389": "mypassword2", "8390": "mypassword3" }, "timeout":30, "method":"aes-256-cfb", "fast_open": ture }
新建配置文件
vi /etc/shadowsocks.json
按 i 进入编辑模式,复制粘贴填写以上配置内容,改完之后esc退出编辑模式 , 敲下:wq 保存退出
4,启动shadowsocks
# 启动 ssserver -c /etc/shadowsocks.json -d start # 停止 ssserver -c /etc/shadowsocks.json -d stop # 重新启动 ssserver -c /etc/shadowsocks.json -d restart
如果启动后不确定自己是否成功,可以使用
ps -aux | grep ssserver #ps是 linux 查看系统进程的工具
如果像下图一样能查到相关结果,证明这个进程已经启动成功了。
5.加入开机启动 (进程调用模式,服务模式)
·进程调用模式
把 shadowsocks 服务端进程设置为开机启动:
vi /etc/rc.local
按i进入Insert模式,在exit 0上面的空白行加入:
sudo ssserver -c /etc/shadowsocks.json -d start
然后esc接着:wq
·服务模式
创建名为”ssserver“的服务:
vi /etc/systemd/system/ssserver.service
粘贴以下配置
[Unit] Description=ssserver [Service] TimeoutStartSec=0 ExecStart=/usr/bin/ssserver -c /etc/shadowsocks.json [Install] WantedBy=multi-user.target
相关命令
#设置服务开机启动 systemctl enable ssserver #禁止服务开机启动 systemctl disable ssserver #启动服务 systemctl start ssserver #重启服务 systemctl restart ssserver
为了检查 shadowsocks 服务是否已成功启动,可以执行以下命令查看服务的状态:
systemctl status ssserver -l
lsof -i:8388
至此,Shadowsocks服务器端的配置完成。同时注意,在如上的Shadowsocks部署机器上要关闭iptables防火墙(如果开启iptables防火墙,则需要放开8388端口访问)
6.开启防火墙
Centos默认使用firewall防火墙,防火墙不开放我们设置的8388端口,我们shadowsocks是转发不出去的。所以,我们要开放firewall端口。
firewalld的基本使用
启动: systemctl start firewalld 查看状态: systemctl status firewalld 停止: systemctl disable firewalld 禁用: systemctl stop firewalld
先看看firewalld的状态。
可以看到firewalld正在活动,如果是dead,那么就输入上面的启动命令,启动firewalld。
那怎么开启一个端口呢?
firewall-cmd --zone=public --add-port=8388/tcp --permanent # permanent永久生效,没有此参数重启后失效
开启还不够,因为firewalld还没有载入这个设置。所以我们要重新载入规则。
firewall-cmd --reload
到这里,我们就已经开放好8388端口了。