Shadowsocks Troubleshooting

技术 303961 次围观 230 次吐槽

用 Shadowsocks 有很长一段时间了,想当初为了方便自己部署,写了几个一键安装脚本。在这期间,经常被问到很多问题,我回答的零零散散,因此有必要在这里归纳总结一下。
如果你在使用 Shadowsocks 的过程中也遇到了问题,请参考此文对症下药。
友情提示:如果你看了此文,还是解决不了或者提问,请参考作者的这篇《Troubleshooting》后再问。

1)Shadowsocks 有几种版本?区别是什么?
首先要明确一点,不管 Shadowsocks 有几种版本,都分为服务端和客户端,服务端是部署在服务器(VPS)上的,客户端是在你的电脑上使用的。
Shadowsocks 服务端大体上有 4 种版本,按照程序语言划分,分别为 Python ,libev ,Go , Nodejs ,目前主流使用前 3 种。
Shadowsocks 客户端几乎包括了所有的终端设备,PC ,Mac ,Android ,iOS ,Linux 等。
其实作者已经作了详细总结,包括 UDP 转发,多用户等 Feature ,具体可参考《Feature Comparison across Different Versions》一文,英文很简单,耐心一点,能看懂的。

2)Shadowsocks 的最低安装需求是多少?
个人建议最少 128MB 内存,因为在连接数比较多的情况下,还是占用不少内存的,如果内存不足,进程就会被系统 kill 掉,这时候就需要手动重启进程。当然,低于 128MB 也是可以安装的,Go 版是二进制安装,无需编译,非常简单快捷,libev 版运行过程中,占用内存较少,可以搭建在 Openwrt 的路由器上。
自己个人使用,且连接数不是特别大的情况下,64MB 内存也基本够用了。如果你要分享给朋友们一起使用,最好还是选用大内存的。

3)为什么我安装(启动) Shadowsocks 失败?
我只能说脚本并没有在所有的 VPS 上都测试过,所以遇到问题是在所难免的。大部分情况下,请参考《Troubleshooting》一文,自行解决。据我所知,很多人都是配置文件出了问题导致的启动失败。还有部分是改错了 iptables 导致的。
在 Amazon EC2 ,百度云,青云上启动失败,连接不上怎么办?
在这类云 VPS 上搭建,需要注意,配置服务器端时,应使用内网IP;Amazon EC2 缺省不允许 inbound traffic,需要在security group里配置允许连接的端口,和开通SSH client连接类似,这个在 Amazon EC2 使用指南里有说明。同样的,青云,百度云也差不多,默认不允许入网流量,网卡绑定的是内网IP,因此需要将配置文件里的 server 值改为对应的内网 IP 后再重新启动。然后在云管理界面,允许入网端口。
我帮人设置了过之后,才发觉这些云和普通的 VPS 不一样,所以需要注意以上事项。

4)Shadowsocks 有没有控制面板?
答案是有的,有人基于 PHP + MySQL 写出来一个前端控制面板,被很多人用来发布收费或免费的 Shadowsocks 服务。Github 地址如下:
https://github.com/orvice/ss-panel
具体怎么安装和使用,别来问我,自己研究去。

5)多用户怎么开启?
Shadowsocks 有多种服务端程序,目前据我所知只有 Python 和 Go 版是支持在配置文件里直接设置多端口的,至于 libev 版则需要使用多个配置文件并开启多个实例才行。
所谓的多用户,其实就是把不同的端口给不同的人使用,每个端口则对应不同的密码。Python 和 Go 版通过简单的修改单一配置文件,然后重启程序即可。

6)有没有必要简单学习 Linux ?
很有必要。
很多人问怎么修改配置文件,你用 winscp 连接上你的 vps ,把配置文件下载到本地,用记事本改吧改吧,改完后再上传覆盖一下不就完了么。
那为什么我还要建议你稍微懂一点 Linux 呢,说白了就是懂一点 Shell 命令。
看看这篇《Linux系统中常用操作命令》,在 putty 或者 xshell 的界面里,你用 vi 或者 nano 命令就能搞定配置文件,这样多好。

最后,请仔细阅读下面的话,姑且称之为作者有话说。@clowwindy
Shadowsocks 没有办法离开去中心化的服务器。要么自己花钱买 VPS,要么用有人分享的账号,要么用有人提供的付费服务,他们各有所长,适合不同的人。所以作为开发者,保持中立,不偏袒其中任何一方,顺其自然发展下去是最好的吧。
很多人要么一窝蜂的支持,要么一窝蜂的反对,还要把它给封禁掉,大概这种心理鲁迅先生也曾批判过。如果你们真的那么讨厌商业,那你们应该首先把你们的苹果设备给摔了,因为它就是商业社会巅峰造极的产物。我反对不喜欢一个东西就要拿出简单粗暴的制裁手段,正是这种习性成就了 GFW。
维护这个项目到现在大概总共回复过几千个问题,开始慢慢想清楚了一件事,为什么会存在 GFW。从这些提问可以看出,大部分人的自理能力都很差,只是等着别人帮他。特别是那些从 App Store 下载了 App 用着公共服务器的人,经常发来一封只有四个字的邮件:“不能用了?” 我觉得这是一个社会常识,花一分钟写的问题,不能期待一个毫无交情的陌生人花一个小时耐心地问你版本和操作步骤,模拟出你的环境来帮你分析解决。
Windows 版加上 GFWList 功能以来,我反复呼吁给 GFWList 提交规则,但是一个月过去了竟然一个提交都没有。如果没有人做一点什么,它自己是不会更新的啊,没有人会义务地帮你打理这些。我觉得,政府无限的权力,都是大部分人自己放弃的。假货坑爹,让政府审核。孩子管不好,让政府关网吧。房价太高,让政府去限购。我们的文化实在太独特,创造出了家长式威权政府,GFW 正是在这种背景下产生的,一个社会矛盾的终极调和器,最终生活不能自理的你每天做的每一件事情都要给政府审查一遍,以免伤害到其他同样生活不能自理的人。这是一个零和游戏,越和这样的用户打交道,越对未来持悲观态度,觉得 GFW 可能永远也不会消失,而墙内的这个局域网看起来还似乎生机勃勃的自成一体,真是让人绝望。

参考链接:
https://www.v2ex.com/t/166417

转载请注明:秋水逸冰 » Shadowsocks Troubleshooting

发表评论
取消评论
  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址
表情

已有评论 (230)

  1. 同意最后的话,没毛病。 即使微小也一定要来发言感谢和支持下 祝~ 大佬安好,生机勃勃!
    Bill6天前回复
  2. 写的太好了 哥哥
    super2周前 (2018-11-29)回复
  3. 这是一个社会常识,花一分钟写的问题,不能期待一个毫无交情的陌生人花一个小时耐心地问你版本和操作步骤,模拟出你的环境来帮你分析解决。这个说的太对了!现在的人依赖性太强了,从来不会自己主动去解决问题,除非是到了最后的关头,要么放弃,要么坚持
    markT4周前 (2018-11-15)回复
  4. 说的真是太对了,见过很多做公共服务,方便了国内大众,最后搞得身心疲惫的人。这种无知一部分也是我们从小被引导的。
    小船3个月前 (2018-09-17)回复
  5. 你的网站是不是被墙了?我直连访问不了,只能科学上
    疯触手4个月前 (2018-08-24)回复
  6. 真的,最后一段话直击重心。天朝确实是civilized领导层,管理着庞大的uncivilized群众,gfw也许是当下最好的方法吧。
    riven5个月前 (2018-07-24)回复
  7. 最后那段话 举双手赞同
    Jimmy5个月前 (2018-07-20)回复
  8. 非常感谢详细的介绍,几个月前用老兄的脚本搭了SS,今天又来逛逛才看到这篇文章;请老兄和我一起抱有信心,互联网和社会都会慢慢渐渐一点点进步的!
    一卓5个月前 (2018-07-11)回复
  9. 读了这篇文章,令我深受触动,虽然GFW一直在,可也锁不住群众们去墙外一览的内心,十分感谢博主无私的奉献
    mulinliang6个月前 (2018-06-21)回复
  10. 博主,我服务器用xshell5已经配置完成了(出现服务器,用户名,密码等),但是电脑上依然用不了梯子,用户名,密码都没有问题,手机可以,但是电脑上就是不从,还心累,求帮忙解决!电脑上提示: 1. 检查网络连接,这个肯定没有问题,正常不然我怎么留言, 2. 检查代理服务器 和防火墙, 代理服务器肯定没有问题,因为手机用的同样的用户名等,都正常使用,防火墙系统windows 10 自带的,没有装任何管家,360,3. 运行widows 网络诊断, 运行了,依然没有解决问题。 求大咖帮帮忙哦 415156509 QQ
    kalen6个月前 (2018-06-04)回复
    • 我也是这个问题,楼主解决了吗?
      hellozx4个月前 (2018-08-07)回复
      • 估计是因为windows防火墙禁止了ss的网络访问权限,我直接把windows firewall和windows defender关掉就好了
        谁知道呢3个月前 (2018-09-03)回复
  11. 谢谢博主的分享 近期买的搬瓦工用了不到两个月就被ban了 现在打算稍微学习一下相关的知识来重新配置一下 相信博主的成果一定能帮到我 再次感谢
    路人甲7个月前 (2018-06-02)回复
  12. 博主好,启动成功了,但是里面查询状态,是关闭状态!不知道什么原因?
    maccter7个月前 (2018-05-18)回复
    • [[email protected] ~]# /etc/init.d/shadowsocks start 。。。。 started Starting Shadowsocks success [[email protected] ~]# /etc/init.d/shadowsocks status Shadowsocks is stopped
      maccter7个月前 (2018-05-18)回复
  13. 感谢您耐心的解答,你的善意会被正确对待,你最后的作者有话说我看完之后觉得确实是这样,赞成你的观点!
    書兵器谱7个月前 (2018-05-18)回复
  14. 谢谢分享
    大海7个月前 (2018-05-04)回复
  15. 最后一段评论和代码写的一样漂亮,在 EC2 上的 Amazon Linux 中部署的时候各种权限报错,无法启用服务,用您的代码一键解决了,非常感谢,后面要好好研读学习一下你的代码。
    孟想8个月前 (2018-05-01)回复