【问题标题】:Fastest way to achieve DHCP on Linux [closed]在 Linux 上实现 DHCP 的最快方法 [关闭]
【发布时间】:2013-09-19 20:59:14
【问题描述】:

动机:我在没有网络管理工具的情况下运行 wpa_supplicant,因为我不想在旧的 DHCP 租约工作时强制新的 DHCP 租约。这样,如果 DHCP 租约尚未到期,我可以非常快速地进入旧网络(只要 wpa_supplicant 建立较低的网络层)。

问题:但是当 DHCP 租约到期时,或者如果我的 IP 地址来自另一个网络,我确实需要调用 DHCP。我目前使用 dhclient,但 dhcpcd 是这里的另一种选择。问题是,即使这些 DHCP 客户端在后台运行,它们也不会自动意识到我需要一个新的 IP 地址,因为我有一个旧的无效 IP 地址。

问题:有没有办法快速确定我是否需要 DHCP?例如。作为对 wpa_supplicant 的反应或作为对联系标准网关并实现连接不可用的响应。我可以轻松运行sudo dhclient wlan0,它会在一秒钟内给我地址。但是,如果需要,我可以做些什么来自动化这个过程呢?

发出不必要的 DHCP 请求不是不可能的,但淹没 DHCP 服务器是不可能的。

详细问题:对于那些直接使用 wpa_supplicant 的人,你如何 DHCP?

【问题讨论】:

  • 或许您可以使用网络管理器的nm-online 工具来确定链接是否正常。
  • 返回网络后续订 DHCP 租约有什么问题?真的有那么慢吗?
  • 怎么了:我学校年初的wifi NAT地址太少了!所以拥有 DHCP 租约是件好事。我实际上只知道 NetworkManager 有时比普通的 wpa_supplicant 慢几秒钟,而且我不知道它是否是 DHCP,但我认为我可以快速推断出我是否需要它(例如,通过发送需要 IP 地址的数据包) .
  • 每当我在连接到无线路由器后运行dhcpcd连接到它时,我通常会得到相同的IP地址。所以我希望它是确认现有的租约,而不是提供新的租约。所以如果你已经有了租约,我认为你不会因为重新谈判而失去它。

标签: linux networking network-protocols dhcp


【解决方案1】:

每当您连接到新网络时,再次运行 dhcpcd。如果您有现有租约,应尽快确认。

如果您反对每次都输入“dhclient”或“dhcpcd”,您可以使用 shell 脚本将其自动化。它可能看起来像

#!/bin/sh
dhcpcd wlan0 &
wpa_supplicant -d -c/etc/wpa_supplicant.conf -iwlan0

dhcpcd 会说它正在“等待运营商”,直到 wpa_supplicant 启动无线链接。

【讨论】:

  • 每当我连接到新网络时,我 am 都会运行 dhclient(但可能是 dhcpcd)。我希望这是自动的,所以我不必每次都输入“给我一个 DHCP 地址”。但不以每秒向 DHCP 服务器请求新 IP 地址为代价。
  • 我编辑了我的答案以显示一个可能的脚本,您可以使用它来连接到无线网络。
猜你喜欢
  • 2013-10-05
  • 1970-01-01
  • 2020-12-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多