Debian 伺服器未顯示在路由器的 DHCP 列表中
我有一個執行 Raspbian 的 Raspberry Pi,它通過乙太網連接到我的路由器。路由器一直使用 DCHP 和靜態 IP 地址執行,並且通過本地 LAN,我可以通過 ssh 正常連接,例如。但是,該設備永遠不會顯示在路由器上的已連接設備列表中,因此我無法為外部訪問配置埠轉發。
我會說這是路由器的問題,但我現在嘗試了兩個不同的路由器(BT Home Hub 2 和 Edimax BR-6428),結果相同,所以我認為它一定是作業系統。
是否需要一些設置才能使設備出現在路由器上?
如果您的 Rpi 在具有靜態 IP 的網路上,它永遠不會與路由器對話以“宣傳”自己。
一個非常簡單的解決方案是使用 upnpc 程序(在miniupnpc包中)來動態設置埠轉發。比一直調整路由器容易得多。
您需要在路由器上啟用 upnp,通常需要注意這裡。
以下命令會將 Internet 埠 1337 轉發到伺服器上的內部埠 22:
upnpc -e "ssh server" -a $(hostname --all-ip-addresses) 22 1337 tcp
更多細節當然見 upnpc 的手冊頁,但在這裡你可以看到
-e
設置轉發設置的名稱,-a
列出伺服器的 IP 地址,最後三項是內部埠,外部埠,連接類型(tcp/udp) .我也使用類似的命令將埠 80 從外部轉發到我自己的 Web 伺服器,不必設置具有所有安全性的 DMZ。(不,我沒有把我的實際外部 ssh 埠號放在這裡……呃!)
另一種方法是在路由器中為您的 Rpi 設置靜態 DHCP 設置,然後將您的 Rpi 切換回動態 IP (DHCP) 模式……但除非您還要設置某種名稱伺服器系統,由於您的 RPi 地址可能會更改,因此這會很快變得棘手。(是的,我知道這不應該……)
讓它使用其目前 IP 地址設置自己的轉發是最好的方法,因為它會根據需要進行調整。