<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      手機(jī)單控及玩客云服務(wù)部署小記

        近期家里拉了寬帶,好友送了一個(gè)玩客云盒子,遂探索使用遠(yuǎn)程控制方式實(shí)現(xiàn)手機(jī)操作。

        一、手機(jī)篇

        對于遠(yuǎn)程控制的場景,一般使用紅米這種技術(shù)開放程度高的品牌,遂在咸魚上40多塊淘了個(gè)紅米note4x作測試。不過郵過來的手機(jī),既沒有電池又沒有直充線,筆記本usb的電流不足無法將手機(jī)開機(jī),只能勉強(qiáng)進(jìn)入fastboot模式。在退換不方便的情況下,只能用充電頭點(diǎn)亮手機(jī),在全程無法開機(jī)連接電腦的前提下硬著頭皮測驗(yàn),還好最終實(shí)現(xiàn)了功能。

        1.解BL鎖。

        可以照著B站的這個(gè)視頻一步一步的操作:[從零開始 Vol.1]綁定及解鎖BootLoader

        對于我來講,下載小米的官方線刷工作后,使用管理員運(yùn)行工具即正常安裝驅(qū)動,然后在手機(jī)上進(jìn)入開發(fā)者工具(接充電頭),綁定小米賬號后重啟進(jìn)入fastboot模式(接電腦),最后使用小米的官方解鎖工具完成解鎖。

        2.獲取Root權(quán)限

        一般有兩種方法,刷機(jī)至開發(fā)版或者使用面具(Magisk),我首先選擇的是線刷開發(fā)版。但從最晚的9.8一直刷到9.1,甚至還刷了個(gè)8.12,都在獲取Root功能中提示“下載過程中存在異常,建議您重新下載”,導(dǎo)致無法獲取root。我上網(wǎng)上搜索也發(fā)現(xiàn)有類似的問題,我猜測應(yīng)該是紅米官方人為的關(guān)閉了老舊機(jī)型與系統(tǒng)的Root獲取功能。最后只能重新刷了最新的穩(wěn)定版11.0.2,然后選擇面具方式獲取Root。線刷時(shí)注意不要選擇“全部刪除并lock”,否則手機(jī)會重新鎖住,便需再次執(zhí)行第1步。

        可以照著面具中文網(wǎng)的教程一步一步的操作:Magisk安裝教程,本質(zhì)上masgisk就是一個(gè)破解工具,通過在boot.img中注入屏蔽代碼,然后刷入手機(jī)替換原版,實(shí)現(xiàn)對操作系統(tǒng)的欺騙,最終完成Root獲取。

        3.開機(jī)自啟遠(yuǎn)程調(diào)試

        這一步需要修改手機(jī)的啟動配置文件。安裝老牌的文件管理器 Root Explorer并賦予Root權(quán)限,然后使用它打開 /system/build.prop 文件,在文件的最后添加開機(jī)自動打開adb訪問端口,端口值可自定義。

      service.adb.tcp.port=5555

        最后進(jìn)入手機(jī),打開開發(fā)者模式,打開usb調(diào)試模式,打開usb調(diào)試(安全設(shè)置)即可,其中開啟后者前需要先插入一張sim卡。至此,手機(jī)側(cè)的工作已準(zhǔn)備好。

        4.其它設(shè)置

        紅米note4x是實(shí)體按鍵,無虛擬按鍵選項(xiàng)。可在更多功能探索中,打開懸浮球選項(xiàng),方便遠(yuǎn)程之后執(zhí)行返回,開關(guān)機(jī)等操作。

       

      其它參考:

      Android 設(shè)備開機(jī)或聯(lián)網(wǎng)時(shí)自動開啟無線調(diào)試(WIFI調(diào)試)

      scrcpy鏈接手機(jī)后只能顯示無法觸控/scrcpy啟動腳本/adb傳輸文件打包

       

        二、玩客云

        手上玩客云的基本情況是arm7 32位架構(gòu)的4核cpu,1G的內(nèi)存,8G的存儲,有千兆的網(wǎng)口,還有一個(gè)usb2口。盒子已經(jīng)刷為了armbain 23.08系統(tǒng),采用的debain分支bullseye版本,歸屬玩客云版本為6.1.31

        1.更換軟件庫

        首先將軟件庫更換為國內(nèi)源,需要修改 /etc/apt/sources.list 及 /etc/apt/sources.list.d/armbian.list 兩個(gè)文件。其中前者是通用軟件庫,后者是專用軟件庫,以更換為清華源為例。

      sources.list,注釋原有內(nèi)容并填入如下內(nèi)容

      # 默認(rèn)注釋了源碼鏡像以提高 apt update 速度,如有需要可自行取消注釋
      deb https://mirrors.tuna.tsinghua.edu.cn/debian/ bullseye main contrib non-free
      # deb-src https://mirrors.tuna.tsinghua.edu.cn/debian/ bullseye main contrib non-free
      
      deb https://mirrors.tuna.tsinghua.edu.cn/debian/ bullseye-updates main contrib non-free
      # deb-src https://mirrors.tuna.tsinghua.edu.cn/debian/ bullseye-updates main contrib non-free
      
      deb https://mirrors.tuna.tsinghua.edu.cn/debian/ bullseye-backports main contrib non-free
      # deb-src https://mirrors.tuna.tsinghua.edu.cn/debian/ bullseye-backports main contrib non-free
      
      # 以下安全更新軟件源包含了官方源與鏡像站配置,如有需要可自行修改注釋切換
      deb https://security.debian.org/debian-security bullseye-security main contrib non-free
      # deb-src https://security.debian.org/debian-security bullseye-security main contrib non-free

       

      armbian.list,將 http://apt.armbian.com 替換為 https://mirrors.tuna.tsinghua.edu.cn/armbian ,如下

      deb https://mirrors.tuna.tsinghua.edu.cn/armbian bullseye main bullseye-utils bullseye-desktop

       

      最后統(tǒng)一升級軟件庫目錄并執(zhí)行軟件更新,更新后歸屬玩客云版本號為6.6.32。

      apt-get update
      apt-get upgrade

       

        2.安裝常用軟件

        安裝 screen、ne、alex,具體安裝與設(shè)置方式,可參見我的另一篇 Ubuntu 22.04部署小記

       

      參考

      armbian-onecloud

      清華大學(xué)debian

      清華大學(xué)armbian

       

        三、手機(jī)投屏與控制

        市面上常見的控制軟件大部份為scrcpy系,如scrcpy、qtscrcpy等,原理是通過手機(jī)的adb服務(wù)與手機(jī)進(jìn)行交互。在填寫手機(jī)被分配的IP后即可實(shí)現(xiàn)遠(yuǎn)程投屏與控制。教程很多,不贅述。

       

      參考

      FreeControl

      13k+ Stars 功能強(qiáng)悍,群控手機(jī),開源無需root

       

        四、手機(jī)直控

        當(dāng)手機(jī)adb服務(wù)假死,或者連接過程中因?yàn)榫W(wǎng)絡(luò)原因掉線,再次連接時(shí)可能會提示端口占用而無法連接,此時(shí)只能通過人工現(xiàn)場重啟adb服務(wù),甚至重啟手機(jī)的方式進(jìn)行恢復(fù)。為了更穩(wěn)健的遠(yuǎn)程手機(jī),建議新增手機(jī)直控模式,即直接在手機(jī)內(nèi)安裝app,然后通過客戶端工具將指令發(fā)給app,app調(diào)用手機(jī)shell直接執(zhí)行或者解析屏幕顯示模擬點(diǎn)擊執(zhí)行。

        目前比較經(jīng)濟(jì)高效的方式是借助手機(jī)的自動化框架完成上述事宜。市面比較常見的有hamibot、autojs、easyclick等。我這邊選擇的是autojs,其客戶端工具名為autojs-web-control,使用了nodejs、nginx及mysql數(shù)據(jù)庫,目前在github上存在好幾個(gè)倉庫版本。

        1.直接運(yùn)行模式

        zrk1993的倉庫版本使用了直接運(yùn)行模式。

        1.1 npm

        使用apt工具進(jìn)行安裝

      apt install npm

        將node與npm的鏡像地址均修改為國內(nèi)源(淘寶)

      npm config set registry https://npmmirror.com/mirrors/npm/
      npm config set disturl https://npmmirror.com/mirrors/node/

        1.2 mariadb

        系統(tǒng)使用mysql存儲數(shù)據(jù)。可以使用mariadb平替。

      apt install mariadb

        打開/etc/mysql/mariadb.conf.d/50-server.cnf,注釋bind-address屬性,打開遠(yuǎn)程訪問權(quán)限。

      #bind-address            = 127.0.0.1

        本機(jī)登錄mariadb,打開root的遠(yuǎn)程登錄權(quán)限并設(shè)置密碼為root

      mysql -u root -p
      grant all privileges on *.* to 'root'@'%' identified by 'root' with grant option;
      flush privileges;

        使用數(shù)據(jù)庫工具連接mariadb,創(chuàng)建cloud_auto數(shù)據(jù)庫,然后下載并解壓倉庫代碼,執(zhí)行cloud_auto.sql及update.sql,執(zhí)行前者時(shí)如果腳本報(bào)錯(cuò)則刪除開頭注釋后再次執(zhí)行。

         1.3 server端

        打開server/utils/db.ts文件,將端口和密碼修改為實(shí)際值

      const orm = new DBM({
        connectionLimit: 10,
        host: 'localhost',
        port: 3306,
        user: 'root',
        password: 'root',
        database: 'cloud_auto',
        isDebug: true,
      });

        在server目錄執(zhí)行打包,獲取相關(guān)依賴庫

      npm install

        打開tsconfig.json文件,修改發(fā)布目標(biāo)目錄為dist

      "outDir": "./dist",

        在server目錄執(zhí)行發(fā)布

      npm run build

        修改package.json,添加start指令,簡化服務(wù)啟動命令

      "scripts": {
          "start": "node ./modules/default/main.js",
          "build": "tsc -p tsconfig.build.json",
          "clean": "ts-clean",
          "lint": "tslint --fix -p tsconfig.json -c tslint.json"
        },

        將依賴庫及引用文件復(fù)制至dist目錄

      cp -rf ./node_modules/ ./dist/
      cp ./package.json ./dist/

        項(xiàng)目里引用了作者另外兩個(gè)庫,在實(shí)際操作中沒有一并發(fā)布,如果現(xiàn)在直接運(yùn)行本項(xiàng)目會報(bào)錯(cuò),我這邊手工編譯也會報(bào)錯(cuò),只需要手工下載作者的打包結(jié)果并放至指定目錄即可

        下載 https://github.com/zrk1993/souljs 項(xiàng)目,解壓后將 dist 文件夾復(fù)制至 dist/node_modules/souljs/ ,下載 https://github.com/zrk1993/soul-orm 項(xiàng)目,解壓后將 dist 文件夾復(fù)制至 dist/node_modules/soul-orm/

      cp -rf ./dist/ dist/node_modules/souljs/
      cp -rf ./dist/ dist/node_modules/soul-orm/

        最后執(zhí)行如下兩種命令中的任意一種,均可開啟服務(wù),將監(jiān)聽9317端口數(shù)據(jù)

      npm run start
      node ./modules/default/main.js

         1.4 web端

        項(xiàng)目依賴python2,且使用的是python命令。注意不能最小化安裝python2-minimial,否則編譯過程會報(bào)找不到 compiler.ast 的錯(cuò)誤,然后對python命令作軟鏈接

      apt install python2ln -s /usr/bin/python2 /usr/bin/python

        在web目錄執(zhí)行打包,獲取相關(guān)依賴庫。由于直接依賴與間接依賴存在沖突,需要增加legacy-peer-deps進(jìn)行忽略

      npm install --legacy-peer-deps

        修改web目錄下 .env.staging 文件,將api與ws地址指向service端

      VUE_APP_BASE_API = 'http://192.168.191.50:9317'
      VUE_APP_WS_HOST = 'ws://192.168.191.50:9317'

        運(yùn)行 npm run dev可以本地模式運(yùn)行,但更建議以stage標(biāo)簽方式發(fā)布至dist目錄下,然后掛載至nginx中訪問,提高運(yùn)行性能

      npm run build:stage

        1.5 nginx服務(wù)掛載

        使用apt工具進(jìn)行安裝

      apt install nginx

        修改 /etc/nginx/sites-enabled/default 配置文件 ,將根目錄指向上面web端發(fā)布的dist目錄

      root /opt/autojs-web-control-master/web/dist;

        重啟nginx后

      systemctl restart nginx.service

        現(xiàn)在就可以使用瀏覽器訪問服務(wù)器ip,使用admin/123456來登錄 Autojs Web Control System

       

      參考

      AutoJs Web Control(一)

      AutoJs Web Control 部署指南

      npm disturl 是做什么用的?

      從源碼分析node-gyp指定node庫文件下載地址

      nvm、npm鏡像源配置

      MariaDB versus MySQL: Compatibility

      mariadb新安裝解決遠(yuǎn)程訪問以及root登錄

      npm install xxxx --legacy-peer-deps命令是什么?為什么可以解決下載時(shí)候產(chǎn)生的依賴沖突呢?

      ImportError: No module named compiler.ast on embedded linux

       

        1.6 auto.js app

        auto經(jīng)歷了二代,第一代的最終版是4.1.1,因?yàn)樯婕澳承┰虮幌录埽缓蟀l(fā)布出第二代,屏蔽了不少app的適配。我這邊只是用于開關(guān)機(jī)或開關(guān)服務(wù)的簡單操作,使用第一代即可。從這里下載第一代的最終版。

        安裝至手機(jī)上后打開app,首先將提示需打開此app的無障礙服務(wù),而后使用面具為其賦予Root權(quán)限。點(diǎn)擊左上角的三根線圖標(biāo),點(diǎn)擊“連接電腦”,在彈出的框中輸入布署server端的服務(wù)器ip地址,確認(rèn)后即可在web端看到設(shè)備上線。

        在web端創(chuàng)建如下腳本,實(shí)現(xiàn)重啟手機(jī)adb服務(wù)

      auto.waitFor();
      
      function RestartADBD() {
          toastLog("ADBD重啟中……");
          shell("stop adbd", true);
          sleep(1000);
          shell("start adbd", true);
          toastLog("ADBD已重啟。");
      }
      
      RestartADBD();

        在web端創(chuàng)建如下腳本,實(shí)現(xiàn)重啟手機(jī)

      auto.waitFor(); // 文檔地址:https://docs.hamibot.com/reference/widgetsBasedAutomation
      
      function ShutdownR() {
        //使用root權(quán)限重啟
        shell("reboot", true);
        sleep(1000);
        //1秒后還未重啟,則采用物理方式重啟。
        powerDialog();  
        sleep(1000);
        click('重新啟動');
      }
      
      ShutdownR();

        目前每次手機(jī)重啟后,auto.js app連接電腦的設(shè)置會被默認(rèn)關(guān)閉,服務(wù)端會丟失手機(jī)設(shè)備的連接,導(dǎo)致后續(xù)無法繼續(xù)發(fā)送指令。可以借助auto.js app的自動化操作能力,實(shí)現(xiàn)設(shè)置的重打開。

        在開發(fā)者模式中,打開指針位置選項(xiàng),確認(rèn)好auto.js app在桌面上的坐標(biāo),然后在app中創(chuàng)建新腳本,如下

      device.keepScreenDim(); // 保持屏幕常亮,但允許屏幕變暗來節(jié)省電量。當(dāng)屏幕沒有點(diǎn)亮,則會喚醒屏幕。
      sleep(1000);
      swipe(500, 1500, 900, 500, 201);    // 滑動解鎖,小米手機(jī)的滑動時(shí)間應(yīng)在201-230之間
      sleep(1000)
      click(650, 1400);   // 打開桌面auto.js應(yīng)用
      sleep(5000)
      desc("打開側(cè)拉菜單").click();   // 打開設(shè)置面板
      sleep(1000)
      swipe(500, 1200, 500, 500, 1000);   // 向上滑動顯出連接電腦的選項(xiàng)
      sleep(1000);
      click(500, 1300);    // 點(diǎn)擊連接電腦滑動開關(guān)
      sleep(1000);
      click(860, 775);   // 連接服務(wù)器

        點(diǎn)擊腳本右鏈的三個(gè)點(diǎn)按鈕,選擇更多,創(chuàng)建定時(shí)任務(wù),將腳本設(shè)置為特定事件(廣播)觸發(fā)運(yùn)行 - 開機(jī)時(shí),然后將 auto.js app 加入授權(quán)手機(jī)的開機(jī)自動。實(shí)測在本手機(jī)中,開機(jī)見到桌面后,再等40秒左右將自動運(yùn)行此腳本連接server端。

       

        1.7 腳本調(diào)試

        一段合格的腳本編制需要大量的調(diào)試,app使用條件有限,建議使用vscode工具完成代碼編制與腳本調(diào)試。

        1.7.1 vscode

        vscode的安裝與使用網(wǎng)上有很多教程,不贅述。與auto.js app搭配使用的是Auto.js-autox.js-VSCodeExt插件,完成安裝后,通過ctrl + shift + p 或者查看->命令菜單,調(diào)出命令框,輸入auto.js,然后在智能提示中選擇"開啟服務(wù)并監(jiān)聽ADB設(shè)備(Start all server)",即可啟動server端監(jiān)聽,然后在auto.js app中將連接電腦的ip地址指向vscode所在電腦ip地址即可完成連接。最后在vscode中創(chuàng)建任意名稱的js文件,錄入代碼后,按F5鍵即可實(shí)現(xiàn)代碼調(diào)試。

        1.7.2 auto.js app

        在代碼編寫與調(diào)試過程,經(jīng)常需要對界面元素進(jìn)行定位。auto.js支持兩種定位模式。如果使用基于界面元素的定位,這時(shí)就需要開啟app的懸浮窗功能,也需要手機(jī)對app授權(quán)懸浮窗權(quán)限,然后會在界面的左中側(cè)顯示一個(gè)小的懸浮圓鈕,點(diǎn)擊后會展開若干功能,其中第三個(gè)就是界面分析;如果使用基于坐標(biāo)的定位,則是開啟手機(jī)開發(fā)者模式中的指針位置,然后記錄操作過程的坐標(biāo)。在我的體驗(yàn)中,對于界面復(fù)雜且命名混亂,想實(shí)現(xiàn)的功能又特別簡單,目標(biāo)手機(jī)能保持相同品牌相同型號的,使用坐標(biāo)定位會更簡單。具體的使用方式參見官方教程。

       

        1.8 保持連接

        默認(rèn)情況下,實(shí)測app會在鎖屏之后2分鐘左右斷開與server端的連接,當(dāng)在后臺運(yùn)行時(shí),也可能受操作系統(tǒng)策略影響在任意不確定時(shí)間被系統(tǒng)后臺中止,所以需要進(jìn)行相關(guān)設(shè)置,使app長久穩(wěn)定運(yùn)行,且保持app與server端的連接狀態(tài)。

        1.8.1 電池策略

        進(jìn)入手機(jī)的設(shè)置,電池與性能,然后點(diǎn)擊右上角的設(shè)置,關(guān)閉鎖屏后斷開數(shù)據(jù),鎖屏后清理內(nèi)存,然后在應(yīng)用智能省電中,將auto.js的策略設(shè)置為無限制。

        1.8.2 鎖屏策略

        在web端使用如下命令來保持屏幕常亮且允許屏幕變暗來節(jié)省電量。進(jìn)入手機(jī)的設(shè)置,鎖屏和密碼,然后將自動鎖屏的策略修改為從不也是相關(guān)的效果(但不會屏幕變暗來節(jié)省電量),建議使用命令方式。

      device.keepScreenDim()

        1.8.3 應(yīng)用鎖定策略

        打開手機(jī)自帶的app切換頁面,然后長鍵auto.js應(yīng)用,在彈出的按鈕中點(diǎn)擊鎖按鈕,這樣可以保證應(yīng)用在后臺運(yùn)行時(shí)不被清理。

        1.8.4 設(shè)置為前臺服務(wù)

        打開 auto.js app,打開設(shè)置面板,打開前臺服務(wù)開關(guān),可以提高應(yīng)用的存活率。

        1.8.5 心跳包策略

        通過設(shè)置心跳包,讓app與server端定期通信,可以增強(qiáng)連接的可靠性。在web端創(chuàng)建一個(gè)運(yùn)行腳本,錄入上面讓屏幕保持常亮的語句,執(zhí)行設(shè)備選擇目標(biāo)設(shè)備(實(shí)測選擇所有設(shè)備時(shí)運(yùn)行無效果),然后在計(jì)劃任務(wù)中設(shè)置每間隔1分鐘執(zhí)行一次,最后啟動此定時(shí)任務(wù)即可,cron表達(dá)式如下。在我目前實(shí)測中,做到前面兩步即可保持常連接。

      */1 * * * *

       

      參考

      第一代API文檔

      必看的入門基礎(chǔ)

      從0到1,教你如何使用Tasker+Autojs實(shí)現(xiàn)自動打卡功能

      autojs,定時(shí)腳本的一個(gè)簡單應(yīng)用,應(yīng)用自啟動與手動啟動的區(qū)別。

      Auto.js 九宮格解鎖、密碼解鎖

      AutoJs Web Control(二)

      【Android】【應(yīng)用保活】保證應(yīng)用在后臺繼續(xù)運(yùn)行

       

        2.docker模式運(yùn)行(未成功)

        shonngithub的倉庫版本使用了docker-compose模式。下載并解壓,進(jìn)入deploy目錄。但其主理人只編譯了amd64架構(gòu)的鏡像,玩客云為armv7 32位架構(gòu)無法運(yùn)行,故需要重新尋找鏡像。

        2.1 docker及docker-compose

        使用apt工具進(jìn)行安裝

      apt install docker.io docker-compose

        創(chuàng)建或修改/etc/docker/daemon.json,添加國內(nèi)的鏡像加速源。今年7月以來很多加速源均失效了,需要不斷的更新這個(gè)目錄。

      {
          "registry-mirrors": [
              "https://docker.m.daocloud.io",
              "https://registry.docker-cn.com",
              "https://docker.mirrors.ustc.edu.cn",
              "https://hub-mirror.c.163.com",
              "https://mirror.baidubce.com",
              "https://ccr.ccs.tencentyun.com",
              "https://dockerhub.icu/",
              "https://hub.rat.dev/",
              "https://docker.wanpeng.top"
          ]
      }

        項(xiàng)目里deploy/docker-compose文件的版本為3.8,需要下降至3.7或更低,否則運(yùn)行報(bào)錯(cuò)

      version: '3.7'

        2.2 mysql

        經(jīng)查找,biarms/mysql 提供了5.7的armv7架構(gòu)的mysql,修改編輯docker-compose.yml,將image屬性進(jìn)行修改

      image: biarms/mysql:5.7.33-beta-circleci

        2.3 autojs服務(wù)端

        服務(wù)端為個(gè)性化代碼,需要自己重新編譯。解壓根目錄的Dockerfile文件中引用了 shonnz/node-nginx:alpine,但可惜這個(gè)鏡像也屬于主理人,也作了個(gè)性化處理,且找不到Dockerfile,即使通過dfimage工具逆向出來的Dockerfile參考也不得所以,目前已向主理人申請Dockerfile文件,等待返饋。

       

      參考

      docker 與 docker-compose 文件版本 對應(yīng)關(guān)系

      DockerHub 國內(nèi)加速鏡像列表

      在 armv7l 和 s390x 架構(gòu)服務(wù)器上啟用 MySQL 和 OpenResty

      【Docker】從零開始將自己的應(yīng)用打包到docker鏡像

       

        五、搭建網(wǎng)絡(luò)連接

        筆記本隨自攜帶,一部份手機(jī)可能隨身攜帶,一部份手機(jī)放在家里,玩客云肯定放在家里,所以我需要找到一種方式,能夠隨時(shí)將自己與家里鏈接起來。目前家里的路由器使用的是京東云A6600,俗稱雅典娜,光貓橋接至路由器,路由器播號上網(wǎng)。

        我測試的第一種方式,是直接使用ip6公網(wǎng)ip訪問內(nèi)網(wǎng)手機(jī)。但是京東云自帶的不論是dmz還是端口映射,都只能配置ip4版本,京東云也不支持將ip6轉(zhuǎn)為ip4后轉(zhuǎn)發(fā),所以無法成功。但按這種思路,可以衍生出使用玩客云安裝openwrt軟路由播號上網(wǎng),然后玩客云本身也作為服務(wù)器實(shí)現(xiàn)端口映射。這種思路后面再研究。下面幾種方式均基于ip4。

        第二種方式,是使用京東云自帶的花生殼+端口映射,但是測試了很久,花生殼一直登錄不上去,可能是版本老舊的原因,無法成功

        第三種方式,是使用官方的花生殼樹莓派客戶端+官方花生殼內(nèi)網(wǎng)穿透,這個(gè)測試成功了,但是免費(fèi)賬號只能配置2個(gè)內(nèi)網(wǎng)穿透。雖然后面研究后,可以使用nginx的負(fù)載均衡(upstream)的輪詢功能,通過scrcpy工具的主動連接與主動斷開,實(shí)現(xiàn)相同端口對不同手機(jī)的訪問,但是終究是復(fù)雜了點(diǎn)。(備用方案)

        我最終選擇了第四種方式,即使用zerotier或tailscale架設(shè)私有VPN。具體來講又有兩種策略,一種是在所有在手機(jī)、筆記本、玩客云上安裝z或t,所有通信均在z或t網(wǎng)下進(jìn)行。z或t網(wǎng)服務(wù)器在國外,通信的穩(wěn)定性不足,且在手機(jī)上安裝z或t比較費(fèi)時(shí),最終我選擇了另一種,即只在筆記本和玩客云上安裝z或t,玩客云通過端口映射轉(zhuǎn)發(fā)至手機(jī)。

        1. 安裝zerotier

        按照 內(nèi)網(wǎng)穿透神器ZeroTier使用教程 這個(gè)教程一步一步的注冊賬號、創(chuàng)建網(wǎng)絡(luò)、加入網(wǎng)絡(luò)、分配ip等工作,實(shí)現(xiàn)筆記本與玩客云的互通。

        可以通過部署私有化行星或月亮服務(wù)器加快訪問速度(參考1參考2),不過其要求有固定的外網(wǎng)ip,故放棄。

        2. 安裝tailscale(個(gè)人首選)

        按照 下一代VPN工具:體驗(yàn)TailScale的簡便和高效 這個(gè)教程在筆記本上一步一步的下載安裝、注冊賬號、官方管理端配置禁用DNS。

        然后回到官網(wǎng)選擇linux下的手工安裝模式,選擇 Raspberry Pi Bullseye ,然后按照官方教程一步一步的安裝,在執(zhí)行 tailscale up 命令時(shí),將彈出的地址在瀏覽器中打開,然后使用相同的賬號進(jìn)行登錄綁定,即可完成筆記本與玩客云的組網(wǎng)。可在官方管理端或使用 tailscale ip -4 命令查詢ip地址。個(gè)人實(shí)測感覺t網(wǎng)的連接速度比z網(wǎng)略快(但均慢于花生殼)。

        3. 安裝蒲公英(個(gè)人首選)

        首先登錄貝銳蒲公英后臺創(chuàng)建網(wǎng)絡(luò),然后按照 中國版的Zerotier:蒲公英進(jìn)階玩法,想不想白嫖,全在你! 這個(gè)教程,在筆記本安裝win版貝銳蒲公英并登錄相同賬戶,同時(shí)在玩客云安裝arm 32位版貝銳蒲公英并登錄相同賬戶,此時(shí)蒲公英將自動將這兩臺設(shè)備組網(wǎng)。在各自的客戶端或貝銳蒲公英后臺可查看各設(shè)備虛擬ip。

        下一步配置轉(zhuǎn)發(fā),端口映射又有兩種實(shí)現(xiàn)方式:nginx轉(zhuǎn)發(fā)、iptables轉(zhuǎn)發(fā)。

        4 nginx轉(zhuǎn)發(fā)(個(gè)人首選)

        這個(gè)比較簡單,在 /etc/nginx/nginx.conf 中添加stream流轉(zhuǎn)發(fā)規(guī)則,然后重啟nginx即可。注意stream節(jié)點(diǎn)需與http平級。

      stream {
         server {
          listen 51000;
          proxy_pass 192.168.68.177:5555;
        }
      }

       

        4 iptables轉(zhuǎn)發(fā)

        首先打開 /etc/sysctl.conf 設(shè)置 net.ipv4.ip_forward 屬性開啟 ip4 數(shù)據(jù)轉(zhuǎn)發(fā)功能,然后重啟服務(wù)器。使用 sysctl -p 檢查設(shè)置結(jié)果

      net.ipv4.ip_forward = 1

        然后配置轉(zhuǎn)發(fā)規(guī)則。目前玩客云有兩張網(wǎng)卡,一張是物理網(wǎng)卡連接了wifi,與手機(jī)通信,另一張是vpn網(wǎng)卡與筆記本通信,所以 PREROUTING 規(guī)則應(yīng)該配置從VPN網(wǎng)卡到手機(jī)的通信, POSTROUTING 規(guī)則應(yīng)該配置手機(jī)到物理網(wǎng)卡的通信,然后由玩客云內(nèi)部自行實(shí)現(xiàn)從物理網(wǎng)卡到VPN網(wǎng)卡的通信,最終再從VPN網(wǎng)卡至筆記本的通信。由于手機(jī)無法尋址玩客云VPN網(wǎng)卡,POSTROUTING 直接對 PREROUTING 作反向配置將導(dǎo)致數(shù)據(jù)回傳丟包。配置完將立即生效。

      iptables -t nat -A PREROUTING -d 192.168.191.50 -p tcp --dport 52000 -j DNAT --to-destination 192.168.68.177:5555
      
      iptables -t nat -A POSTROUTING -d 192.168.68.177 -p tcp --dport 5555 -j SNAT --to 192.168.68.160

        目前相關(guān)配置僅存于內(nèi)存中,服務(wù)器重啟后將丟失,所以需要進(jìn)行保存。debian體系下,iptables安裝后不是服務(wù),所以需要保存規(guī)則至文件,然后自建開機(jī)自啟加載服務(wù)。或者使用 iptables-persistent 包完成上述工作。相關(guān)操作見參考即可。

       

      參考

      iptables實(shí)現(xiàn)端口映射(本地和遠(yuǎn)程端口映射)

      雙網(wǎng)卡Iptables端口轉(zhuǎn)發(fā)

      Linux 防火墻指南:如何永久保存 iptables 規(guī)則?

      Debian下配置防火墻iptables

      posted @ 2024-08-04 19:24  永遠(yuǎn)的阿哲  閱讀(877)  評論(0)    收藏  舉報(bào)
      主站蜘蛛池模板: 国产真实交换配乱婬95视频| h动态图男女啪啪27报gif| 黑龙江省| 国产成人无码免费看片软件| √天堂中文www官网在线| 婷婷六月色| 国产国语一级毛片| 日韩精品中文字幕第二页| 偷炮少妇宾馆半推半就激情| 免费看成人欧美片爱潮app| 蜜臀av一区二区国产精品| 亚洲自拍偷拍福利小视频| 91超碰在线精品| 亚洲人成电影网站 久久影视| 亚洲中文久久久久久精品国产| 人妻少妇偷人无码视频| 五十路丰满中年熟女中出| 四虎成人精品永久免费av| 国产成人啪精品午夜网站| 国产二区三区不卡免费| 风韵丰满妇啪啪区老老熟女杏吧| 日韩av一区二区不卡在线| 亚洲综合无码一区二区| 亚洲 制服 丝袜 无码| 黄色特级片一区二区三区| 亚洲国产成人综合精品| 无套中出极品少妇白浆 | 亚洲av鲁丝一区二区三区黄| 日韩人妻无码精品久久| 最近2019免费中文字幕8| 免费人成再在线观看视频| 狠狠色综合久久丁香婷婷| 国产免费午夜福利在线观看| 精品中文人妻在线不卡| 日韩毛片在线视频x| 国产精品无遮挡一区二区| 亚洲国产美女精品久久久| 亚洲精品一区二区天堂| 中文字幕乱码熟妇五十中出 | 色婷婷综合久久久久中文字幕| 麻豆国产传媒精品视频|