[关闭]
@qidiandasheng 2021-03-11T10:35:32.000000Z 字数 6970 阅读 3221

搭建VPS

使用工具


配置bbr加速

  1. wget no-check-certificate https://github.com/teddysun/across/raw/master/bbr.sh
  2. chmod +x bbr.sh
  3. ./bbr.sh

Ubuntu 16.04 快速配置 SS 服务端(Python)

此为Python版本的shdowsocks,好像已经不维护了,使用时常常会出现一些问题,不推荐使用。

安装SS服务

  1. sudo apt-get install python-pip
  2. sudo pip install setuptools
  3. sudo pip install wheel
  4. sudo pip install shadowsocks

我们可以使用配置文件或者命令行来设置一些启动参数,但配置文件官网上看好像也只能设置部分参数。

配置文件配置参数

编写配置文件,使用 vim /etc/shadowsocks.json 命令创建一个 ss 的配置文件, 内容如下:

  1. {
  2. "server": "0.0.0.0",
  3. "server_port": 17712,
  4. "local_address": "127.0.0.1",
  5. "local_port": 1080,
  6. "password": "123123",
  7. "timeout": 300,
  8. "method": "aes-256-cfb",
  9. "fast_open": true,
  10. "workers": 1
  11. }

启动, 停止, 重启

  1. # 启动
  2. sudo ssserver -c /etc/shadowsocks.json -d start
  3. # 停止
  4. sudo ssserver -c /etc/shadowsocks.json -d stop
  5. # 重启
  6. sudo ssserver -c /etc/shadowsocks.json -d restart

命令行配置参数

启动, 停止, 重启

  1. # 启动
  2. ssserver -m aes-256-cfb -p 17712 -k zhenqidianzhenshuai --manager-address 127.0.0.1:6001 -d start
  3. #或者
  4. 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错误,如下:

  1. INFO: loading config from /etc/shadowsocks.json
  2. 2019-11-19 15:07:53 INFO loading libcrypto from libcrypto.so.1.1
  3. Traceback (most recent call last):
  4. File "/usr/local/bin/ssserver", line 11, in <module>
  5. sys.exit(main())
  6. File "/usr/local/lib/python2.7/dist-packages/shadowsocks/server.py", line 34, in main
  7. config = shell.get_config(False)
  8. File "/usr/local/lib/python2.7/dist-packages/shadowsocks/shell.py", line 262, in get_config
  9. check_config(config, is_local)
  10. File "/usr/local/lib/python2.7/dist-packages/shadowsocks/shell.py", line 124, in check_config
  11. encrypt.try_cipher(config['password'], config['method'])
  12. File "/usr/local/lib/python2.7/dist-packages/shadowsocks/encrypt.py", line 44, in try_cipher
  13. Encryptor(key, method)
  14. File "/usr/local/lib/python2.7/dist-packages/shadowsocks/encrypt.py", line 83, in __init__
  15. random_string(self._method_info[1]))
  16. File "/usr/local/lib/python2.7/dist-packages/shadowsocks/encrypt.py", line 109, in get_cipher
  17. return m[2](method, key, iv, op)
  18. File "/usr/local/lib/python2.7/dist-packages/shadowsocks/crypto/openssl.py", line 76, in __init__
  19. load_openssl()
  20. File "/usr/local/lib/python2.7/dist-packages/shadowsocks/crypto/openssl.py", line 52, in load_openssl
  21. libcrypto.EVP_CIPHER_CTX_cleanup.argtypes = (c_void_p,)
  22. File "/usr/lib/python2.7/ctypes/__init__.py", line 379, in __getattr__
  23. func = self.__getitem__(name)
  24. File "/usr/lib/python2.7/ctypes/__init__.py", line 384, in __getitem__
  25. func = self._FuncPtr((name_or_ordinal, self))
  26. AttributeError: /usr/lib/x86_64-linux-gnu/libcrypto.so.1.1: undefined symbol: EVP_CIPHER_CTX_cleanup
  1. vi /usr/local/lib/python2.7/dist-packages/shadowsocks/crypto/openssl.py
  2. 将第52 libcrypto.EVP_CIPHER_CTX_cleanup.argtypes = (c_void_p,)
  3. 改为 libcrypto.EVP_CIPHER_CTX_reset.argtypes = (c_void_p,)
  4. 并将第111 libcrypto.EVP_CIPHER_CTX_cleanup(self._ctx)
  5. 改为 libcrypto.EVP_CIPHER_CTX_reset(self._ctx)

推荐:Ubuntu 16.04 快速配置 SS 服务端(libev)

libev版本的shdowsocks更新比较频繁,有bug作者修复速度也比较快,推荐使用。

安装SS服务

  1. sudo apt-get install software-properties-common -y
  2. sudo add-apt-repository ppa:max-c-lv/shadowsocks-libev -y
  3. sudo apt-get update
  4. sudo apt install shadowsocks-libev

卸载

  1. sudo apt-get remove shadowsocks-libev

单用户配置

单用户配置使用命令:ss-server

配置文件配置参数

shadowsocks-divev 生成的默认配置文件在 /etc/shadowsocks-libev/config.json,编辑:

  1. {
  2. "server":"0.0.0.0",
  3. "server_port":17712,
  4. "local_port":1080,
  5. "password":"123456",
  6. "timeout":60,
  7. "method":"aes-256-cfb"
  8. }

启动, 停止, 重启

  1. # 启动
  2. sudo ss-server -c /etc/shadowsocks-libev/config.json start
  3. # 停止
  4. sudo ss-server -c /etc/shadowsocks-libev/config.json stop
  5. # 重启
  6. sudo ss-server -c /etc/shadowsocks-libev/config.json restart

命令行配置参数

启动, 停止, 重启

  1. # 启动
  2. ss-server -s 0.0.0.0 -p 17712 -k 123456 -m aes-256-cfb start
  3. #或者
  4. 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,编辑:

  1. {
  2. "server": "0.0.0.0", # 你vps的ip地址
  3. "local_port": 1080, # 本地端口,自行设定
  4. "timeout": 600, # 超时毫秒数
  5. "method": "aes-256-cfb", # 加密方式,建议优先选chacha20-ietf-poly1305,若客户端不支持,可选aes-256-cfb
  6. "port_password": {
  7. "17712": "123456", # 端口号与密码
  8. "17713": "1234567"
  9. }
  10. }

启动, 停止, 重启

  1. # 启动
  2. sudo ss-manager -c /etc/shadowsocks-libev/ss_managerConfig.json -d start
  3. # 停止
  4. sudo ss-manager -c /etc/shadowsocks-libev/ss_managerConfig.json -d stop
  5. # 重启
  6. sudo ss-manager -c /etc/shadowsocks-libev/ss_managerConfig.json -d restart

命令行配置参数

启动, 停止, 重启

  1. # 启动
  2. ss-manager -m aes-256-cfb -u --manager-address 127.0.0.1:6001 -d start
  3. #或者
  4. pm2 --name "ss-manager" -f start ss-manager -x -- -m aes-256-cfb -u --manager-address 127.0.0.1:6001

shadowsocks-manager

shadowsocks-manager是一个非常帅气的ss多用户管理程序。

  1. npm i -g shadowsocks-manager --unsafe-perm

redis安装

SSMGR从 0.30 版本开始必需要配置 redis。

  1. sudo apt-get update
  2. sudo apt-get install redis-server

启动

  1. redis-server
  2. #警告
  3. Increased maximum number of open files to 10032 (it was originally set to 1024).
  4. #解决
  5. #查看系统限制
  6. [root@centos224]# ulimit -a
  7. #设置“open files”数量
  8. [root@centos224]# ulimit -n 10032
  9. #或者设置用户限制
  10. [root@centos224]# vi /etc/security/limits.conf

检查及设置密码

  1. redis-cli

此时,当你输入ping回车显示PONG则表示Redis安装成功。

  1. config set requirepass PASSWD //将PASSWD替换成你要设置的密码
  2. auth PASSWD //验证密码
  3. config get requirepass //查询密码

vi /root/.ssmgr/ss.yml

  1. type: s
  2. shadowsocks:
  3. address: 127.0.0.1:6001
  4. #这里的地址和端口需要跟上一步的ss-manager设置的参数--manager-address保持一致
  5. manager:
  6. address: 0.0.0.0:4009
  7. # 这个 address 参数会让程序监听一个 tcp 端口,用于接收 webgui 发送过来的控制命令
  8. password: '123456'
  9. db: 'ss.sqlite'

vi /root/.ssmgr/webgui.yml

  1. type: m
  2. manager:
  3. address: 127.0.0.1:4009
  4. password: '123456'
  5. #这里与上面设置的manager一致
  6. plugins:
  7. flowSaver:
  8. use: true
  9. user:
  10. use: true
  11. account:
  12. use: true
  13. pay:
  14. hour:
  15. price: 0.05
  16. flow: 500000000
  17. day:
  18. price: 0.5
  19. flow: 7000000000
  20. week:
  21. price: 3
  22. flow: 50000000000
  23. month:
  24. price: 10
  25. flow: 200000000000
  26. season:
  27. price: 30
  28. flow: 200000000000
  29. year:
  30. price: 120
  31. flow: 200000000000
  32. email:
  33. use: true
  34. username: '398411773@qq.com'
  35. password: '邮箱密码'
  36. host: 'smtp.qq.com'
  37. port: 465
  38. webgui:
  39. use: true
  40. host: '0.0.0.0'
  41. port: '80'
  42. site: 'http://www.site.com'
  43. gcmSenderId: '456102641793'
  44. gcmAPIKey: 'AAAAGzzdqrE:XXXXXXXXXXXXXX'
  45. alipay:
  46. use: true
  47. appid:
  48. notifyUrl: ''
  49. merchantPrivateKey: ''
  50. alipayPublicKey: ''
  51. gatewayUrl: 'https://openapi.alipay.com/gateway.do'
  52. db: 'webgui.sqlite'
  53. redis:
  54. host: '127.0.0.1'
  55. port: 6379
  56. password: '123456'
  57. db: 0

启动ssmgr加载ss.yml配置文件

  1. ssmgr -c /root/.ssmgr/ss.yml

如果没有报错的话,就可以结束运行并放到后台运行了

  1. screen -dmS ssmgr ssmgr -c /root/.ssmgr/ss.yml
  2. 或者
  3. pm2 --name "ss.yml" -f start ssmgr -x -- -c /root/.ssmgr/ss.yml
  4. #如果失败可能是pm2读取的ssmgr的路径问题
  5. pm2 --name "ss.yml" -f start /usr/local/bin/ssmgr -x -- -c /root/.ssmgr/ss.yml

启动ssmgr加载webgui.yml配置文件

  1. ssmgr -c /root/.ssmgr/webgui.yml

如果没有报错的话,就可以结束运行并放到后台运行了

  1. screen -dmS webgui ssmgr -c /root/.ssmgr/webgui.yml
  2. 或者
  3. pm2 --name "webgui.yml" -f start ssmgr -x -- -c /root/.ssmgr/webgui.yml
  4. #如果失败可能是pm2读取的ssmgr的路径问题
  5. pm2 --name "webgui.yml" -f start /usr/local/bin/ssmgr -x -- -c /root/.ssmgr/webgui.yml

其他命令

  1. 停止所有名称中包含`ssmgr``ss-manager`的进程
  2. ps -ef|grep ssmgr|grep -v grep|cut -c 9-15|xargs kill -9
  3. ps -ef|grep ss-manager|grep -v grep|cut -c 9-15|xargs kill -9
  1. pm2 list
  2. pm2 delete all
  1. pm2 --name "ss-manager" -f start ss-manager -x -- -m aes-256-cfb -u --manager-address 0.0.0.0:4000 &
  2. pm2 --name "ss.yml" -f start /usr/local/bin/ssmgr -x -- -c /root/.ssmgr/ss.yml &
  3. 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一键安装脚本

添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注