@qidiandasheng
2021-03-11T10:35:32.000000Z
字数 6970
阅读 3221
使用工具
wget –no-check-certificate https://github.com/teddysun/across/raw/master/bbr.sh
chmod +x bbr.sh
./bbr.sh
此为Python版本的shdowsocks,好像已经不维护了,使用时常常会出现一些问题,不推荐使用。
sudo apt-get install python-pip
sudo pip install setuptools
sudo pip install wheel
sudo pip install shadowsocks
我们可以使用配置文件或者命令行来设置一些启动参数,但配置文件官网上看好像也只能设置部分参数。
编写配置文件,使用 vim /etc/shadowsocks.json 命令创建一个 ss 的配置文件, 内容如下:
{
"server": "0.0.0.0",
"server_port": 17712,
"local_address": "127.0.0.1",
"local_port": 1080,
"password": "123123",
"timeout": 300,
"method": "aes-256-cfb",
"fast_open": true,
"workers": 1
}
启动, 停止, 重启
# 启动
sudo ssserver -c /etc/shadowsocks.json -d start
# 停止
sudo ssserver -c /etc/shadowsocks.json -d stop
# 重启
sudo ssserver -c /etc/shadowsocks.json -d restart
启动, 停止, 重启
# 启动
ssserver -m aes-256-cfb -p 17712 -k zhenqidianzhenshuai --manager-address 127.0.0.1:6001 -d start
#或者
pm2 --name "ssserver" -f start ssserver -x -- -m aes-256-cfb -p 17712 -k zhenqidianzhenshuai --manager-address 127.0.0.1:6001
-p:端口
-k:密码
--manager-address: ss服务管理者的UDP地址
在将openssl升级到1.1.0以上版本后,Shadowsocks 2.8.2 启动时会报undefined symbol: EVP_CIPHER_CTX_cleanup错误,如下:
INFO: loading config from /etc/shadowsocks.json
2019-11-19 15:07:53 INFO loading libcrypto from libcrypto.so.1.1
Traceback (most recent call last):
File "/usr/local/bin/ssserver", line 11, in <module>
sys.exit(main())
File "/usr/local/lib/python2.7/dist-packages/shadowsocks/server.py", line 34, in main
config = shell.get_config(False)
File "/usr/local/lib/python2.7/dist-packages/shadowsocks/shell.py", line 262, in get_config
check_config(config, is_local)
File "/usr/local/lib/python2.7/dist-packages/shadowsocks/shell.py", line 124, in check_config
encrypt.try_cipher(config['password'], config['method'])
File "/usr/local/lib/python2.7/dist-packages/shadowsocks/encrypt.py", line 44, in try_cipher
Encryptor(key, method)
File "/usr/local/lib/python2.7/dist-packages/shadowsocks/encrypt.py", line 83, in __init__
random_string(self._method_info[1]))
File "/usr/local/lib/python2.7/dist-packages/shadowsocks/encrypt.py", line 109, in get_cipher
return m[2](method, key, iv, op)
File "/usr/local/lib/python2.7/dist-packages/shadowsocks/crypto/openssl.py", line 76, in __init__
load_openssl()
File "/usr/local/lib/python2.7/dist-packages/shadowsocks/crypto/openssl.py", line 52, in load_openssl
libcrypto.EVP_CIPHER_CTX_cleanup.argtypes = (c_void_p,)
File "/usr/lib/python2.7/ctypes/__init__.py", line 379, in __getattr__
func = self.__getitem__(name)
File "/usr/lib/python2.7/ctypes/__init__.py", line 384, in __getitem__
func = self._FuncPtr((name_or_ordinal, self))
AttributeError: /usr/lib/x86_64-linux-gnu/libcrypto.so.1.1: undefined symbol: EVP_CIPHER_CTX_cleanup
vi /usr/local/lib/python2.7/dist-packages/shadowsocks/crypto/openssl.py
将第52行 libcrypto.EVP_CIPHER_CTX_cleanup.argtypes = (c_void_p,)
改为 libcrypto.EVP_CIPHER_CTX_reset.argtypes = (c_void_p,)
并将第111行 libcrypto.EVP_CIPHER_CTX_cleanup(self._ctx)
改为 libcrypto.EVP_CIPHER_CTX_reset(self._ctx)
libev版本的shdowsocks更新比较频繁,有bug作者修复速度也比较快,推荐使用。
sudo apt-get install software-properties-common -y
sudo add-apt-repository ppa:max-c-lv/shadowsocks-libev -y
sudo apt-get update
sudo apt install shadowsocks-libev
sudo apt-get remove shadowsocks-libev
单用户配置使用命令:ss-server
配置文件配置参数
shadowsocks-divev 生成的默认配置文件在 /etc/shadowsocks-libev/config.json
,编辑:
{
"server":"0.0.0.0",
"server_port":17712,
"local_port":1080,
"password":"123456",
"timeout":60,
"method":"aes-256-cfb"
}
启动, 停止, 重启
# 启动
sudo ss-server -c /etc/shadowsocks-libev/config.json start
# 停止
sudo ss-server -c /etc/shadowsocks-libev/config.json stop
# 重启
sudo ss-server -c /etc/shadowsocks-libev/config.json restart
命令行配置参数
启动, 停止, 重启
# 启动
ss-server -s 0.0.0.0 -p 17712 -k 123456 -m aes-256-cfb start
#或者
pm2 --name "ss-server" -f start ss-server -x -- -s 0.0.0.0 -p 17712 -k 123456 -m aes-256-cfb
多用户配置使用命令:ss-manager
,推荐配合下面的shadowsocks-manager
使用。
配置文件配置参数
shadowsocks-divev 生成的多用户的配置文件在 /etc/shadowsocks-libev/ss_managerConfig.json
,编辑:
{
"server": "0.0.0.0", # 你vps的ip地址
"local_port": 1080, # 本地端口,自行设定
"timeout": 600, # 超时毫秒数
"method": "aes-256-cfb", # 加密方式,建议优先选chacha20-ietf-poly1305,若客户端不支持,可选aes-256-cfb
"port_password": {
"17712": "123456", # 端口号与密码
"17713": "1234567"
}
}
启动, 停止, 重启
# 启动
sudo ss-manager -c /etc/shadowsocks-libev/ss_managerConfig.json -d start
# 停止
sudo ss-manager -c /etc/shadowsocks-libev/ss_managerConfig.json -d stop
# 重启
sudo ss-manager -c /etc/shadowsocks-libev/ss_managerConfig.json -d restart
命令行配置参数
启动, 停止, 重启
# 启动
ss-manager -m aes-256-cfb -u --manager-address 127.0.0.1:6001 -d start
#或者
pm2 --name "ss-manager" -f start ss-manager -x -- -m aes-256-cfb -u --manager-address 127.0.0.1:6001
shadowsocks-manager是一个非常帅气的ss多用户管理程序。
npm i -g shadowsocks-manager --unsafe-perm
SSMGR从 0.30 版本开始必需要配置 redis。
sudo apt-get update
sudo apt-get install redis-server
启动
redis-server
#警告
Increased maximum number of open files to 10032 (it was originally set to 1024).
#解决
#查看系统限制
[root@centos224]# ulimit -a
#设置“open files”数量
[root@centos224]# ulimit -n 10032
#或者设置用户限制
[root@centos224]# vi /etc/security/limits.conf
检查及设置密码
redis-cli
此时,当你输入ping回车显示PONG则表示Redis安装成功。
config set requirepass PASSWD //将PASSWD替换成你要设置的密码
auth PASSWD //验证密码
config get requirepass //查询密码
type: s
shadowsocks:
address: 127.0.0.1:6001
#这里的地址和端口需要跟上一步的ss-manager设置的参数--manager-address保持一致
manager:
address: 0.0.0.0:4009
# 这个 address 参数会让程序监听一个 tcp 端口,用于接收 webgui 发送过来的控制命令
password: '123456'
db: 'ss.sqlite'
type: m
manager:
address: 127.0.0.1:4009
password: '123456'
#这里与上面设置的manager一致
plugins:
flowSaver:
use: true
user:
use: true
account:
use: true
pay:
hour:
price: 0.05
flow: 500000000
day:
price: 0.5
flow: 7000000000
week:
price: 3
flow: 50000000000
month:
price: 10
flow: 200000000000
season:
price: 30
flow: 200000000000
year:
price: 120
flow: 200000000000
email:
use: true
username: '398411773@qq.com'
password: '邮箱密码'
host: 'smtp.qq.com'
port: 465
webgui:
use: true
host: '0.0.0.0'
port: '80'
site: 'http://www.site.com'
gcmSenderId: '456102641793'
gcmAPIKey: 'AAAAGzzdqrE:XXXXXXXXXXXXXX'
alipay:
use: true
appid:
notifyUrl: ''
merchantPrivateKey: ''
alipayPublicKey: ''
gatewayUrl: 'https://openapi.alipay.com/gateway.do'
db: 'webgui.sqlite'
redis:
host: '127.0.0.1'
port: 6379
password: '123456'
db: 0
ssmgr -c /root/.ssmgr/ss.yml
如果没有报错的话,就可以结束运行并放到后台运行了
screen -dmS ssmgr ssmgr -c /root/.ssmgr/ss.yml
或者
pm2 --name "ss.yml" -f start ssmgr -x -- -c /root/.ssmgr/ss.yml
#如果失败可能是pm2读取的ssmgr的路径问题
pm2 --name "ss.yml" -f start /usr/local/bin/ssmgr -x -- -c /root/.ssmgr/ss.yml
ssmgr -c /root/.ssmgr/webgui.yml
如果没有报错的话,就可以结束运行并放到后台运行了
screen -dmS webgui ssmgr -c /root/.ssmgr/webgui.yml
或者
pm2 --name "webgui.yml" -f start ssmgr -x -- -c /root/.ssmgr/webgui.yml
#如果失败可能是pm2读取的ssmgr的路径问题
pm2 --name "webgui.yml" -f start /usr/local/bin/ssmgr -x -- -c /root/.ssmgr/webgui.yml
停止所有名称中包含`ssmgr`、`ss-manager`的进程
ps -ef|grep ssmgr|grep -v grep|cut -c 9-15|xargs kill -9
ps -ef|grep ss-manager|grep -v grep|cut -c 9-15|xargs kill -9
pm2 list
pm2 delete all
pm2 --name "ss-manager" -f start ss-manager -x -- -m aes-256-cfb -u --manager-address 0.0.0.0:4000 &
pm2 --name "ss.yml" -f start /usr/local/bin/ssmgr -x -- -c /root/.ssmgr/ss.yml &
pm2 --name "webgui.yml" -f start /usr/local/bin/ssmgr -x -- -c /root/.ssmgr/webgui.yml &
https://www.banwago.com/1265.html
https://www.bandwagonhost.net/1934.html
利用Shadowsocks-Manager搭建多用户管理ss
用Kcptun给Shadowsocks加速
一款优秀的ss多用户管理面板
Shadowsocks 使用说明
KCPTUN-网络加速方案
shadowsocks-manager一键安装脚本