如何以程式設計方式進行持久網路介面變更?

如何以程式設計方式進行持久網路介面變更?

我在嵌入式平台(Beaglebone 變體)上運行 Debian Wheezy,並希望允許用戶對網路介面進行持久更改 - 例如,從靜態更改為 DHCP 或新增網關。一旦他們進行了更改,我希望它能夠在重新啟動後繼續存在,以便它能夠顯示用戶選擇的最後一次所做的更改。

由於用戶將透過網路服務的 UI 更改此設置,因此我想以程式設計方式進行更改。我正在考慮生成一個新的“interfaces”文件並替換現有的/etc/network/interaces 文件(然後強制重新啟動),但想知道是否有一種侵入性較小的方法來執行此操作,例如通過命令行或其他程式方法。雖然我的板載伺服器程式碼具有生成替換 /etc/network/interfaces 檔案所需的所有信息,但我擔心遇到的任何錯誤都可能會破壞介面文件並有效地破壞用戶的系統。因此,我提出了一種較少侵入性的方法來做到這一點。

這就是我們目前的出廠設定「interfaces」檔案的樣子:

# loopback network interface
auto lo
iface lo inet loopback

#primary network interface
auto eth0
iface eth0 inet static
address 192.168.168.1
netmask 255.255.255.0
hwaddress ether xx:xx:xx:xx:xx:10

#secondary network interface
auto eth1
iface eth1 inet manual
hwaddress ether xx:xx:xx:xx:xx:11

答案1

您可以透過sourceinterfaces檔案中的關鍵字分隔固定部分和可變部分來限制損壞。不幸的是,source-directory在喘息中不可用。

相關內容