這裏的手機指安卓機。
你們都知道安卓機用的是Linux內核,因此理論上Linux可作的事情,手機都能作,下面列舉一些有意思的事情。node
必備技能: 會Linux。python
其實這個比較簡單,只需裝一個App, 可是有些技巧能夠講講。linux
所需材料android
root手機根據手機信號的不一樣,會有不一樣的辦法,因此這裏就不細講,請自行百度,或google.git
經過某個應用市場下載並安裝github
在線安裝是比較扯淡的,由於在國內實在是比較慢的,緣由你懂的。golang
經過如下地址可下載本身所需的鏡像
http://sourceforge.net/projects/linuxonandroid/files/ web
用戶名/密碼:android/changemeshell
推薦安裝ssh客戶端: JuiceSSH瀏覽器
最好的安卓ssh客戶端,沒有之一。
其實這個這個章節有點泛指的意思,任何你以爲須要在公網上能作的事情,均可以在內網完成,由於在內網裏面你可能有舊電腦,舊服務器,舊手機。一切被限制在內網的資源(有內存,cpu。)
所需材料
這裏的環境你能夠用上面的Linux deploy部署的Linux環境也可使用下面要說的方式,不一樣的在於下面的方式不須要root
如上
經過某的應用商店下載並安裝
安裝JucieSSH
之因此不用termux自帶的shell環境,是由於較於JuiceSSH來講,實在時太難用了。
打開termux後,在終端輸入pkg install sshd以安裝openssh
執行sshd命令啓動sshd,這樣就能夠經過其餘ssh客戶端鏈接了,可是默認只能用密鑰登錄
首先在電腦端,經過ssh命令生成密鑰,而後將公鑰私鑰的文本傳到手機.
在打開JucieSSH以後,依次點擊
鏈接 -> 認證 -> 點擊認證頁面下面左下角的"+".
6.在termux中導入公鑰。以下圖所示
7.使用JucieSSH鏈接.在JuiceSSH中新建鏈接,以下圖所示
8.點擊新建的鏈接,鏈接成功後,以下圖
只要保障在同一局域網,而後用上面生成的私鑰鏈接便可
準備好環境後,你就可使用termux作linux下幾乎全部可作的事情了,好比安裝python,golang,nodejs等開發環境,以及一些其餘的軟件。
termux比較易用,可是前面的鏈接實在時比較麻煩,上面是個人鏈接辦法,若是有更好的鏈接辦法還望告知。
因爲衆所周知的緣由,大多數時候家庭網絡都是不會分配公網IP的,因此咱們須要一些手段獲得可以從公網訪問的路徑。下面介紹三種。我主要說第三種。
這是一個專門作內網穿透服務的網站,有免費服務,不過須要實名認證。
地址以下
這個應該時比較出名的內網穿透方式了,但是因爲服務器在國外,再者是免費的,因此可能不穩地以及延遲大。
這個是屬於比較新起之秀了,可是門檻較之上面兩種,比較高。
須要一個有公網IP的服務器,可使用雲服務器或者及其便宜的vps。
項目地址:https://github.com/fatedier/frp
其實看到這裏你也許會有疑問,我有公網服務器或者雲主機,爲啥還要用手機呢。主要有如下兩點
若是是便宜的vps,可能內存只有256MB或者192MB, 由於咱們主要須要的是公網IP。可是不少手機內存都是1GB或者2GB甚至更高的。即,能夠將負載高的東西放在本地,公網IP所在的服務器只是轉發流量。
這裏以golang web的hello world爲例,你固然能夠用其餘任何的語言以及方式運行一個web服務。
在手機上執行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 &
分別下載服務器版本的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。
所需材料
理論上在Linux上能作的事情,安卓手機上都能作。其實叫作Linux的威力也許更適合。