Serenader

Learning by sharing

合理利用闲置的安卓设备

不得不承认,近几年,电子产品的迭代可真的是非常快。就拿手机来说,每隔半年就有一款新的旗舰机型。安卓手机(平板)的更新换代非常快,常常是今年买的最新旗舰手机(平板)过了一年之后就变成老爷机了。所以,可以预料到的是,每次手机的更新换代之后都会有大量的闲置手机出现。那么要怎么处置这些闲置的手机呢?丢了又舍不得,卖了又没人要。放着吃灰又觉得好浪费。
其实,对于闲置手机(平板)来说,还是有发挥余温的机会的。接下来我会讲讲自己折腾过的几种方案,就当作一个记录。

1. 翻墙

使用 fqrouter2 进行翻墙

fqrouter2 是一个可以实现将手机作为一个翻墙路由器供其他设备上网用的软件。
使用 fqrouter2 进行翻墙非常简单,只需要有一部已经 root 过的安卓设备。安装后运行则会自动启动翻墙。如下图所示:
/image/fd971c33-0bf3-40a2-9d06-fd46d303f619/05e0e91e-2b8a-4333-a0e6-ecb8019cb390_Untitled.png
点击 即刻开启更多功能 则进入管理界面。
/image/fd971c33-0bf3-40a2-9d06-fd46d303f619/0b16ef31-c751-463f-8f1d-f503929d1d57_Untitled.png
该管理页面也可以在电脑上浏览。浏览地址是该设备的IP地址加上 2515 端口即可。

将安卓设备作为翻墙路由器

在管理页面中开启Pick & Play:
/image/fd971c33-0bf3-40a2-9d06-fd46d303f619/58ecce78-03b0-43c0-b7ff-d882aab6e017_Untitled.png
扫描设备,然后选择需要进行代理的设备即可。选择之后刷新页面,再在开启了翻墙的设备上打开已经被墙的网页如 GoogleYoutube 等,如果能够访问则表示代理成功。
整个过程中,被代理的设备无需任何操作,即可进行无痛的翻墙。这是最理想的状态。
以下为一些截图:
/image/fd971c33-0bf3-40a2-9d06-fd46d303f619/d72dd082-d0b0-43a6-8cf7-033925326365_Untitled.png
我的笔记本本机没有开启翻墙的情况下访问 Youtube,注意 Chrome 此时没有开启代理也可以访问 Youtube 。
/image/fd971c33-0bf3-40a2-9d06-fd46d303f619/fd653003-7477-4f1b-9996-2be4af731775_Untitled.png
另外一台安卓设备没有开启 Shadowsocks 等翻墙软件也能打开 Youtube
/image/fd971c33-0bf3-40a2-9d06-fd46d303f619/c2073b73-4081-4f8e-aa21-88c4e7f4beff_Untitled.png
Google Play
/image/fd971c33-0bf3-40a2-9d06-fd46d303f619/4a4ae5c6-5df6-4f1f-bcb7-faa1a356518e_Untitled.png
/image/fd971c33-0bf3-40a2-9d06-fd46d303f619/62590868-ccc7-4618-9d37-170d3bb2373c_Untitled.png
Twitter
/image/fd971c33-0bf3-40a2-9d06-fd46d303f619/d37d3146-d56f-4ab2-9744-64930f272e17_Untitled.png
Google Plus
/image/fd971c33-0bf3-40a2-9d06-fd46d303f619/4fdff865-f58c-43d9-96d3-356f89296046_Untitled.png
Instagram
很好,这样真正实现了傻瓜式的翻墙,只需一台设备开启翻墙,其他设备均无需安装其他多余的软件或者设置就可以翻墙了。
需要注意的是,在电脑访问上有一个缺点,就是Chrome无法访问 twitter 和 facebook ,而其他浏览器则无此问题。原因尚不清楚,不知道是不是个例。

2. 搭建服务

如果你是个 Web 开发者,那么可能你会想在安卓设备上运行各种服务,比如说运行 PHP Web Server ,跑 Mysql 等。我们可以利用现有的安卓 App 去实现这个需求。

使用 Servers Unlimite 运行各种 Server

Servers Unlimite 是一款国外开发者开发的软件。详细的介绍可以在 Google Play 上面查阅。由于这款 App 并不是免费的,所以在这里不进行详细的描述了。如果想深入了解的请自行 Google。

使用 KSWEB 运行Php+Mysql+Lighttpd

使用 KSWEB 运行 Web Server 和 Servers Unlimite 差不多。详细的教程请查看安卓手机搭建网站服务器【Php+Mysql+Lighttpd】

3. 运行 Linux 虚拟机

由于安卓系统内核其实也算是 Linux 内核,所以在安卓设备上运行 Linux 虚拟机也不是特别难的事。
运行 Linux 虚拟机有很多种方法,不过我在这里介绍一种最简单而且成功率最高的方法:使用 Complete linux installer
Complete linux installer 的使用方法非常简单,安装完成之后按照步骤,先下载好想要安装的系统的镜像之后便可以启动 Linux 虚拟机了。
启动之后可以选择是否启动 VNC 和 SSH,VNC 一般情况很少用到,可以选择不开启。等 Linux 系统正式运行成功时,就相当于拥有了一个小型的 Linux 服务器。你可以使用它来安装运行各种服务。

编译安装 Node.js

大部分安卓设备的 CPU 都是 ARM 架构的。好在 Node.js 开发团队在 v0.11.3 的时候就支持 ARM 架构了。所以我们无需担心无法编译的问题。
注意,由于安卓设备的CPU性能均比较差,所以在编译Node.js时耗费的时间非常长,所以需要耐心等待。还有,我自己测试了可以编译成功 Node.js v0.25 ,最新版的编译不成功。请读者自行测试。
在编译之前有个地方需要注意的是,编译时需要传递几个参数以保证能正常编译成功。具体步骤:
  1. 下载 Node.js 到 Linux 虚拟机。
  2. 解压缩 Node.js 安装包。
  3. 安装编译器及其他依赖:
    apt-get install openssl build-essential python libssl-dev git-core
  4. 开始编译安装:
    ./configure --without-snapshot --dest-cpu=arm --dest-os=linux
    make
    make install
  5. 编译完成。输入:
    node -v
显示正确的版本号。则表示 Node.js 安装成功。以上过程需要大概三个钟左右的时间。所以需要耐心等待。
Node.js 安装完成之后便可以测试一下能否运行一些 Node.js 程序了。以下为我的手机安装以及运行 Node.js 程序的截图:
/image/fd971c33-0bf3-40a2-9d06-fd46d303f619/038c5b7b-31c1-4d20-acbc-86eaaee49e0b_Untitled.png
/image/fd971c33-0bf3-40a2-9d06-fd46d303f619/f83a7ad7-6dda-4ef2-8650-d5edb7c01e47_Untitled.png
/image/fd971c33-0bf3-40a2-9d06-fd46d303f619/b03c2342-acb8-406e-a0b0-3d8b52265279_Untitled.png
/image/fd971c33-0bf3-40a2-9d06-fd46d303f619/81022adf-5726-4922-b358-d576613aa02e_Untitled.png
/image/fd971c33-0bf3-40a2-9d06-fd46d303f619/e66baa3d-c789-430e-9c4a-f41280d007de_Untitled.png
至此,你也可以开始折腾在 Linux 虚拟机上运行其他程序。比如 Mongodb 。
相关教程可以参考:

安装 Shadowsocks 和 cow 进行翻墙

如果只是想要翻墙的话,没有必要使用虚拟机。因为可以使用 fqrouter2 进行无痛完美的翻墙。这里的翻墙只是提供一种思路作为参考。
既然我们已经成功运行了 Linux 虚拟机了,那么安装 shadowsocks 什么的不在话下。
apt-get install python-pip python-m2crypto
pip install shadowsocks
完成之后创建一个 JSON 文件,配置好配置文件然后执行 sslocal 即可。但是此时我们只能够实现在虚拟机里面进行翻墙,而我们想把这个翻墙网络共享给其他设备使用。
这时候就可以使用 cow / polipo 进行转换了。shadowsocks 是 socks5 代理,我们要把它转换成 http 代理,因为比较多的设备支持 http 代理,而不用额外安装软件。
curl -L git.io/cow | bash
根据提示完成相应的安装即可。编辑 ~/.cow/rc ,修改部分内容:
#开头的行是注释,会被忽略
# 本地 HTTP 代理地址
# 配置 HTTP 和 HTTPS 代理时请填入该地址
# 或者在自动代理配置中填入 http://127.0.0.1:7777/pac
# 监听 0.0.0.0 ,方便其他设备访问。
listen = http://0.0.0.0:7777

# SOCKS5 二级代理
proxy = socks5://127.0.0.1:1080
之后在 cow 的目录下启动 cow 即可。
这样配置之后同一个网络下的其他设备就可以访问到这台可以翻墙的设备的 http 代理和 PAC 文件了。
  • 在安卓手机下配置 HTTP 代理:设置 -> WLAN -> 长按已连接的WIFI -> 修改网络 -> 显示高级选项 -> 代理设置(手动) -> 填入已翻墙的设备的 IP 以及端口 -> 保存。这样安卓设备就可以通过 HTTP 代理进行翻墙了。
  • 在windows下配置 HTTP 代理:打开IE -> 打开 Internet 选项 -> 连接 -> 局域网设置 -> 使用自动配置脚本 -> 填入已翻墙的设备的PAC文件地址 -> 确定。这样 windows 也可以通过 HTTP 代理进行翻墙了。
使用 HTTP 代理进行翻墙有一点小缺点,就是有些应用可能还是无法翻墙。比如 Google+ ,在我的手机上则没办法连接网络。

4. 作为内网 FTP 服务器

将安卓设备作为 FTP 服务器也相当简单。最简单的办法是,下载一个 ES 文件管理器这个方法创建的 FTP 服务器事实上性能不怎么好,其原因要归根于安卓设备的硬件性能较差
/image/fd971c33-0bf3-40a2-9d06-fd46d303f619/19150154-08fe-4eea-9d05-e8d5295f88b7_Untitled.png
安装完成后打开应用,应该是这个样子的
/image/fd971c33-0bf3-40a2-9d06-fd46d303f619/45b6b2fb-b62b-46b6-be67-f107125b47ba_Untitled.png
点击左上角的图标弹出一系列菜单。选择 网络 这一项
/image/fd971c33-0bf3-40a2-9d06-fd46d303f619/4607a2a6-9ecd-445c-9229-d8b72d6eccf7_Untitled.png
然后选择远程管理器,点击打开FTP就可以了,此时就可以通过浏览器访问该设备的文件了。
/image/fd971c33-0bf3-40a2-9d06-fd46d303f619/3a313e26-a1a4-489a-907c-b4384a899178_Untitled.png
点击设置可以设置一些常用的设置。

总结

利用闲置的安卓设备来运行一些常用的服务,相对来说还是比较靠谱的。一是安卓设备功耗小,就算24小时开机运行,估计也用不了多少电。二是不会产生噪声。三是体积小,方便移动。姑且认为以后闲置的电子设备会越来越多。如何将这些闲置的设备进行一些改进或者配置,达到继续服务人们,这可以说是一门学问,也需要动手能力比较强的人才能做到。希望本篇文章对你来说有所启发。**

Reference