連接無線區域網路時如何自動新增路由?

連接無線區域網路時如何自動新增路由?

我有一個使用 Debian 9.9 Linux 的 Beaglebone Black 裝置(沒有 UI,我使用終端機來實作)。 (Beaglebone Black 的最新圖片https://beagleboard.org/latest-images

我使用 conmannctl 啟用並成功連接到 wifi。 (https://fis.gatech.edu/how-to-configure-bbw-wifi/

當我連接到 wifi 時,我無法從外部 ping 通(8.8.8.8 或 www.google.com)。

我需要透過以下方式手動新增路線: ip 路由透過 192.168.1.1 dev wlan0 新增預設值 並且它將能夠連接外部。我家裡的 IP 範圍是 192.168.1.x

我想在具有不同 WLAN IP 範圍的地方進行實驗和使用它,例如 192.168.10.x,這樣,我需要運行 ip 路由透過 192.168.10.1 dev wlan0 新增預設值

我正在尋找一種方法,能夠連接到具有不同 WLAN IP 範圍的另一個地方,而無需輸入和新增 ip 路由。

我從昨天開始就一直在研究這個問題,但似乎我無法僅向 ip route add 命令提供接口,並且始終需要提供 IP。 (或者也許我沒有找到正確的谷歌關鍵字。)

有沒有辦法在我連接到介面(無線區域網路)時自動設定路由?我也嘗試過,將USB連接到LAN,並且我還需要手動發出ip router命令才能外部連接。

目前,我正在考慮創建一個python腳本來對ifconfig輸出進行正則表達式解析,並獲取wlan0上IP的前三個數字(例如192.168.10),然後添加.1,然後我將使用它來執行python 中的ip Route add 指令。

不過,我在想是否有一個內建的 Linux 進程可以實現這一點,因為當我在 Ubuntu 機器上連接到 Wifi(使用 UI)時,一旦 Wi-Fi 連接,我就可以立即瀏覽互聯網。

答案1

解決此問題的常用方法是在每個 LAN 網段上執行 DHCP 伺服器,並在連接到該 LAN 網段的每台電腦上執行 DHCP 用戶端。

DHCP協定允許您分發預設網關等路由資訊以及要使用的 DNS 伺服器等其他資訊。

由於它在您的 Ubuntu 電腦上運行,因此可能有一個 DHCP 伺服器在 WLAN 網段上運行(很可能在 AP 上)。

因此,請嘗試在 Beaglebone 上執行 DHCP 用戶端(無論 Beaglebone 發行版使用什麼,dhclient通常在發行版中使用),看看是否能得到一些結果。

然後將您的 Beaglebone 配置為在連接時自動執行此操作(有多種方法可以執行此操作,具體取決於 Beaglebone 發行版上運行的其他內容)。

相關內容