运行 Ubuntu Server 12.04(无 GUI)。让内核仅在物理插入网络接口时才启动网络接口的最佳方法是什么?因此,如果不存在,只需继续初始化其他接口(如果有)并继续登录屏幕,而无需“等待网络配置”延迟。
例如,我有一个无线 USB 密钥 wlan9(在 /etc/network/interfaces 中):
auto wlan9
iface wlan9 inet dhcp
wpa-ssid myssd
wpa-psk mykey
wpa-proto RSN
wpa-pairwise CCMP
wpa-group CCMP
我试过允许热插拔代替汽车,在这种情况下,接口不会在启动过程中自动初始化,我必须手动进行初始化ifup wlan9。这并不是我所寻找的。
谢谢。
答案1
对于服务器也一样:使用 NetworkManager
安装:
sudo apt-get install network-manager
不幸的是,这将带来很多依赖关系。
关闭当前以传统方式配置的接口。
ifdown wlan9
/etc/network/interfaces
通过删除与该接口有关的所有行来禁用所有手动设置。/etc/NetworkManager/system-connections/
在(命名)中添加无线连接的连接设置:[connection] id=Some name of my connection uuid=0d791425-87c5-45e6-948e-01b1863901f7 type=802-11-wireless [802-11-wireless] ssid=mySSID mode=infrastructure mac-address=24:77:00:01:02:03 security=802-11-wireless-security [802-11-wireless-security] key-mgmt=wpa-psk psk=mypassword [ipv4] method=auto [ipv6] method=ignore
- 使用
uuid
该命令uuidgen
生成一个随机的。 - 使用
mac-address
无线适配器的 MAC 地址(用于ifconfig -a wlan9
查找)。这会将此配置文件仅绑定到此适配器 - 如果不存在,则不会将其用于其他适配器,也不会等待适配器出现。 - 我希望其他领域能够说明一切。:)
- 使用
重新启动 NetworkManager 或重启。
restart network-manager
答案2
并继续登录屏幕
建议您使用支持 GUI 的安装(非服务器) - 因此我基于此提供此答案。
只需使用 NetworkManager
关闭该接口。
ifdown wlan9
/etc/network/interfaces
通过删除与该接口有关的所有行来禁用所有手动设置。进入网络设置,添加/编辑无线网络连接。
配置如下(见下图):
让它自动连接。
通过选择正确的 MAC 地址将其应用于正确的无线适配器。如果适配器不存在,则此对话框中的连接设置将不适用,因此这会将它们“绑定”到此特定适配器(因为每个适配器都有另一个 MAC 地址)。不,这不是 WiFi AP 的 MAC 地址 - 那是 BSSID。
使其可供所有用户使用(这使得它在登录屏幕上自动连接)。请注意,除非您提供必要的详细信息,否则此设置将呈灰色。
当然还要输入有关安全性、SSID 等的其他详细信息。
答案3
我想出了以下不依赖于任何额外软件包的解决方案:
auto wlan9
iface wlan9 inet manual
wpa-ssid MYSSD
wpa-psk MYKEY
wpa-proto RSN
wpa-pairwise CCMP
wpa-group CCMP
wireless-power off
pre-up if [ -f /sys/class/net/wlan9/operstate ]; then ifconfig wlan9 up; fi
up if [ -f /sys/class/net/wlan9/operstate ]; then dhclient wlan9; fi
虽然它可能不够优雅,但它满足了我的要求:如果无线适配器未插入,则跳过 wlan9 初始化而无需启动延迟,否则将其启动。