请在Chrome、Firefox等现代浏览器浏览本站。

DigitalOcean + CentOS 下 ShadowSocks 搭梯教程

建站 JackScott 2189℃ 0评论

http://capbone.com/shadowsocks/

关键词 ShadowSocks。与其说是教程不如算是折腾笔记吧,存档备用。

关于 ShadowSocks,官方说法为“一个轻量级隧道 socks5 代理,可加密网络通道”,简单地说就是一种翻墙工具。具体内容请转至 ShadowSocks 的 Github 主页或者 V2EX 讨论区。要搜索相关内容请用 Google,百度我试了几乎全是代理分享之类的文章,真正有用的教程一个都没有。目前大部分的 ShadowSocks 都是搭建于国外的 VPS 上,相当于在国外和本地网络之间架了一个私人隧道,因此如果你有一个自己的 VPS,就等于拥有一个自己专属的翻墙通道,不用担心有人跟你抢速度抢流量,只要不把 IP 及端口公布出去,这条通道就永远只有你一个人在用。当然没有 VPS 的话也可以使用他人愿意共享的通道,我没搞错的话 ShadowSocks 项目本身就提供了一些主机供用户使用。

折腾 ShadowSocks 的动机其实是因为最近 Goagent 速度奇慢,YouTube 视频缩略图都显示不了,已经严重影响了我的正常上网。另外 DigitalOcean 去年年底正好给了一个 $10 的优惠码,自己再掏 $5 可以用差不多三个月,比直接购买 VPN 要便宜多了,而且以我目前情况来看速度比 Goagent 或者 VPN 要快了太多了。DigitalOcean 同时还可以当虚拟主机使,博客空间的问题也解决了。

Github 上有一个使用说明中文手册,不过对于我这样对 Python、Node.js 等一窍不通的人来说那个手册过于高深了。下面用尽量浅显的办法来解释。ShadowSocks 有 Python version、Node.js version、C libev version、C libuv version、Go version 等 N 多服务器端版本,以及 Mac OSX、PC、Linux、iOS、Android 等 N 多本地客户端版本,我仅以 C libuv version 和 PC 客户端、iOS 客户端为例说明。搭建环境为运行在 DigitalOcean 上的 CentOS 6.5 x32。参考来源太多了就不列了。

在 DigitalOcean 控制面板中新建一个 Droplet,完成后会收到含有主机 IP、登陆账户、密码的邮件。

 

用 SSH 连接工具登陆邮件中的 IP 地址,端口一般为 22。我用的是 PuTTY。以 root 登陆,输入邮件中生成的密码。

 

如果是新的 CentOS 6,需先安装 GIT 及其余依赖包。输入如下代码(仅适用于 CentOS 6,CentOS 5 自行搜索)。

yum install git openssl-devel -y
yum install build-essential autoconf libtool gcc -y

输入 git –version 能显示版本号则安装正确。

开始安装 shadowsocks-libuv。首先定位至 /root(其余路径也可以)。

cd /root

下载 ShadowSocks-libuv 安装包

git clone –recursive https://github.com/dndx/shadowsocks-libuv.git

定位至 ShadowSocks-libuv 所在路径。

cd shadowsocks-libuv/

建议修改一下端口及密码,默认的端口为 8888,密码为“foobar!”。端口随便设置,不一定为 8080。

sed -i ‘s/#define SERVER_PORT 8888/#define SERVER_PORT 8080/g’ config.h
sed -i ‘s/#define PASSWORD “foobar!”/#define PASSWORD “password”/g’ config.h

也可以直接在 ShadowSocks-libuv 路径下的 config.h 文件中修改。有不少人提到新建 config.json 文件然后填入相关信息,其实不必要这么麻烦。

让 ShadowSocks 在主机后台运行。

make
nohup /root/shadowsocks-libuv/server > /dev/null 2>&1 &
echo “nohup /root/shadowsocks-libuv/server > /dev/null 2>&1 &” >> /etc/rc.d/rc.local

加入规则及保存。

iptables -I INPUT -p tcp -m tcp –dport 18087 -j ACCEPT
service iptables save

如果 ShadowSocks 经常掉线就在 /root/shadowsocks-libuv/ 下新建一个 check.sh 文件,加入以下脚本

#!/bin/bash
if
ps -ef|grep “shadowsocks on”|grep -v “grep”
then
echo “Running!”
else
echo “Stopped!”
nohup /opt/shadowsocks-libuv/server > /dev/null 2>&1 &
fi

保存后再在 PuTTY 中执行

chmod +x /root/shadowsocks-libuv/check.sh
crontab -e
*/5 * * * * /root/shadowsocks-libuv/check.sh

即每 5 分钟执行一次监控脚本,如果 ShadowSocks 的服务不在运行就自动启动。

服务器端的设置到此为止,现在已经有了一个 ShadowSocks 隧道。下面在需要上网的本地设备上进行一下客户端的配置。各种客户端请到 ShadowSocks-Github 中下载。Windows 客户端建议下载 shadowsocks-gui,配置非常简单。服务器 IP、端口、密码按之前设置的填写,本地 socks5 端口填 1080,加密方式选择默认的 Table。保存后自动后台运行。

然后到浏览器的代理插件中新建一个代理服务器, 协议为 socks5,IP 地址为 127.0.0.1,端口为 1080。保存,启动代理。下图为 Firefox 下的 FoxyProxy。

再说 iOS 下客户端安装。没有越狱的设备到 AppStore 下载 ShadowSocks 应用,我没试过,估计权限不高。越狱的设备在 Cydia BigBoss 源中搜索 ShadowSocks 后安装,完成后将在桌面生成一个应用图标。进入应用后填入服务器 IP、端口及密码(不是本地 IP 和端口),点击最上方启动代理即可。

 

最后测试一下速度。校园网下 YouTube 播放 1080P 毫无压力,2 分半的视频大概 20 秒可以加载完,比原来的 Goagent 快太多太多了。

 

转载请注明:九鼎大哥 » DigitalOcean + CentOS 下 ShadowSocks 搭梯教程

喜欢 (0)or分享 (0)
发表我的评论
取消评论

表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址