dotnet serve 一句話開啟文件服務器 通過 HTTP 將文件共享給其他設備

  • 2020 年 2 月 18 日
  • 筆記

在當前的 IT 領域,我推薦每個開發設備都應該安裝 dotnet 這個工具,在 dotnet 這個工具上有大量開發者提供了無數好用的工具。本文要告訴小夥伴的工具是 natemcmaster 大佬提供了 serve 工具,可以用來開啟本地文件服務器,使用非常簡單。這個方案適合在 Windows 系統和 Linux 系統和 MAC 上使用,發佈的 HTTP 服務可以在任何能訪問到的設備上使用

默認小夥伴電腦已經安裝了 dotnet 工具,如果還沒有安裝,請到官網下載安裝

首次使用需要安裝,請打開 cmd 控制台輸入下面代碼安裝

dotnet tool install --global dotnet-serve

安裝完成之後通過 cmd 控制台進入到需要發佈共享的文件夾裏面,如我需要發佈 F:lindexifoo.txt 這個資源到我的筆記本 ubuntu 系統,我先進入到 F:lindexi 文件夾

cd /d F:lindexi

然後就是一句話開啟文件服務器了

dotnet serve -p 1007

默認會使用 8080 端口,上面代碼的 -p 就是指定端口為 1007 如果接受默認端口,那麼可以使用 dotnet serve 開啟服務器

此時用瀏覽器訪問 http://127.0.0.1:1007 就可以看到文件了

等等,我還有個問題,我不想用 8080 端口,我也不想去想一個端口,畢竟我不知道哪個端口可以用,可以使用 -p 0 這樣就能自動給一個隨機端口

我還有一個問題,為什麼在我的另一個設備上訪問 ip 的方式拿不到?原因是上面的命令開啟的是 localhost 的監聽,想要讓其他設備也能訪問到,可以使用下面命令

dotnet serve -p 0 -a 0.0.0.0

上面代碼的 -p 0 有仔細看文章的小夥伴就知道是用來做什麼的,後續的 -a 0.0.0.0 的意思就是監聽本地的所有 IP 地址,此時通過 ipconfig 或 Linux 下的 ifconfig 可以看到本地所在局域網內的 ip 地址,讓其他設備通過 http://ip:端口 在瀏覽器打開就可以訪問到了

在 Linux 下可以通過 wget 命令輸入鏈接下載到文件,如我的設備上可以通過下面代碼 wget -nc htp://172.18.134.16:1007/foo.txt 拿到我另一個設備的文件

那我不想要開啟服務器了可以如何關閉?其實運行時有提示按下 ctrl+C 也就是複製鍵就可以關閉服務了,或者關閉控制台也可以關閉服務

這個命令工具特別適合用來暫時開啟本地文件的共享,當然也適合用來做二次開發,用其他弱功能的腳本調用命令行讓弱功能的腳本能做到開啟本地服務

如果小夥伴想要了解這個工具是如何做的,請看源代碼 如果訪問不了,那麼請到 gitee.com 註冊帳號點擊新建項目,粘貼 https://github.com/natemcmaster/dotnet-serve 就可以將 github 的倉庫同步到國內的 gitee 了

如果我還要讓外網的其他小夥伴和我不在一個局域網的訪問,可以怎麼辦?請看 dotnet core 通過 frp 發佈自己的網站

在外網發佈了,我就想使用 gzip 減少內容傳輸,此時可以添加 -z 命令

這個工具也適合前端的小夥伴開啟本地服務器,看自己寫的前端代碼


本作品採用 知識共享署名-非商業性使用-相同方式共享 4.0 國際許可協議 進行許可。歡迎轉載、使用、重新發佈,但務必保留文章署名林德熙(包含鏈接: https://blog.lindexi.com ),不得用於商業目的,基於本文修改後的作品務必以相同的許可發佈。如有任何疑問,請 與我聯繫