Linux
如何將家用電腦變成網際網路伺服器?
假設所有客戶端都知道家用電腦(Linux 作為作業系統)的 IP 地址。文件(大約 40KB)將通過 Internet從 Android 設備發送到這台電腦,並且電腦(伺服器)預計會讀取這些文件。根據內容,該文件將再次通過網際網路路由到另一台設備。
規格:
- 一分鐘內路由多達 2500 個文件 (100MB)
- 轉移應該是安全的。
問題是:
- 是否必須使用 FTP 協議?有沒有更方便的協議或方法?
- 有一些軟體可以配置 FTP 伺服器,例如 FileZilla。是否可以對 FileZilla 進行程式,使其在每個接收到的文件上執行相同的程式碼?如果沒有其他選擇?
- 如何在傳輸過程中授予伺服器和數據的一般安全性?
- 假設一個雙核,每個核有兩個執行緒,可以並行執行多少次傳輸?
- 從頭開始編寫伺服器程式碼是否可行?推薦的語言是什麼?您會推薦任何清晰和基本的教程嗎?
**編輯:**由於它不適用於商業環境,因此該問題已關閉。但是,如果證明能夠滿足需求,該系統可能會通過 Internet 用於商業/商業目的。
謝謝你。
很難定義家庭伺服器的用途,這實際上取決於您的需求以及您希望在該電腦上託管什麼樣的服務,假設您還知道如何基本配置帶有防火牆 ecc 的家庭網路。
- 如果不在屋內,不向網際網路開放,不建議使用 FTP,您也可以使用 NFS 和 Samba,但它們都是未加密的,適合對外開放使用。SFTP 是加密的,但速度也較慢。
- FileZilla 也有一個伺服器應用程序,有很多 FTP 和 SFTP 伺服器,這取決於您打算使用什麼作業系統來託管它。文件上的腳本可以自動執行某些操作,您可以使用 Python 等良好的腳本語言來定義一些操作,如果您使用 Linux,我建議使用 rsync/rclone 腳本而不是 ssh 來處理簡單的事情,可以管理多台機器,或者 Syncthing 是真正流行的新東西。
- 可以授予安全性,將家庭網路隔離在防火牆後面,還可以使用更新的作業系統和應用程序,發送加密的內容,使用託管的家庭 VPN 從外部位置訪問它。PfSense 是一個很好的防火牆解決方案,用於 VPN 的 WireGuard 也是如此。
- 取決於電腦必須執行的操作類型,例如。加密和/或解密某些文件可能會影響 3/4 個核心,使用轉碼流式傳輸影片會影響 cpu 和 gpu。真的取決於您擁有的流量/網路基礎設施(1Gigabit 或 100M Home Lan)。它需要在滿負荷下測試它,看看它是否可以做到。還需要大量的 Ram。
- 伺服器程式碼不應重寫,因為有有效的解決方案以及 FreeNAS 或 OpenMedia Vault 等整個發行版,但如果您需要後端為您做一些處理,請確保您可以從頭開始編寫,這取決於它的複雜程度可能是,如果它太簡單了,你可以依靠其他解決方案和一些腳本來完成工作。
分析您可以使用的問題,Rsync 在伺服器之間實時同步文件,您可以使用許多標誌使其僅發送新/修改的文件 + inotify 使其在 3 個設備之間實時,有 lsyncd (那是 rsync + inotify) 直接嵌入到核心中。
為了安全起見,您可以通過 SSH 使用上述內容放置在加密層上,至於網路,您可以在中間伺服器上使用託管 VPN,並有 2 個客戶端連接到它。您還可以使用更簡單的 ZeroTier 來統一 Internet 上的設備,因為它是一個大型“LAN”,它是開源的,它支持所有作業系統,並且它們通過其伺服器加密所有連接,我使用它並且它們是可信賴的.
祝你好運,並保持安全!