前提:你需要一台linux vps.
首先在本地windows安装nodejs环境,下载地址-http://nodejs.org/dist/v0.8.1/node-v0.8.1-x86.msi
用putty登录vps,输入如下命令:
git clone git://github.com/joyent/node
cd node
./configure
make
make install
或者:
wget http://nodejs.org/dist/v0.8.2/node-v0.8.2.tar.gz
tar zxvf node-v0.8.2.tar.gz
cd node-v0.8.2
./configure
make
make install
这样,vps上的node环境也搭建好了。
在linux vps上,克隆源码:
git clone --branch coffee https://github.com/shadowsocks/shadowsocks-nodejs
cd shadowsocks-nodejs
修改里面的config.json文件如下:
{
"server":"your-vps-ip",
"server_port":8389, (因为我已在vps上装了shadowsocks,它占用了8388,所以此处改为8389)
"local_port":1083, (因为我已在vps上装了shadowsocks,它对应的客户端机器的端口是1080,所以此处需要修改为其他值,我改为了1083)
"password":"your-password",
"timeout":60
}
运行服务器端程序:
node server.js > /dev/null & (这样node就会在后台运行;即使你关闭了putty,node依然会在你的vps里运行。注意:这里不要用setsid node server.js,这种setsid命令不太可靠,在你关闭putty后,相关的服务比如node很容易退出,并未在后台运行。)
回到本地windows机器,下载源码: https://github.com/shadowsocks/shadowsocks-nodejs/archive/coffee.zip,解压,进入解压出来的目录,
修改里面的config.json文件如下:
{
"server":"your-vps-ip",
"server_port":8389, (因为我已在vps上装了shadowsocks,它占用了8388,所以此处改为8389)
"local_port":1083, (因为我已在vps上装了shadowsocks,它对应的客户端机器的端口是1080,所以此处需要修改为其他值,我改为了1083)
"password":"your-password",
"timeout":60
}
复制config.json到用户目录(我的是c:\users\my-username),然后在开始 -> 运行 -> cmd里面输入命令node i:\shadowsocks-nodejs\local.js(这里i:\shadowsocks-nodejs为我的解压目录路径,请改为你的解压目录路径),回车,如果显示:
calculating ciphers
server listening at port 1083
然后设置浏览器的socks5 代理为127.0.0.1:1083,即可翻墙.
项目地址:
https://github.com/shadowsocks/shadowsocks-nodejs/tree/coffee
ps: shadowsocks-nodejs最好搭配浏览器k-meleon使用。我用shadowsocks-nodejs搭配ff,竟然打不开blogger.com,而搭配k-meleon则没有问题。
注:shadowsocks-nodejs服务比较容易自行退出,可考虑用cron命令来使它自动重启:
*/1 * * * * killall node; cd /root/shadowsocks-nodejs/; /usr/local/bin/node server.js > log &
或者把cd /root/shadowsocks-nodejs; /usr/local/bin/node server.js > log &加到/etc/rc.local里面也可,这样如果shadowsocks-nodejs服务退出了,重启vps,它就又运行了。
此法用来看youtube,非常流畅.
----------------------------
shadowsocks-nodejs的master版的用法如下:
首先登陆你的linux vps,然后
git clone https://github.com/clowwindy/shadowsocks-nodejs
cd shadowsocks-nodejs
# git clone git://github.com/joyent/node
# cd node
# ./configure
# make
# make install
这样, 本地linux机器上的node环境就搭建好了。
(如果是mac桌面系统,则运行brew install node来安装node环境。)
然后,
git clone https://github.com/clowwindy/shadowsocks-nodejs
cd shadowsocks-nodejs
首先在本地windows安装nodejs环境,下载地址-http://nodejs.org/dist/v0.8.1/node-v0.8.1-x86.msi
用putty登录vps,输入如下命令:
git clone git://github.com/joyent/node
cd node
./configure
make
make install
或者:
wget http://nodejs.org/dist/v0.8.2/node-v0.8.2.tar.gz
tar zxvf node-v0.8.2.tar.gz
cd node-v0.8.2
./configure
make
make install
这样,vps上的node环境也搭建好了。
在linux vps上,克隆源码:
git clone --branch coffee https://github.com/shadowsocks/shadowsocks-nodejs
cd shadowsocks-nodejs
修改里面的config.json文件如下:
{
"server":"your-vps-ip",
"server_port":8389, (因为我已在vps上装了shadowsocks,它占用了8388,所以此处改为8389)
"local_port":1083, (因为我已在vps上装了shadowsocks,它对应的客户端机器的端口是1080,所以此处需要修改为其他值,我改为了1083)
"password":"your-password",
"timeout":60
}
运行服务器端程序:
node server.js > /dev/null & (这样node就会在后台运行;即使你关闭了putty,node依然会在你的vps里运行。注意:这里不要用setsid node server.js,这种setsid命令不太可靠,在你关闭putty后,相关的服务比如node很容易退出,并未在后台运行。)
回到本地windows机器,下载源码: https://github.com/shadowsocks/shadowsocks-nodejs/archive/coffee.zip,解压,进入解压出来的目录,
修改里面的config.json文件如下:
{
"server":"your-vps-ip",
"server_port":8389, (因为我已在vps上装了shadowsocks,它占用了8388,所以此处改为8389)
"local_port":1083, (因为我已在vps上装了shadowsocks,它对应的客户端机器的端口是1080,所以此处需要修改为其他值,我改为了1083)
"password":"your-password",
"timeout":60
}
复制config.json到用户目录(我的是c:\users\my-username),然后在开始 -> 运行 -> cmd里面输入命令node i:\shadowsocks-nodejs\local.js(这里i:\shadowsocks-nodejs为我的解压目录路径,请改为你的解压目录路径),回车,如果显示:
calculating ciphers
server listening at port 1083
然后设置浏览器的socks5 代理为127.0.0.1:1083,即可翻墙.
项目地址:
https://github.com/shadowsocks/shadowsocks-nodejs/tree/coffee
ps: shadowsocks-nodejs最好搭配浏览器k-meleon使用。我用shadowsocks-nodejs搭配ff,竟然打不开blogger.com,而搭配k-meleon则没有问题。
注:shadowsocks-nodejs服务比较容易自行退出,可考虑用cron命令来使它自动重启:
*/1 * * * * killall node; cd /root/shadowsocks-nodejs/; /usr/local/bin/node server.js > log &
或者把cd /root/shadowsocks-nodejs; /usr/local/bin/node server.js > log &加到/etc/rc.local里面也可,这样如果shadowsocks-nodejs服务退出了,重启vps,它就又运行了。
此法用来看youtube,非常流畅.
----------------------------
shadowsocks-nodejs的master版的用法如下:
首先登陆你的linux vps,然后
git clone https://github.com/clowwindy/shadowsocks-nodejs
cd shadowsocks-nodejs
root@AR:~/shadowsocks-nodejs# ls
bin CHANGES CONTRIBUTING.md LICENSE README.md test
Cakefile config.json lib package.json src
root@AR:~/shadowsocks-nodejs# nano config.json
root@AR:~/shadowsocks-nodejs# cat config.json
{
"server":"your_vps_ip",
"server_port":8388,
"local_port":1083,
"password":"你所设置的密码",
"timeout":600,
"method":"aes-256-cfb"
}
root@AR:~/shadowsocks-nodejs# cd bin
root@AR:~/shadowsocks-nodejs/bin# ls
sslocal ssserver
root@AR:~/shadowsocks-nodejs/bin# nohup ./ssserver > /dev/null &
服务器端设置完毕。
客户端机器是linux desktop os的情形:
登录vps,输入如下命令:# git clone git://github.com/joyent/node
# cd node
# ./configure
# make
# make install
这样, 本地linux机器上的node环境就搭建好了。
(如果是mac桌面系统,则运行brew install node来安装node环境。)
然后,
git clone https://github.com/clowwindy/shadowsocks-nodejs
cd shadowsocks-nodejs
~/shadowsocks-nodejs# ls
bin CHANGES CONTRIBUTING.md LICENSE README.md test
Cakefile config.json lib package.json src
~/shadowsocks-nodejs# nano config.json
~/shadowsocks-nodejs# cat config.json
{
"server":"your_vps_ip",
"server_port":8388,
"local_port":1083,
"password":"你所设置的密码",
"timeout":600,
"method":"aes-256-cfb"
}
~/shadowsocks-nodejs# cd bin
~/shadowsocks-nodejs/bin# ls
sslocal ssserver
~/shadowsocks-nodejs/bin# nohup ./sslocal > /dev/null &
客户端设置完毕。
然后设置firefox浏览器/safari浏览器的socks5代理为127.0.0.1:1083,即可翻墙。
------------------
利用shadowsocks-nodejs的local-socks5版本翻墙 (不建议使用此法,太耗内存了)
root@localhost:~# git clone --branch local-socks5 https://github.com/shadowsocks/shadowsocks-nodejs shadowsocks-nodejs_local-socks5-branch
root@localhost:~# cd shadowsocks-nodejs_local-socks5-branch
root@localhost:~/shadowsocks-nodejs_local-socks5-branch# ls
encrypt.js local.js merge_sort.js README.md server.js test_encryption.js
root@localhost:~/shadowsocks-nodejs_local-socks5-branch# nano server.js
(把里面的PORT的值设为8488
把KEY的值设为my_key)
root@localhost:~/shadowsocks-nodejs_local-socks5-branch# node server.js > /dev/null &
回到本地机器,我的是mac.
先连上某个vpn,因为shadowsocks是敏感词,直接clone会失败。
yudeMacBook-Air:~ brite$ git clone --branch local-socks5 https://github.com/shadowsocks/shadowsocks-nodejs shadowsocks-nodejs_local-socks5-branch
yudeMacBook-Air:~ brite$ cd shadowsocks-nodejs_local-socks5-branch
yudeMacBook-Air:shadowsocks-nodejs_local-socks5-branch brite$ ls
README.md local.js server.js
encrypt.js merge_sort.js test_encryption.js
yudeMacBook-Air:shadowsocks-nodejs_local-socks5-branch brite$ nano local.js
(...
var SERVER = 'my-vps-ip';
var REMOTE_PORT = 8488;
var PORT = 1084;
var KEY = 'my_key';
...)
yudeMacBook-Air:shadowsocks-nodejs_local-socks5-branch brite$ node local.js
会显示:
calculating ciphers
server listening at port 1084
然后设置firefox浏览器/safari浏览器的socks5代理为127.0.0.1:1084,即可翻墙。
项目地址:https://github.com/shadowsocks/shadowsocks-nodejs/tree/local-socks5
----------------------------------------------------------
git clone --branch local-http https://github.com/shadowsocks/shadowsocks-nodejs shadowsocks-nodejs-local-http-branch
项目地址:https://github.com/shadowsocks/shadowsocks-nodejs/tree/local_http
--------------------------------
------------------
利用shadowsocks-nodejs的local-socks5版本翻墙 (不建议使用此法,太耗内存了)
root@localhost:~# git clone --branch local-socks5 https://github.com/shadowsocks/shadowsocks-nodejs shadowsocks-nodejs_local-socks5-branch
root@localhost:~# cd shadowsocks-nodejs_local-socks5-branch
root@localhost:~/shadowsocks-nodejs_local-socks5-branch# ls
encrypt.js local.js merge_sort.js README.md server.js test_encryption.js
root@localhost:~/shadowsocks-nodejs_local-socks5-branch# nano server.js
(把里面的PORT的值设为8488
把KEY的值设为my_key)
root@localhost:~/shadowsocks-nodejs_local-socks5-branch# node server.js > /dev/null &
回到本地机器,我的是mac.
先连上某个vpn,因为shadowsocks是敏感词,直接clone会失败。
yudeMacBook-Air:~ brite$ git clone --branch local-socks5 https://github.com/shadowsocks/shadowsocks-nodejs shadowsocks-nodejs_local-socks5-branch
yudeMacBook-Air:~ brite$ cd shadowsocks-nodejs_local-socks5-branch
yudeMacBook-Air:shadowsocks-nodejs_local-socks5-branch brite$ ls
README.md local.js server.js
encrypt.js merge_sort.js test_encryption.js
yudeMacBook-Air:shadowsocks-nodejs_local-socks5-branch brite$ nano local.js
(...
var SERVER = 'my-vps-ip';
var REMOTE_PORT = 8488;
var PORT = 1084;
var KEY = 'my_key';
...)
yudeMacBook-Air:shadowsocks-nodejs_local-socks5-branch brite$ node local.js
会显示:
calculating ciphers
server listening at port 1084
然后设置firefox浏览器/safari浏览器的socks5代理为127.0.0.1:1084,即可翻墙。
项目地址:https://github.com/shadowsocks/shadowsocks-nodejs/tree/local-socks5
----------------------------------------------------------
git clone --branch local-http https://github.com/shadowsocks/shadowsocks-nodejs shadowsocks-nodejs-local-http-branch
项目地址:https://github.com/shadowsocks/shadowsocks-nodejs/tree/local_http
--------------------------------
shadowsocks-nodejs
shadowsocks-nodejs is a node.js port of shadowsocks.
Usage
Download the lastest Node stable release. Don't just use master branch of Node source code from Github! It's not stable.
Run
npm install -g shadowsocks
Create a file named
config.json
, with the following content.{
"server":"my_server_ip",
"server_port":8388,
"local_port":1080,
"password":"barfoo!",
"timeout":600,
"method":"table",
"local_address":"127.0.0.1"
}
Explaination of the fields:
server your server IP (IPv4/IPv6), notice that your server will listen to this IP
server_port server port
local_port local port
password a password used to encrypt transfer
timeout in seconds
method encryption method, "bf-cfb", "aes-256-cfb", "des-cfb", "rc4", etc. Default is table
local_address local binding address, leave it alone if you don't know what it means
cd
into the directory of config.json
. Run ssserver
on your server. Use Supervisor.
On your client machine, run
sslocal
.
Change the proxy setting in your browser into
protocol: socks5
hostname: 127.0.0.1
port: your local_port
Advanced
You can use args to override settings from
config.json
.(注:这句话不成立。我使用args的方法,没法指定本地机器所要监听的端口号。所以在客户端填入参数后,不能成功翻墙。所以还是建议搭配配置文件使用。)sslocal -s server_name -p server_port -l local_port -k password -m bf-cfb -b local_address
ssserver -p server_port -k password -m bf-cfb -t timeout
ssserver -c /etc/shadowsocks/config.json
Example of multi-user server support can be found in
test/config-multi-passwd.json
.Developing
You can build coffee source code and test it:
npm install -g coffee-script
cake build test
from https://github.com/ysmood/shadowsocks-nodejs