FITURE

If you can fight, fight.

首页 >> 分享>>说说Mac下使用Shadowsocks-Node.js以及开机启动

说说Mac下使用Shadowsocks-Node.js以及开机启动

Posted by fiture / 2013年06月28日 / 分享

在用Shadowsocks之前,一直使用的GoAgent作为工具,以便能正常使用墙外的一些网站。说不出goagent哪里不好,只是想尝试下新的东东。至少ShadowSocks有着轻量快速,多平台、多语言支持等优点,加上接触过Node.js的缘故,然后也还有一台用得比较少的VPS,便直接用上了 clowwindy 的 Shadowsocks,对clowwindy的辛苦开发更新维护此项目,小弟表示非常的感谢.

与Goagent不同的是,ShadowSocks Node.js目前还未找到适合的免费托管的平台,不知道Heroku, Appfog等Node.js云服务平台能不能部署,故还是得部署到自己的VPS上,或者其他的服务平台。本文假设你有了一下配置:

1、一台装好Node.js的VPS,而且VPS不能在不能正常使用网络的地方(比如我朝,小胖子等国家)

2、一台安装Node.js的OS X客户端机器(其实Linux,类Unix OS的都可以,只是设置ShadowSocks的开机启动的方法不一样)

 

这样你就可以通过客户端机器与可以正常访问网络的服务端机器建立Socks代理连接,正常使用互联网了。下面是一些简要的说明:

ShadowSocks-Node.js服务端的部署

自从ShadowSocks-Nodejs上架npm过后,部署它是非常简单滴。通过npm包管理器安装即可:

$ sudo npm install -g shadowsocks

这样我们就可以通过命令ssserver来启动服务端,但是在启动服务端之前我们需要做一些准备,配置一下配置文件。下面是一个配置文件示例:

{
    "server":"0.0.0.0",  //也可以为127.0.0.1
    "server_port":8388,  //服务端端口
    "local_port":1080,   //客户端端口
    "password":"fuck-gfw!", //加密密码
    "timeout":600, //超时,时间设置
    "method":null //加密算法,null为系统默认加密算法
}

我们保持上面的配置文件到:/etc/shadowsocks/config.json,你也可以保存到你想保存的位置。输入以下命令启动ShadowSocks的服务端:

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

这样我们的ShadowSocks-Nodejs服务器端就启动了,并等待客户端发出代理请求,开始工作。

ShadowSocks-Node.js客户端的部署

同服务端一样,先使用npm工具安装shadowsocks,然后配置客户端配置文件:

{
    "server":"xx.xx.xx.xx",  //这里写你刚刚部署好的客户端地址
    "server_port":8388,  //服务端端口
    "local_port":1080,   //客户端端口
    "password":"fuck-gfw!", //加密密码,必须和服务器端一致
    "timeout":600, //超时,时间设置
    "method":null //加密算法,null为系统默认加密算法
}

同样我们也推荐保存到/etc/shadowsocks/config.json,然后用sslocal来启动客户端。

$ sslocal -c /etc/shadowsocks/config.json

这里我们只做测试不用,后台运行。这里我们的客户端服务也跑起来了,但是我们的应用程序要通过客户端代理,才能Get Through.所以我们下面介绍下Chrome的代理配置。

Google Chrome浏览器的代理配置

我们需要Chrome的一个插件Proxy Switchy,安装好后,在导入导出选项卡下面,选择从文件中恢复,导入这个配置文件,重启浏览器就可以啦。如下图所示:

ss1

导入成功后:

ss

重启浏览器,运行自动代理模式,或者选择ShadowSocks代理,访问你想访问的网站,这样我们就可以,看到刚刚本地机器终端里面有数据传输的记录了。

OK,可以正常上网了,但是还有个问题服务端是可以一直运行不管不顾,但是本地机器客户端,总不可能终端一直开着,然后重启机器,又重复去启动sslocal客户端吧。我们这些东西还是交给Mac去处理。我们需要开机启动,后台运行既可。

ShadowSocks Node.js Mac开机自动启动,后台运行

Mac开机自动运行的方法不少,这里介绍用LaunchAgent plist配置,来实现ShadowsocksNodejs的开机自动运行,代码如下:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>Label</key>
<string>info.fiture.shadowsocks</string>
<key>ProgramArguments</key>
<array>
<string>/usr/local/bin/node</string>
<string>/usr/local/bin/sslocal</string>
<string>-c</string>
<string>/etc/shadowsocks/config.json</string>
</array>
<key>RunAtLoad</key>
<true/>
<key>KeepAlive</key>
<true/>
<key>StandardErrorPath</key>
<string>/tmp/shadowsocks.log</string>
<key>StandardOutPath</key>
<string>/tmp/shadowsocks.log</string>
</dict>
</plist>

保存上面的代码为~/Library/LaunchAgents/ShadowSocks.plist 重启电脑,然后Enjoy吧。

2条回应:“说说Mac下使用Shadowsocks-Node.js以及开机启动”

  1. […] 参考:说说Mac下使用Shadowsocks-Node.js以及开机启动 […]

  2. Lena说道:

    It’s always a relief when someone with obvious exspetire answers. Thanks!

Lena进行回复 取消回复

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