大致原理如上。通过一台闲置的安卓设备验证校园网后,使用L2TP/Shad0ws0cksR连接安卓设备。原理简单的让人无法呼吸。这是一个十分简单的教程。可以实现无限客户端登录校园网或一个账号多人共享。
你需要准备的东西
- 已经root了的Android手机一台。
其中:RAM建议大于1GB。建议使用限制的安卓手机,省电节约资源废物利用环保*&#¥%….
- 在安卓手机上成功登录校园网,并成功连接互联网。
- 一台电脑。
- (可选)一个可以用的国外55R节点。
嗯…你有树莓派 / 智能路由器 / 其他Linux设备? 那当然更好,只是自带扶墙功能就不容易实现了。
你需要的基本技能
- 一字不落仔细看完。
- 掌握基础Linux操作(终端模式,非图形界面)。
- 掌握基础Android操作。
教程开始
①在安卓手机上部署Linux
- 搜索并下载安装Linux Deploy。
- (教程以Debian为例。你可以自己选择你喜欢的操作系统)打开Linux Deploy,并在设置中修改:
发行版 GNU/Linux –> Debian
架构 –> armhf (如果你的CPU是其他架构请自行选择)
设置源 –> ftp.hk.debian.org/debian/ (中国大陆推荐香港。点击这里查看所有镜像)
发行版 GNU/Linux版本 –> jessie (这里选择Debian8,自带的源会比较方便安装软件)
镜像大小(单位:MB) –> 2048 (一般推荐大小。还要运行其他服务请酌情添加)
用户名 –> 自行设定。仅英文和数字。
密码 –> 自行设定。仅英文和数字。
下滑至SSH标签,勾选启用SSH服务器。
其余选项不建议修改。如果你明白对应含义和确实有对应需求,自行修改即可。
- 返回主界面。点击右上角菜单 –> 安装。
此步根据你的设备配置及网络环境需要10-30分钟不等。请耐心等待部署完成。如下图所示。
连接至部署好的容器
如上图。左上角的Linux [xxx.xxx.xxx.xxx] 里面显示的就是你的容器分配到的IP地址。使用SSH连接工具连接你的容器。推荐Putty,点击这里下载。
点击连接(Open)即可连接。在接下来的黑窗口里,按照提示输入你刚刚设置的用户名和密码即可。(密码不会显示出来)。登入后,输入下面的命令切换到root用户。
su
更新并安装Wget、Vim。(可选)安装常用系统工具Htop、Unzip、Nload。
apt-get update -y
apt-get install wget vim -y
(可选)apt-get install htop unzip nload -y
安装Shad0wS0cks服务端
在SSH窗口内执行下面的安装脚本(从上往下依次是下载脚本,赋予权限、运行):
wget –no-check-certificate https://raw.githubusercontent.com/tennfy/shadowsocks-libev/master/debian_shadowsocks_tennfy.sh
chmod +x debian_shadowsocks_tennfy.sh
./debian_shadowsocks_tennfy.sh
按照提示内容选择加密方式(建议默认),端口,密码。按照提示回车安装。此过程根据你的设备配置及网络环境需要10-30分钟不等。安装完毕后会有如下提示。
Congratulations, shadowsocks-libev install completed! Your Server IP: 这里是你的IP Your Server Port: 这里是你的端口 Your Password: 这里是你的密码 Your Local Port: 1080 Your Encryption Method:这里是你的加密方法
到这里你已经完成了服务端部署。可以将其他设备通过Shad0ws0cks连接到你的容器了。
全平台Shad0ws0cks连接器客户端
Windows: http://file.blankwings.cn/files/SSTap-beta-setup-1.0.8.5.exe
Android: https://github.com/shadowsocks/shadowsocks-android/releases
MAC: https://github.com/shadowsocks/ShadowsocksX-NG/releases
IOS: 百度搜索爱思助手或PP助手,按照提示安装手机端后,在手机端搜索安装”Shadowrocket”。
修改Shad0wS0cks服务端的设置
修改配置文件:/etc/shadowsocks-libev/config.json 不会使用vim?
vim /etc/shadowsocks-libev/config.json
修改你需要变动的项目后保存并退出vim,重启Shad0ws0cks服务端。
/etc/init.d/shadowsocks-libev restart
即可让修改生效。注意请不要打破原有Json格式,打破会导致服务端出错。如果需要修改加密方法,然后你不清楚有哪些加密方法,请参照Shad0ws0cks连接器客户端的“加密模式”选项下面的内容。照着填写即可。
- 对于移动设备推荐使用Chacha20、RC4-MD5、RC4。这三种加密协议速度快并且消耗性能相对较少。
- 不建议使用none(不加密),你的数据包内容将会暴露在学校网络中,有心人可以轻松抓取利用,盗取你的浏览信息。而且none加密在SSL中继时可能出现问题,导致所有https加密网站无法访问。
为你的服务器添加扶墙功能
在外层安卓安装Shad0wS0ck或Shad0wS0ckR,链接你的国外节点。将下面的路由设置改为“仅代理中国大陆无法访问的地址”后连接即可。此时你的其他设备在访问国内网站时正常直连,国外网站将会自动代理。参照本文顶部的原理图。
注意事项
- Shad0ws0cks不能当做匿名通讯协议,他只能加密你在网络上发送和接收的数据。如果需要匿名网络,请参考zeronet、tornet。
- 学校可以探测到你连接到服务端的数据包,但是无法解析其中内容。实际上本教程搭建的服务端其实是内网IP之间的通讯,一般无法判断你的用途。但是谁一看N多IP同时连一个IP,流量还非常大,谁都知道你在干什么了。所以请低调使用。
- Shad0ws0cksR支持协议头混淆,可以让抓包人员误认为你在访问其他协议或访问特定网站。需要此类教程请在下面留言。
- 任何明文协议(如Http)的国内流量依旧是直接经过校园网出口,依旧可以被轻易截获。只有被加密的数据(如Https),或者所有出国流量(如果你为你的服务端配置了扶墙)才不能被截获。
- 此方法因为加密等运行时间会导致附加延迟和延迟波动,所以不建议用来玩游戏。加密会导致部分游戏的UDP数据包出现问题。受服务端内存和性能限制,keep alive时间不可能太长,结果就是频繁断线。所以,玩游戏还是老老实实正常连校园网吧。
- 低调保平安。