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
完毕
centos8
centos8 安装报错:
[root@vultrguest ~]# yum -y install python-pip
Last metadata expiration check: 0:18:44 ago on Sun 22 Aug 2021 12:08:22 AM UTC.
No match for argument: python-pip
Error: Unable to find a match: python-pip
Centos8(最小化安装)全新安装Python3.8+pip的方法教程
- 完整命令版本
最小化安装Python8后安装Python3.8.1,网上找了一圈教程,没有一个能完全成功的。或者能安装成功,但pip无法使用。最后根据多个教程整理了一份命令,测试成功,安装使用完全没有问题。
yum -y install wget
yum -y install setup
yum -y install perl
yum install openssl-devel -y
yum install zlib-devel -y
yum -y groupinstall "Development tools"
yum -y install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gdbm-devel db4-devel libpcap-devel xz-devel
yum install -y libffi-devel zlib1g-dev
yum install zlib* -y
yum install libffi-devel -y
wget https://www.python.org/ftp/python/3.8.1/Python-3.8.1.tar.xz
tar -xvJf Python-3.8.1.tar.xz
mkdir /usr/local/python3
cd Python-3.8.1
./configure --prefix=/usr/local/python3 --enable-optimizations --with-ssl
make && make install
ln -s /usr/local/python3/bin/python3 /usr/local/bin/python3
ln -s /usr/local/python3/bin/pip3 /usr/local/bin/pip3
pip3 install --upgrade pip
今天看了一下宝塔的安装程序,发现用下面一行命令就可以快速安装Python3.6
yum install python3 python3-devel -y
ln -sf /usr/bin/python3 /usr/bin/python
安装完用下面的命令升级PIP就可以正常使用了。
pip3 install --upgrade pip
测试
[root@vultrguest ~]# pip -V
pip 21.2.4 from /usr/local/lib/python3.6/site-packages/pip (python 3.6)
搞定。
较为简单的方式
https://teddysun.com/486.html
- 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
卸载:
/etc/init.d/shadowsocks stop
chkconfig --del shadowsocks
# delete config file
rm -rf /etc/shadowsocks
# delete shadowsocks
rm -f /etc/init.d/shadowsocks
rm -f /usr/bin/shadowsocks-server
ss 安装实战
对应客户端:
简单说明:
服务器端口:自己设定(如不设定,默认从 9000-19999 之间随机生成)
密码:自己设定(如不设定,默认为 teddysun.com)
加密方式:自己设定(如不设定,Python 和 libev 版默认为 aes-256-gcm,R 和 Go 版默认为 aes-256-cfb)
协议(protocol):自己设定(如不设定,默认为 origin)(仅限 ShadowsocksR 版)
混淆(obfs):自己设定(如不设定,默认为 plain)(仅限 ShadowsocksR 版)
备注:脚本默认创建单用户配置文件,如需配置多用户,请手动修改相应的配置文件后重启即可。
root 命令:
wget --no-check-certificate -O shadowsocks-all.sh https://raw.githubusercontent.com/teddysun/shadowsocks_install/master/shadowsocks-all.sh
chmod +x shadowsocks-all.sh
./shadowsocks-all.sh 2>&1 | tee shadowsocks-all.log
日志如下:
Which Shadowsocks server you'd select:
1) Shadowsocks-Python
2) ShadowsocksR
3) Shadowsocks-Go
4) Shadowsocks-libev
此处选择 1),其他自己根据需要设计即可,因为发现常规的 windows 客户端,支持的是 aes-256-gcm
安装报错:
[Error] Failed to install python
Please visit: https://teddysun.com/486.html and contact.
作者本人解释是暂时不支持高于 centeros 7 的环境,可以尝试 docker: https://teddysun.com/536.html
为了简单,我们把服务器的版本回滚到 centos7 重新尝试。
[root@vultr ~]# cat /etc/redhat-release
CentOS Linux release 7.9.2009 (Core)
再来一次。
安装成功,日志如下:
Congratulations, Shadowsocks-Python server install completed!
Your Server IP : xx.xxx.xx.xxx
Your Server Port : 13465
Your Password : xxx
Your Encryption Method: aes-256-gcm
可以把二维码信息直接导入,更加便捷。
- 卸载方法
./shadowsocks-all.sh uninstall
- 启动脚本
启动脚本后面的参数含义,从左至右依次为:启动,停止,重启,查看状态。
Shadowsocks-Python 版:
/etc/init.d/shadowsocks-python start | stop | restart | status
/etc/init.d/shadowsocks-python restart
- 默认配置
Shadowsocks-Python 版:
/etc/shadowsocks-python/config.json
无法使用
发现无法使用。
国内 telnet 没问题
国外:https://www.yougetsignal.com/tools/open-ports/ 发现国外是可以的。
建议安装 https://github.com/shadowsocks/shadowsocks-windows/releases,记得设置系统代理。
BBR
- 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