一箇舊手機的威力

這裏的手機指安卓機。
你們都知道安卓機用的是Linux內核,因此理論上Linux可作的事情,手機都能作,下面列舉一些有意思的事情。node

必備技能: 會Linux。python

安裝Linux發行版

其實這個比較簡單,只需裝一個App, 可是有些技巧能夠講講。linux

所需材料android

  • 安卓手機 必須
  • 擁有公網IP的機器 非必須
  • 無限流量卡 非必須
  • root權限 必須

Root

root手機根據手機信號的不一樣,會有不一樣的辦法,因此這裏就不細講,請自行百度,或google.git

安裝linux deploy

經過某個應用市場下載並安裝github

在線安裝

在線安裝是比較扯淡的,由於在國內實在是比較慢的,緣由你懂的。golang

離線安裝

經過如下地址可下載本身所需的鏡像
http://sourceforge.net/projects/linuxonandroid/files/ web

用戶名/密碼:android/changemeshell

推薦安裝ssh客戶端: JuiceSSH瀏覽器

最好的安卓ssh客戶端,沒有之一。

我的網站

其實這個這個章節有點泛指的意思,任何你以爲須要在公網上能作的事情,均可以在內網完成,由於在內網裏面你可能有舊電腦,舊服務器,舊手機。一切被限制在內網的資源(有內存,cpu。)

所需材料

  • 安卓手機 必須
  • 擁有公網IP的機器 非必須
  • 無限流量卡 非必須
  • root權限 非必須

系統環境

這裏的環境你能夠用上面的Linux deploy部署的Linux環境也可使用下面要說的方式,不一樣的在於下面的方式不須要root

Linux deploy

如上

termux

經過某的應用商店下載並安裝
安裝JucieSSH

之因此不用termux自帶的shell環境,是由於較於JuiceSSH來講,實在時太難用了。

安裝openssh

打開termux後,在終端輸入pkg install sshd以安裝openssh

一箇舊手機的威力

執行sshd命令啓動sshd,這樣就能夠經過其餘ssh客戶端鏈接了,可是默認只能用密鑰登錄

使用JuiceSSH鏈接
  1. 首先在電腦端,經過ssh命令生成密鑰,而後將公鑰私鑰的文本傳到手機.

  2. 在打開JucieSSH以後,依次點擊
    鏈接 -> 認證 -> 點擊認證頁面下面左下角的"+".

  3. 暱稱,用戶名可隨便填,而後點擊私鑰。以下圖所示

一箇舊手機的威力

  1. 粘貼第一步生成的密鑰。以下圖所示

一箇舊手機的威力

  1. 最後點擊完成

6.在termux中導入公鑰。以下圖所示

一箇舊手機的威力

7.使用JucieSSH鏈接.在JuiceSSH中新建鏈接,以下圖所示

一箇舊手機的威力

8.點擊新建的鏈接,鏈接成功後,以下圖

一箇舊手機的威力

使用電腦鏈接

只要保障在同一局域網,而後用上面生成的私鑰鏈接便可

總結

準備好環境後,你就可使用termux作linux下幾乎全部可作的事情了,好比安裝python,golang,nodejs等開發環境,以及一些其餘的軟件。

termux比較易用,可是前面的鏈接實在時比較麻煩,上面是個人鏈接辦法,若是有更好的鏈接辦法還望告知。

內網穿透

因爲衆所周知的緣由,大多數時候家庭網絡都是不會分配公網IP的,因此咱們須要一些手段獲得可以從公網訪問的路徑。下面介紹三種。我主要說第三種。

NATAPP

這是一個專門作內網穿透服務的網站,有免費服務,不過須要實名認證。

地址以下

https://natapp.cn/

ngrok

這個應該時比較出名的內網穿透方式了,但是因爲服務器在國外,再者是免費的,因此可能不穩地以及延遲大。

frp

這個是屬於比較新起之秀了,可是門檻較之上面兩種,比較高。
須要一個有公網IP的服務器,可使用雲服務器或者及其便宜的vps。

項目地址:https://github.com/fatedier/frp

網站搭建

其實看到這裏你也許會有疑問,我有公網服務器或者雲主機,爲啥還要用手機呢。主要有如下兩點

  1. 若是是便宜的vps,可能內存只有256MB或者192MB, 由於咱們主要須要的是公網IP。可是不少手機內存都是1GB或者2GB甚至更高的。即,能夠將負載高的東西放在本地,公網IP所在的服務器只是轉發流量。

  2. 這裏只是一個拋磚引玉的示例,只要能內網穿透,你就能夠將不少內網的東西放到內網了。

軟件環境

這裏以golang web的hello world爲例,你固然能夠用其餘任何的語言以及方式運行一個web服務。

安裝golang

在手機上執行pkg install golang

建立程序軟件

包含如下內容

package main

import (
    "fmt"
    "net/http"
)

func main() {
    http.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) {
        fmt.Fprintf(w, "helo world")
    })

    http.ListenAndServe(":8088", nil)
}
運行程序

go run main.go &

瀏覽器訪問http://<IP>:8088

映射公網地址到內網

分別下載服務器版本的frp以及安卓手機的frp

服務器若是是linux,就根據32或者64位下載相應以linux開頭的frp,如frp_0.16.0_linux_386.tar.gz

安卓手機下載以arm結尾的frp版本,如
frp_0.16.0_linux_arm.tar.gz

下載地址:https://github.com/fatedier/frp/releases

配置服務端

建立配置文件web-server.conf

# frps.ini
[common]
bind_port = 7777
privilege_allow_ports = 60000-60105
privilege_token = secret.

[web]
type = tcp
auth_token = secret.
listen_port = 60000

配置客戶端

建立配置文件web-client.conf

[common]
server_addr = <Server-IP>
server_port = 7777
privilege_token = secret.

[web]
type = tcp
local_ip = 127.0.0.1
local_port = 8088
remote_port = 60000
sk = secret.

運行

服務端
frps -c web-server.conf

客戶端
frpc -c web-client.conf

最後訪問http://<Server-ip>:60000

這裏只是一個展現,其實關於http轉發有更多能夠設置的細節,參考:https://github.com/fatedier/frp

爬蟲代理

這裏暫時還只是一個概念,有一個暫時沒有克服的問題。相較於網上的一堆代理網站也不必定可行。

你也許不知道的是,每當你將手機設置飛行模式而後解除飛行模式,那麼你的公網出口IP就會改變,因此若是經過某個IP可以調取手機開關飛行模式API,那麼在手機上運行爬蟲會是一個不錯的選擇,由於有大量的IP可切換,不怕被封IP。

所需材料

  • 安卓手機 必須
  • 擁有公網IP的機器 非必須
  • 無限流量卡 必須
  • root權限 非必須

其餘想法

  • 作一個私用的Pass平臺。由於計算機內存資源主要用內網環境的,可是能夠經過公網訪問。
  • 作一個下載器。
  • 作一個私有云盤。
  • 作一個....

總結

理論上在Linux上能作的事情,安卓手機上都能作。其實叫作Linux的威力也許更適合。

最後的最後

一箇舊手機的威力

相關文章
相關標籤/搜索