遠端管理防火牆後的多個設備
我正在尋找一種解決方案,可以讓我從中央伺服器遠端訪問多個設備。
這些設備預裝了定制軟體,但它們的網路狀況未知,可能在 3G 或 NAT 受限的 WiFi 環境下。
我想到的第一件事是使用反向 SSH 連接(通過 systemd 服務使用 ssh -R 或 autoSSH),儘管這意味著每個設備都有一個重定向埠。這不是一個真正的問題,我懷疑我會同時執行超過 5 萬台設備。
但是,為了以防萬一,我正在尋找一種更易於管理且更具可擴展性的基礎架構。我嘗試研究其他問題,但找不到有關此問題的答案。我看到有些人建議使用 VPN 隧道,將每台設備連接到中央設備。如果有人能解釋它是如何工作的,那就太好了,我真的不明白它是如何工作的,我在哪裡設置每個設備 ID/名稱,以及在它全部執行後如何啟動遠端連接。
也歡迎任何其他方法或解決方案。
注意1:我認為一個一個遠端訪問就足夠了,但是如果所有可用的(以便向一組設備發送命令)也會有所幫助(但如果您想到一個解決方案,請不要停止回答)。
注 2:系統是基於 debian 的。(Raspbian。如果需要,它也可以是 Ubuntu)
使用流行的流行詞“物聯網”,我們經常會收到這類問題。我將添加一些考慮因素的冗長答案,並邀請其他人進行編輯和改進。
- 放棄互動式訪問任何特定設備的想法。您需要設備上的代理從管理伺服器獲取指令/命令,並將其健康狀況和任何結果/收集的數據發回。對於現場操作員來說,確認設備確實正在與您的管理伺服器通信或出現錯誤會很有用。
- 您的設備需要打電話回家。
您會希望您的設備連接到您的管理伺服器,而不是相反。由於許多消費者和企業仍在使用 IPv4,仍然有相當多的 NAT,在其中建立從設備到您的伺服器的連接將比其他方式更順利(這需要設置埠轉發等) .
大多數消費者/小型企業防火牆的預設行為是允許所有傳出流量,因為這些流量通常沒有真正管理,這意味著打電話回家通常無需進一步設置即可正常工作。
甚至許多託管網路更喜歡允許傳出連接而不是打開傳入連接。
- 該協議需要是HTTP或者更確切地說是HTTPS。它通過正常的 TCP/IP 執行,即使不允許直接訪問 Internet,您的設備仍然可以輕鬆配置為使用 Web 代理。
- 您的管理伺服器需要偵聽預設 Web 埠,即 80 (HTTP) 和/或 443 (HTTPS)。跟隨部落有很多話要說……
- 您的設備需要能夠使用DHCP自行配置,但您還需要為現場操作員提供一種方法來設置靜態 IP 配置和/或代理伺服器。
- 您的設備需要同時支持IPv6 和 IPv4。
- 自動註冊- 對於大量設備,您可能不希望在部署之前(手動)在管理伺服器上註冊每個設備,相反,設備應該在開機和連接時自行註冊。
- 座席不應該按照固定的時間表執行,您不希望成千上萬的座席在同一時刻全部打電話回家。
您可能想看看已經提供很多此類功能的現有配置管理工具。
如果您決定自行開發,請考慮利用Azure IoT 網關 SDK、Google Compute IoT或AWS IoT等框架