Shadowsocks
购买国外服务器
vultr 购买服务器
支持 alipay 付款
环境搭建
访问
$ ssh root@XXX.XXX.XXX.XXX
安装命令
- centos
$ yum -y install ${你要安装的文件}
- ubuntu
$ apt-get XXX
安装
此处为 centos 环境,其他类似。
安装 pip
$ yum -y install python-pip
安装完成日志:
已安装:
python2-pip.noarch 0:8.1.2-6.el7
作为依赖被安装:
python-backports.x86_64 0:1.0-8.el7 python-backports-ssl_match_hostname.noarch 0:3.5.0.1-1.el7 python-ipaddress.noarch 0:1.0.16-2.el7 python-setuptools.noarch 0:0.9.8-7.el7
完毕
较为简单的方式
- ss
wget --no-check-certificate https://raw.githubusercontent.com/teddysun/shadowsocks_install/master/shadowsocks-go.sh
chmod +x shadowsocks-go.sh
./shadowsocks-go.sh 2>&1 | tee shadowsocks-go.log
- force update
rpm -ivh http://soft.91yun.org/ISO/Linux/CentOS/kernel/kernel-3.10.0-229.1.2.el7.x86_64.rpm --force
restart the server
- bbr
wget -N --no-check-certificate https://raw.githubusercontent.com/91yun/serverspeeder/master/serverspeeder-all.sh && bash serverspeeder-all.sh
较为传统的方式
安装 ss
$ pip install shadowsocks
日志如下:
Collecting shadowsocks
Downloading https://files.pythonhosted.org/packages/02/1e/e3a5135255d06813aca6631da31768d44f63692480af3a1621818008eb4a/shadowsocks-2.8.2.tar.gz
Installing collected packages: shadowsocks
Running setup.py install for shadowsocks ... done
Successfully installed shadowsocks-2.8.2
You are using pip version 8.1.2, however version 10.0.1 is available.
You should consider upgrading via the 'pip install --upgrade pip' command.
- 升级下 pip
# pip install --upgrade pip
Collecting pip
Downloading https://files.pythonhosted.org/packages/0f/74/ecd13431bcc456ed390b44c8a6e917c1820365cbebcb6a8974d1cd045ab4/pip-10.0.1-py2.py3-none-any.whl (1.3MB)
100% |████████████████████████████████| 1.3MB 977kB/s
Installing collected packages: pip
Found existing installation: pip 8.1.2
Uninstalling pip-8.1.2:
Successfully uninstalled pip-8.1.2
Successfully installed pip-10.0.1
配置
/etc/shadowsocks.json
$ vi /etc/shadowsocks.json
此处使用单一用户配置
{
"server": "0.0.0.0",
"server_port": 2333,
"local_address": "127.0.0.1",
"local_port": 1080,
"password": "密码",
"timeout": 300,
"method": "aes-256-cfb",
"fast_open": false
}
保存退出
属性说明
- server_port
可以是 8848/11383 或其他。
- 密码
只需要根据自己需要修改【密码】即可
运行 ss
执行命令
$ ssserver -c /etc/shadowsocks.json -d start
日志:
[root@vultr ~]# ssserver -c /etc/shadowsocks.json -d start
INFO: loading config from /etc/shadowsocks.json
2018-07-18 01:36:06 INFO loading libcrypto from libcrypto.so.10
started
当显示 started
,则说明启动成功。
每次开机启动 ss
添加开启启动项目
$ vi /etc/rc.local
添加如下内容:
ssserver -c /etc/shadowsocks.json -d start
- 为了保证 reboot 会执行脚本
$ chmod +x /etc/rc.local
$ chmod +x /etc/rc.d/rc.local
开放配置的端口
- 开放 2333
$ firewall-cmd --zone=public --add-port=2333/tcp --permanent
- 重新载入
$ firewall-cmd --reload
- 查看
$ firewall-cmd --zone=public --query-port=2333/tcp
如果为 yes 则说明开启成功
客户端配置
到这里,服务端搞定。开始客户端。
此处,以 Mac 为例子。
ShadowsocksX
- 下载
我下载的是,Shadowsocks-X。
当然,也可以尝试下 ShadowsocksX-NG。
- 使用
解压后直接打开即可。最上方会出现一个小飞机。
- 设置
模式,建议使用【自动模式】
【服务器】=》【编辑服务器】=>【添加】
填写对应的信息:
服务器地址:xxx.xxx.xxx.xxx
端口: 8848
密码: xxxx
- 测试
测试通过。
Windows
BBR 加速
首先我们要知道,添加 BBR 加速支持的最关键的一点是升级我们Linux的内核,只有内核支持这个加速算法,才能使用BBR,步骤如下(按顺序输入命令行即可)
升级内核
- 查看内核版本
$ cat /etc/redhat-release
CentOS Linux release 7.5.1804 (Core)
内核应该是3.x,先升级成4.9或者4.12最新的,支持BBR
rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org
rpm -Uvh http://www.elrepo.org/elrepo-release-7.0-2.el7.elrepo.noarch.rpm
yum --enablerepo=elrepo-kernel install kernel-ml -y
设置内核版本
- 查看可用内核
cat /boot/grub2/grub.cfg |grep menuentry
- 设置为 4.9 以上版本
grub2-set-default 'CentOS Linux (4.17.9-1.el7.elrepo.x86_64) 7 (Core)'
- 重启服务器
设置成功则: reboot
重启,接下来就是安装 BBR 了
安装 bbr
uname -r
echo 'net.core.default_qdisc=fq' | sudo tee -a /etc/sysctl.conf
echo 'net.ipv4.tcp_congestion_control=bbr' | sudo tee -a /etc/sysctl.conf
sysctl -p
sysctl net.ipv4.tcp_available_congestion_control
sysctl -n net.ipv4.tcp_congestion_control
lsmod | grep bbr
如果安装成功,则可以看到:
[root@vultr ~]# lsmod | grep bbr
tcp_bbr 20480 1
- bbr.sh
rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org
rpm -Uvh http://www.elrepo.org/elrepo-release-7.0-2.el7.elrepo.noarch.rpm
yum --enablerepo=elrepo-kernel install kernel-ml -y
uname -r
echo 'net.core.default_qdisc=fq' | sudo tee -a /etc/sysctl.conf
echo 'net.ipv4.tcp_congestion_control=bbr' | sudo tee -a /etc/sysctl.conf
sysctl -p
sysctl net.ipv4.tcp_available_congestion_control
sysctl -n net.ipv4.tcp_congestion_control
lsmod | grep bbr
端口开放
CentOS7使用firewalld打开关闭防火墙与端口
1、firewalld的基本使用 启动: systemctl start firewalld 关闭: systemctl stop firewalld 查看状态: systemctl status firewalld 开机禁用 : systemctl disable firewalld 开机启用 : systemctl enable firewalld
2.systemctl是CentOS7的服务管理工具中主要的工具,它融合之前service和chkconfig的功能于一体。 启动一个服务:systemctl start firewalld.service 关闭一个服务:systemctl stop firewalld.service 重启一个服务:systemctl restart firewalld.service 显示一个服务的状态:systemctl status firewalld.service 在开机时启用一个服务:systemctl enable firewalld.service 在开机时禁用一个服务:systemctl disable firewalld.service 查看服务是否开机启动:systemctl is-enabled firewalld.service 查看已启动的服务列表:systemctl list-unit-files|grep enabled 查看启动失败的服务列表:systemctl –failed
3.配置firewalld-cmd
查看版本: firewall-cmd –version 查看帮助: firewall-cmd –help 显示状态: firewall-cmd –state 查看所有打开的端口: firewall-cmd –zone=public –list-ports 更新防火墙规则: firewall-cmd –reload 查看区域信息: firewall-cmd –get-active-zones 查看指定接口所属区域: firewall-cmd –get-zone-of-interface=eth0 拒绝所有包:firewall-cmd –panic-on 取消拒绝状态: firewall-cmd –panic-off 查看是否拒绝: firewall-cmd –query-panic
那怎么开启一个端口呢 添加 firewall-cmd –zone=public –add-port=2333/tcp –permanent (–permanent永久生效,没有此参数重启后失效) 重新载入 firewall-cmd –reload 查看 firewall-cmd –zone=public –query-port=2333/tcp 删除 firewall-cmd –zone=public –remove-port=8848/tcp –permanent
firewall-cmd –zone=public –add-port=22/tcp –permanent
- open.sh
firewall-cmd --zone=public --add-port=2333/tcp --permanent
firewall-cmd --reload
firewall-cmd --zone=public --query-port=2333/tcp
参考
- 端口
https://www.cnblogs.com/justuntil/p/7767783.html
https://www.cnblogs.com/mliudong/p/4529612.html