欢迎光临
我们一直在努力

Shadowsocks配合SS-panel 部署教程

就目前国情来看,我们爱技术的国人必备技能便是翻墙神技了,不过我也来目测个2、8原则吧,20%的人都是自己创造梯子,80%都在使用免费的或者收费的梯子,那么尤其是像我这种自己修梯子并且分享给朋友们一起使用的人来说,如果去管理呢,幸好某大神开发了ss-panel管理程序,那么就在此介绍下如何部署吧。

部署环境:

Ubuntu16.04+Nginx1.10.0+Mysql5.7+PHP7

首先保证VPS能够正常提供LNMP服务,如果自己不会安装可以选择军哥的lnmp或者oneStack一键安装包。

一、更新系统并安装第三方组件

二、下载ss-panel

请在下载页面查看最新版本 https://github.com/orvice/ss-panel/releases

这里以ss-panel下载至/data/www/ss-panel目录为例:

三、服务器配置

四、导入数据库

将db.sql导入数据库中

五、修改配置文件,并且设置权限

/data/www/ss-panel/ 中复制一份配置文件:

编辑:

此处需要注意,randomKey是随便填的,mysql的话不要使用root用户,新建一个用户,赋予这个用户对ss-panel库的增删改差索引这5个权限,基本上已经算权限很大了,此处推荐新建两个用户,一个用户用于ss-panel使用高权限的CRUD,一个用户用于后端ss的管理,只需要select,insert,index即可。发邮件的推荐使用MailGun,由于我是早就注册的账户可以直接使用,但是不要使用中国的IP注册,会被禁用账户的。其余参数可根据自己的需求修改。

Mysql权限设置:

username:数据库用户名;yourpassword:数据吗密码;dbname,数据库名称。

设置权限:

六、使用composer安装第三方库

如果出现错误,请按照错误信息安装相应的php模块,然后再执行 php composer.phar install

到此,ss-panel安装完毕。

七、添加管理员

根据提示创建管理员帐号。

创建成功后登录可以在/admin进行管理。

常用命令:


到此为止ss-panel的管理网站已经搭建完毕。那么后面就与后端服务器配合在一起使用:

八、安装后台服务器所要的依赖

九、下载ss后端服务


此处推荐使用破娃酱的Python版本,称之为ssr。支持ss-panel几乎所有的功能。

十、安装shadowsocks

安装cymysql:

十一、配置apiconfig.py



修改config.json:

如此配置既可以启动后端服务:

出现以下日志:

就算ss-panel与后端ss连接成功。启动服务推荐使用supervisor管理《使用supervisor来进行后台进程管理

注意事项:

1.由于ss-panel作者疏忽大意,db.sql中少一个表,造成了发邮件的时候出现500错误:

2.在我管理过程中,发现注册时间居然会自动更新为使用时间:

3.刚开始我是用的是作者推荐的两个分支:shadowsocks manyuser 和shadowsocks-go mu。最后我是用了破娃酱的分支:

shadowsocks manyuser python版本的,配置很简单,但是不支持用户统计,节点状态等功能,shadowsocks-go mu虽然支持,但是并不是很好,不支持UDP。最后使用了破娃酱的分支,很好用,manyuser更新很快,我安装完才一周,发现她已经将muapi和mysqlapi分别用两个文件分开配置了,请各位在使用时注意差别,多查看Issues,很多问题都可以很轻松解决啦。

4.如果有需要区分付费用户,那么自然就要使用破娃酱的分支了。

修改两行注释:

在user表中新增字段plan,并且找一个测试用户填写内容为B,那么在启动ss服务的时候就会只启动plan为B的用户,别的用户边无法使用该机器。如果有需要的话,推荐三台节点:DigitalOcean的新加坡节点,HostUS的香港节点,Vultr的日本节点,当然最好是Linode的日本节点。我是开启了5个免费的节点,新加坡、香港、日本、美国。本想在开一个欧洲的节点,发现欧洲的延迟比美国的差太多,而且用户群很少,于是打算开两个新加坡或者日本的。使用BanWaGongHost年付19美元的也可以搭建一个。

最后安利一下我的网站https://www.getgreenss.com,欢迎有需要的人前来注册使用。

sspanel

统计流量使用情况:

sspanelliuliang

 

未经允许不得转载:李阳博客 » Shadowsocks配合SS-panel 部署教程

评论 65

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址
  1. #-49

    非常详细,过一阵我也是试试水

    NickYang
    0
    8个月前 (07-27)回复
    • 好的,装好了记得让我去踩踩点。。。

      admin
      博主
      8个月前 (07-27)回复
  2. #-48

    你这价格如何?YouTube的视频1080P能看吗?

    dujin
    0
    8个月前 (07-27)回复
    • 免费使用,建议你搞个头像哈~

      admin
      博主
      8个月前 (07-27)回复
  3. #-47

    非常详细!昨天才搭建了一个v2的!
    博主能保持维护就好了

    XWW
    0
    8个月前 (07-28)回复
    • 放心吧,服务器都是明年才过期的。大家表现良好的话我就会一直开下去。望只用来学习技术,可别干其他事哈~

      admin
      博主
      8个月前 (07-28)回复
      • 我觉得博主你在添加数据库用户的时候应该再写一写,然后sspanel配置修改,加public的那里,最后把文件位置也写上。小白也能很好看懂,不然看到那里一脸蒙逼

        XWW
        0
        8个月前 (07-30)回复
        • 好的,等会儿修改一下就可以

          admin
          博主
          8个月前 (07-30)回复
  4. #-46

    你好,邮箱发送验证码,按着你的表,新建后,我怎么还是 500错误。郁闷。。

    vps的爱好者
    0
    8个月前 (07-31)回复
    • 你好,请把错误发邮件给我,我帮你看看吧

      admin
      博主
      8个月前 (08-01)回复
  5. #-45

    我填写了API数据,可是还是无法正常获取mu数据 怎么办?

    OnionNet
    0
    8个月前 (08-08)回复
    • 仔细查看mu的密码和你SS上的密码是否一致

      admin
      博主
      8个月前 (08-11)回复
  6. #-44

    你好,楼主,我按照您的步骤,拉取了最新的破娃的版本,我没执行您上面的第10步:pip install shadowsocks。按照您的配置之后,运行python server.py 出现以下错误:# python server.py
    loaded collections.OrderedDict
    IPv6 support
    Exception in thread Thread-1:
    Traceback (most recent call last):
    File “/usr/lib/python2.7/threading.py”, line 801, in __bootstrap_inner
    self.run()
    File “server.py”, line 38, in run
    self.obj.thread_db(self.obj)
    File “/data/www/ss-panel/shadowsocks/db_transfer.py”, line 177, in thread_db
    db_instance = obj()
    File “/data/www/ss-panel/shadowsocks/db_transfer.py”, line 320, in __init__
    super(Dbv3Transfer, self).__init__()
    File “/data/www/ss-panel/shadowsocks/db_transfer.py”, line 221, in __init__
    self.load_cfg()
    File “/data/www/ss-panel/shadowsocks/db_transfer.py”, line 225, in load_cfg
    config_path = get_config().MYSQL_CONFIG
    AttributeError: ‘module’ object has no attribute ‘MYSQL_CONFIG’
    希望楼主能更新下教程,可能是破娃的版本更新?谢谢,期待您的回复~

    joe
    0
    7个月前 (08-13)回复
    • 你好,破娃酱的经常会更新,但只是配置文件的使用方法的更新,现在的配置文件分成了几部分。回头我拉取个最新版再次更新一下。

      admin
      博主
      7个月前 (08-14)回复
  7. #-43

    博主,session,cache 可选 file/redis
    这里我选file正常,选redis网站就挂了显示Slim Application Error,这个怎么解决?

    兔子
    0
    7个月前 (08-17)回复
    • 确定你的redis事可用的

      admin
      博主
      7个月前 (08-23)回复
  8. #-42

    原因是作者在最新版本数据库reg_date时间戳属性 改成了ON UPDATE CURRENT_TIMESTAMP 把ON UPDATE去掉即可

    希望楼主提供下这个SQL的命令格式,百度一下没有,谷歌也没有,对MYSQL着实不熟,谢谢博主!

    Ashe
    0
    7个月前 (08-17)回复
    • 就是修改默认值为CURRENT_TIMESTAMP
      alter table ss_user timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP

      admin
      博主
      7个月前 (08-23)回复
      • MySQL 返回: 文档

        #1064 – You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ‘CURRENT_TIMESTAMP alter table user timestamp NOT NULL DEFAULT CURRENT_TIMESTAM’ at line 1

        博主你提供的SQL命令查询出错,是不是哪里需要修改

        Ashe
        0
        7个月前 (08-26)回复
  9. #-41

    这就是 ssr manyuser 运行的日志

    2016-08-19 05:22:43 INFO util.py:85 loading libcrypto from libcrypto.so.10
    Shadowsocks
    2016-08-19 05:22:43 INFO asyncdns.py:324 dns server: [(‘8.8.8.8’, 53), (‘8.8.4.4’, 53

    yourpockwa
    0
    7个月前 (08-20)回复
  10. #-40

    root@ubuntu:/data/shadowsocks# vi config.json
    {
    “server”: “0.0.0.0”,
    “server_ipv6”: “::”,
    “server_port”: 19999,
    “local_address”: “127.0.0.1”,
    “local_port”: 1080,
    “password”: “GFRSDFGTHW”,
    “timeout”: 120,
    “udp_timeout”: 60,
    “method”: “aes-256-cfb”,
    “protocol”: “auth_sha1_compatible”,
    “protocol_param”: “”,
    “obfs”: “http_simple_compatible”,
    “obfs_param”: “”,
    “dns_ipv6”: false,
    “connect_verbose_info”: 1,
    “redirect”: “”,
    “fast_open”: false
    } 这里写 19999端口 默认 8838 要改吗 ???? 而且新版sspanelV3 是从 1025端口 开始 n+1的吧 你怎么直接就30000 n+1 ?????

    pcokboom
    0
    7个月前 (08-20)回复
    • 手动修改端口到30000就可以了。那个端口可改可不改,要改的话都得改成一样的

      admin
      博主
      7个月前 (08-23)回复
  11. #-39

    破娃酱的shadowsocks不支持OTA吧,不过感觉她的混淆现在来说投入使用超级不稳定还出过问题,而且以后也说不定也是鸡肋。shadowsocks-go mu的作者确实很粗心,而且也很懒,不管是sspanel还是go mu,wiki简直少得可怜。当我看到v2ray的wiki的时候,简直欲哭无泪,现在已投入v2ray的怀抱。

    zoakerc
    0
    7个月前 (08-20)回复
    • 总的来说还不错,代码也是Python,有些不尽人意的地方可以自己修改。

      admin
      博主
      7个月前 (08-23)回复
  12. #-38

    你的ss 站点被攻击了 好像

    faco
    0
    7个月前 (08-25)回复
    • 是的,被攻击了一天

      admin
      博主
      7个月前 (08-28)回复
  13. #-37

    在user表中新增字段plan,并且找一个测试用户填写内容为B,那么在启动ss服务的时候就会只启动plan为B的用户,别的用户边无法使用该机器。如果有需要的话:
    这个代码实现的功能 是 计划B 用户能使用所有机器 不在计划B的用户 一个机器都使用不了 吗 假设有4台机器

    xiaoandjack1994
    0
    7个月前 (08-26)回复
    • 在那台机器配置了就那台机器只能某个类型的用户访问。

      admin
      博主
      7个月前 (08-28)回复
  14. #-36

    博主 你的 B用户的 字段 类型是什么??? 默认值又是多少

    xiaoandjack1994
    0
    7个月前 (08-26)回复
    • plan,默认值可以随意,我的是free 收费用户是VIP,当然没打算收费,设置着玩玩

      admin
      博主
      7个月前 (08-28)回复
  15. #-35

    Field | Type | Collation | Null | Key | Default | Extra | Privileges | Comment
    planB这几个参数是是是什么 。。然后 并且找一个测试用户填写内容为B 这句话翻译成代码 要如何执行

    需要老司机指点

    xiaoandjack1994
    0
    7个月前 (08-26)回复
    • 需要在用户表中新增一个字段,类型为varchar,默认值可随意。我的是free

      admin
      博主
      7个月前 (08-28)回复
  16. #-34

    哦哦哦 老司机我大姨了 。。。。。。ield | Type | Collation | Null | Key | Default | Extra | Privileges | Comment

    加字符段的时候 这几个参数值 写什么 mysql 语句执行 请老司机赐教

    xiaoandjack1994
    0
    7个月前 (08-26)回复
    • 你可以选择用mysql管理工具新增字段,很方便的。不需要SQL代码。

      admin
      博主
      7个月前 (08-28)回复
  17. #-33

    api分开了。。找不到。。。蛋疼

    Mr.Lin
    0
    7个月前 (08-27)回复
    • 其实仔细看配置,作者只是将配置文件按类放在不同的文件,然后在总得配置文件中引用了。

      admin
      博主
      7个月前 (08-28)回复
      • apiconfig.py 文件
        # Config
        API_INTERFACE = ‘sspanelv3’ #mudbjson, sspanelv2, sspanelv3, sspanelv3ssr, muapiv2(not support)
        UPDATE_TIME = 60
        SERVER_PUB_ADDR = ‘127.0.0.1’ # mujson_mgr need this to generate ssr link

        #mudb
        MUDB_FILE = ‘mudb.json’

        # Mysql
        MYSQL_CONFIG = ‘usermysql.json’

        # API
        MUAPI_CONFIG = ‘usermuapi.json

        usermuapi.json 这个没找到

        Mr.Lin
        0
        7个月前 (08-28)回复
  18. #-32

    博主~~我想问问要是用v2版本的~~区分用户那 应该要怎么改? 谢谢~~

    lawject
    0
    7个月前 (08-29)回复
    • 博客里说的很清楚啊,给用户表新增一个plan字段,然后打开Shadowsocks目录下地switchrule.py文件。将注释放开,并且吧原来的代码加上注释即可

      admin
      博主
      7个月前 (09-01)回复
  19. #-31

    都配置好了之后发现,注册的时候发邮件发不出来。第一次接触mailgun,帮忙看看原因。
    日志来看是说帐号没激活,但是domain那里显示的是active了。
    “reject”: {
    “reason”: “Please activate your Mailgun account. Check your inbox or log in to your control panel to resend the activation email.”,
    “description”: “”
    },
    配了下面三个参数,,博主给看看可能是什么原因
    mailgun_key
    mailgun_domain
    mailgun_sender

    ZYF
    0
    6个月前 (09-13)回复
    • 抱歉,最近一段时间没怎么上过博客。在绑定好maingun的域名后,会检查mx和txt的状态,确定这些都是绿色的?

      admin
      博主
      6个月前 (09-27)回复
  20. #-30

    你好,请问如何配置ss-panel和vpn不再同一台服务器呢?

    斯莱达
    0
    6个月前 (09-20)回复
  21. #-29

    博主,能不能弄一个最新版本的教程,现在都好多地方改动了,我按照你的教程总是或多或少的出现问题

    unbok
    0
    6个月前 (10-02)回复
  22. #-28

    老大,帮我看看啥问题啊
    INFO: loading config from user-config.json
    2016-10-09 02:28:29 INFO util.py:85 loading libcrypto from libcrypto.so.1.0.0
    /shadowsocks/shadowsocks/shell.py:59: UserWarning: Module shadowsocks was already imported from /shadowsocks/shadowsocks/__init__.py, but /usr/local/lib/python2.7/dist-packages is being added to sys.path
    import pkg_resources
    Shadowsocks 2.8.2
    2016-10-09 02:28:29 INFO asyncdns.py:324 dns server: [(‘8.8.8.8’, 53), (‘8.8.4.4’, 53), (‘69.197.136.227’, 53)]
    2016-10-09 02:28:29 INFO db_transfer.py:201 current process RLIMIT_NOFILE resource: soft 1024 hard 4096
    2016-10-09 02:28:29 INFO db_transfer.py:171 db start server at port [1025] pass [RzifIg] protocol [auth_sha1_v2_compatible] method [rc4-md5] obfs [http_simple_compatible]
    2016-10-09 02:28:29 INFO server_pool.py:128 starting server at [::]:1025
    2016-10-09 02:28:29 INFO server_pool.py:154 starting server at 0.0.0.0:1025

    unbok
    0
    6个月前 (10-09)回复
  23. #-27

    博主您好,在编辑ss服务端的配置文件时发现和您的不同,貌似作者把配置文件单独存放了,请问mysq 和api的配置文件在哪里啊,翻遍目录也没有找到。。。。。期待您的指点 还有 您说多查看Issues,请问这个Issues是什么,刚刚接触这个,也许问题有点傻。。。。

    瑞恩
    0
    5个月前 (10-14)回复
  24. #-26

    不错哦,话说速度如何?

    小z博客
    0
    5个月前 (10-25)回复
  25. #-25

    看了ss-panel的教程,最终后端也没有部署成功,于是自己造了一个轮子,通过前端自主注册开通ss账号,即将开放公测。

    小z博客
    0
    5个月前 (10-31)回复
  26. #-24

    老大,看着你的教程,在修改apiconfig.py和usermysql.json无法保存。也用命令提升了两个文件的权限,可是修改后依然不能保存。请帮助

    dewooo
    0
    3个月前 (01-01)回复
    • ls -l 看一下有没有.vim之类的,估计是你上次修改的时候掉线或者什么,不能进行保存。如果有的话把这个删除了就好

      admin
      博主
      2个月前 (01-09)回复
  27. #-23

    最好老大能做个视频教程,让我们这些新手也可以直观点清楚的了解你大作。

    dewooo
    0
    3个月前 (01-01)回复
    • 额。。视频就不用了吧~ 步骤也算是比较明确的了。

      admin
      博主
      2个月前 (01-09)回复
  28. #-22

    你好,我用的是oneinstack的lnmp环境,sspanel后台不能创建邀请码是什么问题呢?

    encore
    0
    3个月前 (01-08)回复
    • 一般都是权限问题。仔细检查下, 多看看issue

      admin
      博主
      2个月前 (01-09)回复
  29. #-21

    这后端和前端是装在同一个服务器吗

    新手
    0
    1个月前 (02-11)回复
    • 后端有几个节点就装在几个机器上,前端可以放在任意一台机器,如果用户量大也可以进行多机部署,根据IP指向不同的服务器

      李阳
      博主
      1个月前 (02-14)回复
  30. #-20

    服务器都是国外的,是不是相当于用户想访问前端页面也得翻一下了?

    huanhoo
    0
    1个月前 (02-14)回复
    • 那倒不需要,除非你的服务器被墙了,一般用你的服务器去翻墙的首要条件就是这台服务器不能被GFW给墙了,不然并没有什么卵用

      李阳
      博主
      1个月前 (02-14)回复
  31. #-19

    一台服务器部署 ss-panel ,其他服务器部署shadowsocks-manyuser 这样可以吗

    Lucas
    0
    1个月前 (02-22)回复
    • 本来就是这样部署的

      李阳
      博主
      3周前 (03-01)回复
  32. #-18

    博主 我的ssr运行一段时间后就出现无法链接的状况 定时重启服务端也没用貌似 只能重启vps
    看了下log
    18:11:17 ERROR tcprelay.py:934 remote error, when connect to http://www.onclickcool.com:443
    2017-03-07 18:13:03 INFO tcprelay.py:1215 port 10139 connections up to 25
    2017-03-07 18:13:10 ERROR tcprelay.py:932 [Errno 111] Connection refused
    2017-03-07 18:13:10 ERROR tcprelay.py:934 remote error, when connect to

    http://www.onclickcool.com:443
    2017-03-07 18:17:02 INFO tcprelay.py:1218 port 10139 connections down to 0
    2017-03-07 18:47:27 ERROR tcprelay.py:988 unknown hostname

    hopwymdrjej when handling connection from ::ffff:58.212.235.167:5525
    2017-03-07 18:47:27 ERROR tcprelay.py:988 unknown hostname cjnweujopy when handling connection

    from ::ffff:58.212.235.167:5523
    2017-03-07 18:47:27 ERROR tcprelay.py:988 unknown hostname mbropzg when handling connection from ::ffff:58.212.235.167:5524
    2017-03-07

    19:42:40 INFO tcprelay.py:1242 Total connections down to 0
    2017-03-07 19:45:49 INFO tcprelay.py:1215 port 10139 connections up to 25
    2017-03-07 19:49:05 INFO

    tcprelay.py:1218 port 10139 connections down to 0
    2017-03-07 21:26:01 INFO tcprelay.py:1215 port 10137 connections up to 25
    2017-03-07 21:33:26 ERROR shell.py:50

    [Errno 107] Transport endpoint is not connected
    2017-03-07 21:33:57 WARNING tcprelay.py:982 unknown socket from ::ffff:183.6.147.254:39786
    2017-03-07 21:34:03 WARNING

    tcprelay.py:982 unknown socket from ::ffff:222.220.33.76:9979

    具体是真不知道哪出问题了 还望解答

    sodaer
    0
    2周前 (03-08)回复
    • 看样子有2个判断:
      1.防火墙是否放开端口访问
      2.不清楚你配置的时候是否使用了hostname
      具体你可以吧除去铭感信息的配置发给我邮箱一份吧。

      李阳
      博主
      2周前 (03-10)回复
      • 感谢回复 回去发你 再次感谢了

        sodaer
        0
        2周前 (03-10)回复
  33. #-17

    我自己搭的sspanel+manyuser已经可以用了,就是看不到流量使用记录,显示“注意!部分节点不支持流量记录”
    是因为ss的配置哪里不对么。。

    inspoy
    0
    1周前 (03-17)回复
    • 流量记录需要后端是ssr,去githup艘powa的ssr试试

      李阳
      博主
      1周前 (03-17)回复