前言
想做一臺可以外網訪問局域網的服務器,沒有群暉或者軟路由,正好有一臺閑置的nova4,查閱了一些資料后就在手機上搭了一個服務器,有閑心的可以試一試,,,
目錄
?????
一、環境準備
二、使用步驟
1.安裝Termux
2.1.1 用上面提供的鏈接下載,目前最新的是0.117
2.1.2更換清華源:
2.1.3安裝ssh
2.1.4設定用戶密碼,也是ssh連接密碼
2.1.5 使用電腦連接ssh,因為手機上操作感徑訓是有點困難(推薦mobaxterm,也可以用xshell)
2.安裝proot-distrot及ubuntu
3.本地搭建專案
4.frp內網穿透
4.1 frps服務端
4.2 frpc 客戶端
5.自啟動應用
總結
一、環境準備
- 一部安卓手機,無需root
- Termux(目前官網上的最新包僅支持安卓7.0以上,其他版本自測)termux官網下載
- frpc內網穿透(因為沒有公網ip,如果有的話可以使用路由器映射的方式)
- 騰訊云服務器一臺(某寶上幾十塊錢有一年的,本人就是那上面買的,6m帶寬,1000G流量,目前夠用,如果有公網ip可省略這步)
二、使用步驟
1.安裝Termux
2.1.1 用上面提供的鏈接下載,目前最新的是0.117

2.1.2更換清華源:
sed -i 's@^\(deb.*stable main\)$@#\1\ndeb https://mirrors.tuna.tsinghua.edu.cn/termux/termux-packages-24 stable main@' $PREFIX/etc/apt/sources.list
sed -i 's@^\(deb.*games stable\)$@#\1\ndeb https://mirrors.tuna.tsinghua.edu.cn/termux/game-packages-24 games stable@' $PREFIX/etc/apt/sources.list.d/game.list
sed -i 's@^\(deb.*science stable\)$@#\1\ndeb https://mirrors.tuna.tsinghua.edu.cn/termux/science-packages-24 science stable@' $PREFIX/etc/apt/sources.list.d/science.list
apt update
2.1.3安裝ssh
pkg install openssh
2.1.4設定用戶密碼,也是ssh連接密碼
---- 輸入passwd,之后輸入兩次你要設定的密碼即可
---- 然后開啟ssh服務并查看當前內網地址
sshd
ifconfig

2.1.5 使用電腦連接ssh,因為手機上操作感徑訓是有點困難(推薦mobaxterm,也可以用xshell)
打開mobaxterm,點擊session
remote host 輸入剛剛查看到的地址,其他照著下面圖片填,雖然填寫的是root用戶,但是其實是沒有root權限的,因為手機本身沒root,在實際開發程序中有很多指令是要linux的超級管理員權限的,所以要在里面安裝一個ubuntu,然后就可以在ubuntu里面使用任意權限,繼續往下走~

2.安裝proot-distrot及ubuntu
apt install proot-distro
接下來安裝ubuntu,
proot-distro install ubuntu

然后就可以使用命令進入ubuntu了
proot-distro login ubuntu

在里面同樣安裝之前安裝的必要工具
apt update
apt install vim python3 openssh-server -y
如果出現時區選擇,則輸入 6 回車 70 回車 70 回車
這里需要配置一下ssh的配置,主要是埠,用于區分外部的ssh
vim /etc/ssh/sshd_config

Port 前面的#去掉,然后22改成除了8022、22之外的任意埠 如223
再加入一行 PermitRootLogin yes
改完之后如下:

最后按esc 輸入:wq 回車即可
回到bash頁面后 輸入 service ssh start
![]()
TIPS: 這里開啟ssh的目的是為了方便使用shell遠程,在完成步驟5之后連接ubuntu系統可以直接使用223埠連接,就不需要連接外部的8022埠了
3.本地搭建專案
下面我用一個測驗專案來簡易搭建一個web服務器,測驗遠程開機
1、ubuntu上安裝一個遠程開機的包
apt install wakeonlan
2、寫一個測驗專案,vim test.py,這里試用了flask,很輕松就可以搭起一個web服務器,簡單呼叫了一下喚醒指令,覺得麻煩的可以直接啥都不寫,return一個hello world,

3、pip安裝flask
pip install flask
4、python test.py 就可以啟動專案了
這里說一下遠程開機,被遠程開機的電腦主板bios要開啟網卡喚醒,然后同一局域網內發送一個封包到關機電腦的mac地址上,電腦網卡接收到這個封包就會開機,當然這里只是用于測驗,具體的可以參考一下網路上的資料,wake on lan 喚醒
現在可以使用局域網訪問一下192.168.1.103:8999?mac=f0:xx:xx:xx:xx:xx,頁面顯示hello world 或者回傳上述代碼的魔術封包值就算成功了,
至此,基礎環境安裝完畢,接下來就是frp內網穿透
4.frp內網穿透
上面完成了局域網內環境的搭建,但是外網還不能訪問及遠程控制開機,我們需要一個公網服務器,運營商有提供公網ip的話可以在路由器設定虛擬服務器(有的是叫埠映射),然后直接跳到第5步,下面是沒有公網IP,用手機搭建的的局域網服務器內網穿透到外網的步驟,
工具準備frp github下載

4.1 frps服務端
在云服務器上下載服務器版本后解壓,配置frps.ini
[common]
bind_port = 7000
然后運行
nohup "絕對路徑"/frps -c "絕對路徑"/frps.ini > /dev/null 2>1 &
在防火墻添加一個7000的tcp埠,服務端就配置好了
4.2 frpc 客戶端
下載對應的版本然后解壓,配置frpc.ini
[common]
server_addr = 公網服務器ip地址
server_port = 7000
[wake_on_lan] #用于測驗,實際可根據自己情況配置
type = tcp
local_ip = 127.0.0.1
local_port = 8999 #本地專案地址
remote_port = 58999 #映射到公網服務器的地址,用于外網訪問,也可以是80,前提是公網服務器的80埠未被占用
然后啟動
nohup "絕對路徑"/frpc -c "絕對路徑"/frpc.ini > /dev/null 2>1 &
現在就可以使用你的公網服務器的ip來訪問你的專案了(1xx.xxx.xxx.xxx:5899?mac=f0:xx:...),別忘了公網服務器的防火墻里面要開啟對應的埠(7000,8999),當然還可以買個域名做個dns決議,使用xxx.cn:58999?mac=f0:xx:xx...就能訪問,
5.自啟動應用
如果上述服務不小心被關了或者手機重啟了,那么就要重新敲指令去啟動,相當麻煩,所以可以加入用戶登錄自啟(這里沒用系統自啟是因為嘗試了幾種方案沒成功,你們可以自己嘗試一下,因為他這個雖然是ubuntu,但是跟裝在硬體上的linux系統還是有區別的,有興趣的可以研究一下),
--------
在手機的ubuntu系統下創建一個start.sh:
vim start.sh
按一下 i
輸入以下內容(要是絕對路徑,如 /opt/test.py):
service ssh start
nohup python “絕對路徑”/test.py > /dev/null 2>1 &
nohup “絕對路徑”/frpc -c “絕對路徑”/frpc.ini > /dev/null 2>1 &
按esc 輸入:wq 回車
然后 vim ~/.bashrc
在最下面加上一句
bash /etc/init.d/start.sh

然后保存,在按下ctrl + D退出ubuntu系統 回傳到temux終端下,vim ~/.bashrc
輸入以下內容
sshd
proot-distro login ubuntu
保存就可以了 
現在可以關掉termux軟體了,然后重新打開,就可以直接訪問了,
TIPS:nova4可以設定軟體自啟和常駐后臺,一定要打開這一項,其他手機有些不用設定,有些要,自己可以多嘗試幾遍

總結
基本上就是這些,可以放一些自動化腳本以及搭建一些小型網站,有空折騰的或者有閑置不用的手機可以試一下
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/344282.html
標籤:其他
上一篇:【Android 逆向】代碼除錯器開發 ( 使用 NDK 中的 ndk-build + Android.mk 編譯 Android 平臺的代碼除錯器可執行應用 )
下一篇:Kotlin開發第三天,UI開發

