<xmp id="siekq">
<xmp id="siekq"><nav id="siekq"><strong id="siekq"></strong></nav>
<menu id="siekq"><menu id="siekq"></menu></menu> <dd id="siekq"></dd>
  • <xmp id="siekq"><nav id="siekq"></nav>
  • <menu id="siekq"><strong id="siekq"></strong></menu>
    <nav id="siekq"><code id="siekq"></code></nav>

    Termux 入門教程:架設手機 Server 下載文件

    作者: 阮一峰

    日期: 2019年7月23日

    騰訊課堂 NEXT 學院

    手機文件,比如照片和視頻,如何下載到桌面電腦?

    普通用戶可以使用手機線,將手機和電腦連起來。作為開發者,其實有更方便的方法,就是在手機架設一個 HTTP 服務,然后從桌面瀏覽器訪問手機。

    本文講解如何使用 Termux 架設手機的 HTTP 服務器。

    一、Termux 是什么?

    Termux 是一個安卓手機的 Linux 模擬器,可以在手機上模擬 Linux 環境。它提供一個命令行界面,讓用戶與系統互動。

    它就是一個普通的手機 App,可以從應用商店下載安裝。不需要 root 權限,也不需要設置,打開就能使用。

    二、環境準備

    打開 Termux 以后,就是一個全屏的命令行界面。雖然可以用手機的觸摸鍵盤輸入命令,但還是推薦使用藍牙鍵盤。

    第一步,更新一下系統,保證使用最新版本。

    
    # 連接遠程倉庫,獲取軟件包信息
    $ apt update
    
    # 更新本地已經安裝的軟件包
    $ apt upgrade
    

    第二步,測試系統。

    
    # 安裝 sl 軟件包
    $ apt install sl
    
    # 運行
    $ sl
    

    上面命令安裝測試包sl,然后運行。如果一切正常,會顯示一個火車的命令行動畫。

    第三步,訪問本機存儲。

    手機 App 默認只能訪問自己的數據,如果要訪問手機的存儲,需要請求權限。

    
    $ termux-setup-storage
    

    執行上面的命令以后,會跳出一個對話框,詢問是否允許 Termux 訪問手機存儲,點擊"允許"。

    這會在當前目錄下生成一個storage子目錄,它是手機存儲的符號鏈接,后文下載文件就是到這個目錄去下載。

    三、軟件包管理

    除了apt命令,Termux 還提供pkg命令進行軟件包管理。

    
    # 安裝軟件包
    $ pkg install [package name]
    
    # 卸載軟件包
    $ pkg uninstall [package name]
    
    # 列出所有軟件包
    $ pkg list-all
    

    其實,pkg底層就是apt,只是運行前會執行一次apt update,保證安裝的是最新版本。所以,apt install sl基本等同于pkg install sl

    Termux 支持的軟件包清單,可以到這里查看。

    四、Node.js

    下面,安裝 Node.js。

    
    $ apt install nodejs
    

    安裝完成后,就可以運行 JavaScript 腳本了。比如,新建一個腳本hello.js

    
    // hello.js
    console.log('hello world');
    

    然后,執行這個腳本。

    
    $ node hello.js
    hello world
    

    五、架設 Server

    現在,通過 Node.js 運行 HTTP Server。

    首先,安裝 npm 模塊http-server

    
    $ npm install -g http-server
    

    然后,運行 Server。

    
    $ http-server
    

    正常情況下,命令行會提示 Server 已經在 8080 端口運行了,并且還會提示外部可以訪問的 IP 地址。

    舉例來說,手機的局域網 IP 是 192.168.2.6,那么我們通過桌面電腦的瀏覽器訪問http://192.168.2.6:8080,就可以看到 Termux 的根目錄了。進入下面的storage子目錄,就可以下載手機文件了。

    如果手機和電腦不在同一個局域網,那可以打開手機的熱點功能,讓桌面電腦通過手機熱點上網,再訪問手機的 HTTP Server。

    這里順便提一下,下面的命令可以從命令行查看手機的 IP 地址。

    
    $ apt install net-tools
    $ ifconfig
    

    六、Python

    不使用 Node.js,而使用其他方法架設 HTTP Server 也是可以的。下面演示 Python 的方法。

    
    $ apt install python
    $ python -m http.server 8080
    

    然后,桌面電腦就可以訪問手機了。

    Termux 是非常強大的工具,除了上面的方法,還可以架設 Apache 服務器,或者通過其他途徑(FTP、SSH、Rsync)訪問手機,這里就不詳細介紹了。

    (完)

    留言(32條)

    微信和QQ不行嗎

    此前手機下載PC文件一直是在文件目錄上啟動 http-server來進行下載,沒想到還能反過來

    這個跟FTP是什么關系呢

    一直卡在installing是怎么回事。

    引用PC的發言:

    這個跟FTP是什么關系呢

    文中說的方法應該走http下載, ftp需要賬號登錄

    表示自己用這種方式很久了;手機和電腦互傳數據在特定場景下很無奈
    (向手機傳一部大小超過4G的電影,手機上某個文件數量巨大的文件夾想傳到電腦)
    只好用一些帶有遠程管理服務的軟件,電腦訪問IP或者用sftp等去下載。
    這和用termux是一樣的,不過termux能搞很多東西,安裝Linux發行版等等...

    天…軟老師的方案也太 hard-core 了 8

    這類工具很多的,而且是最早一批廣泛使用的手機app.比如啥ES文件管理器。

    在ios系統中如何正確的傳文件到桌面?阮老師有空可以研究并科普一下嗎?

    大多數情況下,我用微信或者QQ互傳文件,沒有走局域網流量,傳輸速度有點慢。

    現在我基本上用的是Samba,實現在Linux、Windows、Andriod之間互傳文件,走的是局域網流量,傳輸速度很快,Andriod手機使用CX文件管理器連接到Samba服務器進行傳輸。

    可以看我的這篇文章(Ubuntu 18.04.2 LTS安裝samba,實現文件夾共享:https://jianrry.com/index.php/archives/87/),了解一下。

    Termux還沒用過,正好下一個體驗一下。

    阮老師的方案確實很好,不過如果只用來傳文件的話就稍微有點麻煩了。如果只傳文件的話可以在電腦上開一個 Web 服務器,用手機瀏覽器就可以很方便的上傳和下載文件,而且只要能安裝瀏覽器的手機都能用。

    這樣很好玩啊, 手機就可以做開發機了,哈哈

    感覺也可以用它來裝個shadowsocks來翻墻啊,可以做的騷操作好多

    實際上這完全可以當做一個Linux服務器來使用,帶個藍牙鍵盤隨時隨地開發運維了hhh,就是。。。屏幕有點小

    引用PC的發言:

    這個跟FTP是什么關系呢

    HTTP和FTP是不同的協議,FTP是專門用來在網絡上傳文件的,全名叫文件傳輸協議(File Transfer Protocol),而HTTP協議(HyperText Transfer Protocol,超文本傳輸協議)是因特網上應用最為廣泛的一種網絡傳輸協議,本文中這個例子是HTTP協議的一種基本功能罷了,通過www服務器把文件公開到局域網內,這樣同一個局域網的設備就能獲取到你的文件了

    那要怎麼把文件搬到桌面呢?
    cp?

    為啥不直接用手機上面的AirDroid

    阮大神,有沒有http大文件下載的解決方案?服務端限制每次只能下載100M,對于超過100M的文件,有分片下載的方案么

    阮老師,要是能介紹介紹中國的歷法, 日期的起源什么的就太好了。

    一直都理解不了,感覺真的太神奇了,天文跟日期歷法高度結合一起。

    我有個問題 手機鍵盤沒有ctrl-c 怎么把server關掉?

    在執行apt upgrade之前需要使用termux-setup-storage授權,不然會提示abort

    引用iwen的發言:

    微信和QQ不行嗎

    微信和QQ都可以,您可以繼續使用。謝謝
    =====================================
    建議閣下將原回答反問句修改為陳述句,即“微信和QQ也可以傳輸文件。”
    寄希望技術博客保持純凈,阮老師的文章大家可以自由選擇是否閱讀,介紹的各種工具或者技術可以自由決定使用或者不使用,根據文章內容可以提出各自觀點,個人認為抬杠沒有必要。

    引用Mr Ma的發言:

    阮老師的方案確實很好,不過如果只用來傳文件的話就稍微有點麻煩了。如果只傳文件的話可以在電腦上開一個 Web 服務器,用手機瀏覽器就可以很方便的上傳和下載文件,而且只要能安裝瀏覽器的手機都能用。

    建議再次閱讀文章后發表評論,很顯然阮老師文中說的是共享手機文件到電腦上。

    引用楊程的發言:

    我有個問題 手機鍵盤沒有ctrl-c 怎么把server關掉?

    Termux有個自帶的軟鍵盤,包含ctrl在內的一些符號,可以方便的ctrl+c,開啟方法為:手機觸屏左上側向右滑動。具體方法可以百度一下,全面屏手勢可能會影響該操作。

    引用裊殘煙的發言:

    為啥不直接用手機上面的AirDroid

    文章開頭一段寫到,“普通用戶可以使用手機線,將手機和電腦連起來。作為開發者,其實有更方便的方法,就是在手機架設一個 HTTP 服務,然后從桌面瀏覽器訪問手機。”其中有“作為開發者,其實有更方便的方法”字樣,表明該方法可能更方便,但并沒有強迫或者威脅讀者放棄使用數據線AirDroid和QQ微信等方式,閣下可以繼續合法使用AirDroid,謝謝

    使用ipad有類似的工具嗎,
    ipad 能不能安裝nodejs

    那個……Termux有pkg的原因是Termux官方源只保留newest的包,不update就有概率出現missing。

    引用PC的發言:

    這個跟FTP是什么關系呢

    大概是協議的不同吧

    如果有外網ip,是不是可以做到非局域網也可以訪問了?

    不錯不錯,現在手機都有ipv6地址了,正想測試下連通效果如何。謝謝你的好文章

    termux-setup-storage無法喚出手機儲存權限,請問大神這是什么問題

    https://www.coolapk.com/apk/com.example.ryanc.andserv
    這個軟件更好用,思路一樣的,搭建手機端web服務

    我要發表看法

    «-必填

    «-必填,不公開

    «-我信任你,不會填寫廣告鏈接

    湖北快3湖北快3平台湖北快3主页湖北快3网站湖北快3官网湖北快3娱乐湖北快3开户湖北快3注册湖北快3是真的吗湖北快3登入湖北快3快三湖北快3时时彩湖北快3手机app下载湖北快3开奖 六盘水 | 宣城 | 河北石家庄 | 垦利 | 漯河 | 赤峰 | 临沂 | 大同 | 梧州 | 象山 | 香港香港 | 湖南长沙 | 乌海 | 营口 | 肇庆 | 江苏苏州 | 伊犁 | 西藏拉萨 | 濮阳 | 温州 | 景德镇 | 绍兴 | 三亚 | 涿州 | 嘉善 | 汝州 | 阜阳 | 海拉尔 | 遂宁 | 苍南 | 长垣 | 广州 | 茂名 | 台南 | 保亭 | 安庆 | 兴安盟 | 肇庆 | 神木 | 湘西 | 邹平 | 山东青岛 | 青州 | 海东 | 日喀则 | 曲靖 | 扬中 | 邳州 | 任丘 | 昌吉 | 启东 | 德阳 | 周口 | 靖江 | 阜新 | 乌兰察布 | 徐州 | 宁国 | 巴中 | 温州 | 唐山 | 湖南长沙 | 白银 | 白银 | 揭阳 | 汝州 | 漳州 | 河南郑州 | 林芝 | 临沧 | 菏泽 | 安顺 | 甘南 | 永新 | 大庆 | 甘肃兰州 | 武安 | 广元 | 新沂 | 阿克苏 | 晋中 | 亳州 | 海丰 | 赤峰 | 常德 | 燕郊 | 黄南 | 海门 | 灌南 | 无锡 | 邯郸 | 山西太原 | 遵义 | 晋城 | 洛阳 | 荆门 | 崇左 | 凉山 | 崇左 | 兴安盟 | 淄博 | 洛阳 | 遵义 | 仁怀 | 娄底 | 灵宝 | 定西 | 苍南 | 喀什 | 邳州 | 泰州 | 辽阳 | 宝应县 | 韶关 | 普洱 | 梅州 | 临沂 | 西藏拉萨 | 沭阳 | 台湾台湾 | 铜仁 | 晋江 | 自贡 | 黑河 | 益阳 | 镇江 | 遵义 | 深圳 | 临沂 | 咸宁 | 河北石家庄 | 梅州 | 许昌 | 泸州 | 玉林 | 宣城 | 靖江 | 昌吉 | 咸阳 | 商洛 | 偃师 | 松原 | 宁国 | 简阳 | 廊坊 | 贺州 | 泰州 | 天水 | 河池 | 扬州 | 永康 | 铜陵 | 西双版纳 | 马鞍山 | 新沂 | 定州 | 红河 | 阳江 | 长葛 | 燕郊 | 醴陵 | 营口 | 南安 | 湛江 | 文昌 | 本溪 | 乐山 | 南阳 | 西藏拉萨 | 淮南 | 鞍山 | 迪庆 | 马鞍山 | 芜湖 | 昌吉 | 盘锦 | 澳门澳门 | 霍邱 | 永新 | 芜湖 | 鄢陵 | 抚州 | 灵宝 | 牡丹江 | 安顺 | 遵义 | 梅州 | 丹东 | 通化 | 自贡 | 阿拉善盟 | 郴州 | 梧州 | 余姚 | 眉山 | 长治 | 阳春 | 怒江 | 广汉 | 基隆 | 湖南长沙 | 台湾台湾 | 昌吉 | 保定 | 绥化 | 西双版纳 | 温州 |