Debian/Ubuntu Linux:DHCP 失败时固定 IP

Debian/Ubuntu Linux:DHCP 失败时固定 IP

我正在寻找此问题的解决方案:

我有一台称为 UP Board 的小型工业电脑,运行一些 Linux Debian/Ubuntu 采用的版本:

4.10.0-9-upboard #11~16.04.1 SMP Wed Oct 25 17:10:46 IST 2017 x86_64 x86_64 x86_64 GNU/Linux(我相信它是 Ubuntu 16.04)

我用这台小机器在客户网络中提供一些服务。挑战来了……

有些客户在其网络中运行 DHCP 服务器,而其他客户则不运行。由于我经常处于不同的网络中,并且通常事先不知道有关 DHCP 的网络设置,因此我有了这样的想法:如何在网络上发送 DHCP 请求并等待响应。当在一定时间内从 DHCP 服务器收到响应时,使用固定 IP 和网络掩码配置相应的网络接口。然后我就可以从我的笔记本电脑访问该盒子并连接以设置网络的正确 IP/NM。因此,只需对接口进行一些自动配置,就像 Microsoft 在 Windows 环境中使用这些模糊的 169.254.xy 地址所做的那样。

由于我的设备没有任何屏幕,因此这里无法进行手动配置。

非常感谢任何有关开发此类自动配置功能的想法!

问候奥拉夫

附言:我用不同的术语搜索了 Google,但没有得到任何有价值的结果。也欢迎提示要搜索的内容...

答案1

恕我直言,您可以轻松创建具有静态 IP 地址的桥接接口,并使用 DHCP 配置以太网

sudo apt install bridge-utils

编辑/etc/network/intefaces

auto enp0s3 <---- change this to whatever your interface name is
iface enp0s3 inet dhcp

auto br0
iface br0 inet static
  address 10.10.10.10 <--- set this to whatever address you want
  netmask 255.255.255.0
  bridge_ports enp0s3

这样,你就可以随时通过10.10.10.10DHCP 服务器连接到你的盒子,并且物理接口将获得动态地址

答案2

首先,如果您的客户通过互联网与您连接,您应该通过 VPN 连接以提高安全性,这样您就不会遇到路由问题。

如果您只想在连接失败时在手动或静态之间更改网络配置,您可以输入一个小脚本,其中包含以下步骤:

1)ping 一个 IP

2.1)如果 ping 失败 => 更改您的配置

例如:sudo ip addr add dev

sudo ip addr 添加 10.102.66.200/24 dev enp0s25

2.2) 如果 ping 没有失败 => 没有结果

最后,你需要创建一个新的 cron 行https://en.wikipedia.org/wiki/Cron在您的 ubuntu 机器上以便定期执行该脚本。

相关内容