案例 1 - DHCP 以太网

案例 1 - DHCP 以太网

我有一个项目,用户可以通过以下 Web 界面更改 RPI 的网络设置:

  • 无线网络配置
  • DHCP 以太网
  • 静态无线网络
  • 静态以太网

每次选择都会重新配置dhcpcd_confwpa_conf进行相应的配置。效果非常好

整个软件包设计为在首次启动时位于 DHCP 以太网中。但这种设计有一个缺陷,因为并非每个用户都有 DHCP 服务器。

那时我就​​想到做一个后备静态以太网 IP这就是我想出的:

案例 1 - DHCP 以太网

# dhcpcd_conf

interface wlan0
noipv4
noipv6

interface eth0
hostname DeviceEth
clientid

profile static_eth0
static ip_address=192.168.1.150/24
static routers=192.168.1.1
static domain_name_servers=8.8.8.8

interface eth0
fallback static_eth0
# wpa_conf
ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
update_config=1

正如你所看到的,我设置wlan0为没有 IP,然后设置eth0为 DHCP,然后将其设置eth0fallback profile.
它是否正确 ?我可以在同一界面上有两种不同的设置吗?

案例 2 - DHCP WiFi:

# dhcpcd_conf
interface wlan0
hostname DeviceWiFi
clientid

interface eth0
noipv4
noipv6

profile static_eth0
static ip_address=192.168.1.150/24
static routers=192.168.1.1
static domain_name_servers=8.8.8.8

interface eth0
fallback static_eth0
# wpa_conf
ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
update_config=1
country=RO
network={
ssid="SSID"
psk="password"
}

这里我设置wlan0为 DHCP,然后设置eth0为 no ip,然后将其设置eth0fallback profile. 这个配置正确吗?

在这两种情况下,我只希望一个接口处于活动状态,这就是为什么我将一个接口配置为 DHCP,而另一个接口配置为无 IP。
如果是无线网络配置wlan0在后备生效后是否保持正常运行并不重要,因为用户在到达 Web 界面后很可能会配置静态 IP,并且静态配置与 DHCP 配置类似,每次仅使一个接口保持活动状态。

答案1

您不能用于fallback在不同的界面之间切换(这似乎是情况 2 中的目标)。如果同一接口上的 dhpc 失败,则 dhcp 回退配置文件将在为其配置的接口上使用,而不是在另一个接口上的 dhcp 失败时。

不确定是否可以用于arping此类目的(请参阅dhcpd配置文件)。想法是 ping 第一个接口并指向一个带有“no ip”的配置文件。然后,备用 MAC 地址配置文件将包含要在辅助接口上使用的静态 IP 或 DHCP。但我担心这不会可靠地工作,因为它取决于主接口何时获得 IP 地址的时间。

答案2

inform你可以使用所说的来做到这一点这里

  1. 打开 /etc/dhcpcd.conf 以在 nano 中进行编辑。

    纳米/etc/dhcpcd.conf

  2. 将以下行添加到文件底部。如果此类行已存在且未注释掉,请将其删除。

将下面框中括号中的注释替换为正确的信息。接口将为 wlan0(用于 Wi-Fi)或 eth0(用于以太网)。

interface [INTERFACE]
static_routers=[ROUTER IP]
static domain_name_servers=[DNS IP]
static ip_address=[STATIC IP ADDRESS YOU WANT]/24

在我们的例子中,它看起来像这样。

interface wlan0
static_routers=192.168.7.1
static domain_name_servers=192.168.1.1
static ip_address=192.168.7.121/24

您可能希望将最后一行的“static”替换为“inform”。使用 inform 意味着 Raspberry Pi 将尝试获取您请求的 IP 地址,但如果不可用,它将选择另一个。如果使用静态,则当请求的地址正在使用时,它将根本没有 IPv4 地址。

  1. 按 CTRL + X 保存文件并重新启动。

从现在开始,每次启动时,Pi 都会尝试获取您请求的静态 IP 地址。

相关内容