shadowsocks 服务端部署

其实服务器上已经有VPN和SSH,VPN是全局代理,不是很方便,SSH在关键时候会断开,手机上没有很好的客户端.今天忽然见到shadowsocks这个方案,比较方便,而且是IOS ANDROID win linux 全平台通用.索性就搞一个备用了.

具体参考这里
https://github.com/clowwindy/shadowsocks/wiki/Shadowsocks-%E4%BD%BF%E7%94%A8%E8%AF%B4%E6%98%8E

首先检查下Python 版本,要有 2.6 or 2.7.

python --version
Python 2.7.4

这个ubuntu的服务器上一般都有吧.
然后官网上直接要用pip装shadowsocks,有些人可能会出现命令错误,还要安装些东西

apt-get install python-gevent python-pip

然后就可以

pip install shadowsocks

安装shadowsocks了。
接下来配置也比较简单,
新建一个 config.json,或者其他名字的都行,位置可以放在/etc/shadowsocks/下(默认没有这个文件,你要自己创建一个),或者home或者其他地方。
内容是

{
    "server":"my_server_ip",
    "server_port":8388,
    "local_port":1080,
    "password":"barfoo!",
    "timeout":600,
    "method":"table"
}

具体含义wiki上给的也很清楚

server          服务器 IP (IPv4/IPv6),注意这也将是服务端监听的 IP 地址
server_port     服务器端口
local_port      本地端端口
password        用来加密的密码
timeout         超时时间(秒)
method          加密方法,可选择 "bf-cfb", "aes-256-cfb", "des-cfb", "rc4", 等等。默认是一种不安全的加密,推荐用 "aes-256-cfb"

我只更改了加密方式和密码,加密方式推荐用bf-cfb,因为aes-256-cfb系统默认貌似不支持,会报错。想支持这些加密方式你还要安装

apt-get install python-m2crypto

然后就可以启动服务了。

ssserver -c /etc/shadowsocks/config.json

当然了,你不可能一直开着ssh,所以还是

nohup ssserver -c /etc/shadowsocks/config.json > log &

然后可以关了SSH。
或者更直接的开机自启动,添加到rc.local

/usr/local/bin/ssserver -c /etc/shadowsocks/config.json

安卓手机可以安装“影梭”然后配置,其他手机自行google。
更多客户端在这儿
https://github.com/clowwindy/shadowsocks/wiki/Ports-and-Clients

“shadowsocks 服务端部署”的36个回复

  1. Google Chrome 56.0.2924.87 Google Chrome 56.0.2924.87 Mac OS X  10.12.2 Mac OS X 10.12.2

    麻烦您 我用mac搭建了这个,现在我自己可以连接到服务器,我同学的mac也可以连接,但是windows的系统现在都连不上,请问是我配置哪里出了问题么

  2. Internet Explorer 11.0 Internet Explorer 11.0 Windows 8.1 x64 Edition Windows 8.1 x64 Edition

    请问按您的文章做了以后出现这个报错是怎么回事
    504 Connect to bbs.9ifly.cn:80 failed: SOCKS protocol error

  3. Firefox 38.0 Firefox 38.0 Windows 7 x64 Edition Windows 7 x64 Edition

    apt-get install python-gevent python-pip
    这条命令帮助了我大忙了,因为一直出现如下错误
    系统是ubuntu14.10,搜索到cnblogscom/vincedotnet/p/3569648.html,使用了这个命令,成功解决。非常感谢。 😛

    root@:~/shadowsocks/shadowsocks# pip install shadowsocks
    Traceback (most recent call last):
    File “/usr/bin/pip”, line 9, in
    load_entry_point(‘pip==1.5.6’, ‘console_scripts’, ‘pip’)()
    File “/usr/local/lib/python2.7/dist-packages/pkg_resources/__init__.py”, line 552, in load_entry_point
    return get_distribution(dist).load_entry_point(group, name)
    File “/usr/local/lib/python2.7/dist-packages/pkg_resources/__init__.py”, line 2672, in load_entry_point
    return ep.load()
    File “/usr/local/lib/python2.7/dist-packages/pkg_resources/__init__.py”, line 2345, in load
    return self.resolve()
    File “/usr/local/lib/python2.7/dist-packages/pkg_resources/__init__.py”, line 2351, in resolve
    module = __import__(self.module_name, fromlist=[‘__name__’], level=0)
    File “/usr/lib/python2.7/dist-packages/pip/__init__.py”, line 61, in
    from pip.vcs import git, mercurial, subversion, bazaar # noqa
    File “/usr/lib/python2.7/dist-packages/pip/vcs/mercurial.py”, line 9, in
    from pip.download import path_to_url
    File “/usr/lib/python2.7/dist-packages/pip/download.py”, line 25, in
    from requests.compat import IncompleteRead
    ImportError: cannot import name IncompleteRead

  4. Google Chrome 41.0.2272.89 Google Chrome 41.0.2272.89 Windows 7 x64 Edition Windows 7 x64 Edition

    您好,我想请教一下,我启动ssserver -c /etc/shadowsocks.json之后,直接卡在starting server @ 0.0.0.0:8838是什么情况呢

    1. Google Chrome 42.0.2311.111 Google Chrome 42.0.2311.111 Android 5.0.2 Android 5.0.2

      就是启动成功了,不过关了终端后就会断掉,所以建议加入自启动后台运行

  5. Safari 8.0.3 Safari 8.0.3 Mac OS X  10.10.2 Mac OS X 10.10.2

    root@LIuzhijian:/etc/shadowsocks# ssserver -c /etc/shadowsocks/config.json
    INFO: loading config from /etc/shadowsocks/config.json
    2015-02-07 06:57:01 INFO loading libcrypto from libcrypto.so.1.0.0
    shadowsocks 2.6.7
    2015-02-07 06:57:01 INFO starting server at 0.0.0.0:8388
    Traceback (most recent call last):
    File “/usr/local/bin/ssserver”, line 9, in
    load_entry_point(‘shadowsocks==2.6.7’, ‘console_scripts’, ‘ssserver’)()
    File “/usr/local/lib/python2.7/dist-packages/shadowsocks/server.py”, line 68, in main
    tcp_servers.append(tcprelay.TCPRelay(a_config, dns_resolver, False))
    File “/usr/local/lib/python2.7/dist-packages/shadowsocks/tcprelay.py”, line 591, in __init__
    server_socket.bind(sa)
    File “/usr/lib/python2.7/socket.py”, line 224, in meth
    return getattr(self._sock,name)(*args)
    socket.error: [Errno 98] Address already in use
    这是怎么回事啊

  6. Google Chrome 39.0.2171.95 Google Chrome 39.0.2171.95 Windows 7 x64 Edition Windows 7 x64 Edition

    你好~有些问题能否解惑?
    1.ifconfig后命令如下
    venet0:0 Link encap:UNSPEC HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00
    inet addr:10.222.3.31 P-t-P:10.222.3.31 Bcast:10.222.3.31 Mask:255.255.255.255
    UP BROADCAST POINTOPOINT RUNNING NOARP MTU:1500 Metric:1
    那么config.json中应该填写10.222.3.31吗?使用SSH链接的IP是共享IP。因为可以用主机商提供了端口映射功能,可以将特定端口映射到我VPS上某个端口。比如1.1.1.1:188直接映射到10.222.3.31:80。这样的话config.json该怎么填写呢?谢谢!

  7. Google Chrome 39.0.2171.95 Google Chrome 39.0.2171.95 Windows XP Windows XP

    请问,这个是怎么回事呢?EC2的免费主机ubuntu
    root@ip-172-31-5-95:/# ssserver -c /etc/shadowsocks/config.json
    INFO: loading config from /etc/shadowsocks/config.json
    Traceback (most recent call last):
    File “/usr/local/bin/ssserver”, line 9, in
    load_entry_point(‘shadowsocks==2.6.1’, ‘console_scripts’, ‘ssserver’)()
    File “/usr/local/lib/python2.7/dist-packages/shadowsocks/server.py”, line 40, in main
    config = utils.get_config(False)
    File “/usr/local/lib/python2.7/dist-packages/shadowsocks/utils.py”, line 113, in get_config
    with open(config_path, ‘rb’) as f:
    IOError: [Errno 2] No such file or directory: ‘/etc/shadowsocks/config.json’
    root@ip-172-31-5-95:/#

    1. Firefox 34.0 Firefox 34.0 Windows 7 x64 Edition Windows 7 x64 Edition

      No such file or directory: ‘/etc/shadowsocks/config.json’
      检测是自己配置这个文件了没有。

  8. Google Chrome 38.0.2125.111 Google Chrome 38.0.2125.111 GNU/Linux x64 GNU/Linux x64

    Traceback (most recent call last):
    File “/usr/local/bin/ssserver”, line 9, in
    load_entry_point(‘shadowsocks==2.3.2’, ‘console_scripts’, ‘ssserver’)()
    File “/usr/local/lib/python2.7/dist-packages/shadowsocks/server.py”, line 67, in main
    tcp_servers.append(tcprelay.TCPRelay(a_config, dns_resolver, False))
    File “/usr/local/lib/python2.7/dist-packages/shadowsocks/tcprelay.py”, line 521, in __init__
    server_socket.bind(sa)
    File “/usr/lib/python2.7/socket.py”, line 224, in meth
    return getattr(self._sock,name)(*args)
    socket.error: [Errno 99] Cannot assign requested address
    请问如何解决?谢谢T^T

  9. Google Chrome 38.0.2125.111 Google Chrome 38.0.2125.111 GNU/Linux x64 GNU/Linux x64

    运行nohup ssserver -c /etc/shadowsocks/shadowsocks.json > log &
    时,显示nohup: 忽略输入重定向错误到标准输出端
    请问一下是什么情况呢?

  10. Google Chrome 38.0.2125.104 Google Chrome 38.0.2125.104 Windows 7 x64 Edition Windows 7 x64 Edition

    你好,我建好shadowsocks.json之后,输入ssserver -c /etc/shadowsocks.json 以后

    显示ERROR:found an error in config.json:No JSON object could be decoded.
    放狗搜了一下没找到对应的…请问如何解决?谢谢.

      1. Google Chrome 37.0.2062.0 Google Chrome 37.0.2062.0 Windows XP Windows XP

        遇到同样问题,使用网页自带的java SSH 连接,使用vi编辑,结果启动服务时也提示出错
        ERROR:found an error in config.json:No JSON object could be decoded.

        1. Firefox 35.0 Firefox 35.0 Windows 7 x64 Edition Windows 7 x64 Edition

          请仔细检查配置文件的格式, “server” ,”server_port”这些前面都有空格的。

          1. Google Chrome 37.0.2062.0 Google Chrome 37.0.2062.0 Windows XP Windows XP

            谢谢提醒,问题是最后一个加密方式忘记打引号了,看了好久没有看出来。
            但是现在有新的情况,我是用的亚马逊的EC2 VPS,config.json中“server”应该写EC2中的那个公网IP,还是0.0.0.0?
            使用ssserver启动服务时显示
            INFO: loading config from /etc/shadowsocks/config.json
            shadowsocks 2.6.4
            2015-01-15 10:41:04 INFO loading libcrypto from libcrypto.so.1.0.0
            2015-01-15 10:41:04 INFO starting server at 0.0.0.0:8388

            一直处在starting状态,这时候服务是否已经正常启动?(打开SS客户端代理失败)

          2. Firefox 35.0 Firefox 35.0 Windows 7 x64 Edition Windows 7 x64 Edition

            应该写公网ip
            服务正常启动了
            建议加到开机自启动,不然关掉链接服务就会失效。

  11. Google Chrome 35.0.1916.153 Google Chrome 35.0.1916.153 Windows 7 Windows 7

    想用舊電腦當SS server ,之前裝的ubuntu 9.10 軟件源無效了,請問您知道10.04裝得上嗎? 謝謝

    1. Wordpress App 3.0.2 Wordpress App 3.0.2 Android 3.0.2 Android 3.0.2

      应该是可以的 只要电脑支持最新的python 2.6以上版本 你个人电脑的话注意下路由器的配置

      1. Google Chrome 35.0.1916.153 Google Chrome 35.0.1916.153 Windows 7 Windows 7

        谢谢您的回复,改用ubuntu 10.4 可以了,但还有两个问题想请教:
        1. apt-get update 和 upgrade完以后还是找不到 python-gevent.跳过不装gevent.只装python-pip, 执行ssserver 目前看起来ok ,会有什么隐患吗?

        2.因为我的旧电脑是笔记本电脑,想用wifi连接,开机后要搜寻一下才能连上,开机时rc.local里的ssserver执行时好像因为网络还没通所以无法启动.有办法延迟执行rc.local吗? 延迟个60秒左右.

        Linux 完全不熟,
        麻烦了.

  12. Google Chrome 33.0.1750.154 Google Chrome 33.0.1750.154 Windows 8 x64 Edition Windows 8 x64 Edition

    接下来配置也比较简单,
    新建一个 config.json,或者其他名字的都行,位置可以放在/etc/shadowsocks/下(默认没有这个文件,你要自己创建一个),或者home或者其他地方。

    请问如何新建这个文件呢?

    1. Firefox 31.0 Firefox 31.0 Windows 7 x64 Edition Windows 7 x64 Edition

      mkdir /etc/shadowsocks/
      vi /etc/shadowsocks/config.json
      编辑完后退出保存就可以了。如果不懂的话继续提问哦,刚刚开了邮件提示功能。

发表评论

电子邮件地址不会被公开。 必填项已用*标注

Protected by WP Anti Spam