在启动时、在 ubuntu 上运行连接脚本,或者正确使用 /etc/networks

在启动时、在 ubuntu 上运行连接脚本,或者正确使用 /etc/networks

可能有更优雅的方法来解决这个问题,但基本上,我有一个连接到无线网络的非常小的 ubuntu 系统。目前,我正在使用一个调用 wpa supplicant 和 dhclient 的脚本进行连接。我希望这个自动完成 - 但我在 /etc/network/interfaces 方面运气不佳,或者无法让我使用的脚本在启动时运行。

任何一种方法都可以解决问题,但这种方法都是“正确的”。使用网络管理器并不是我真正想要的,所以这不行,我也不需要漫游。wpa_supplicant 的配置文件可以工作,从终端运行时整个设置也可以工作。

答案1

您需要编辑/etc/network/interfaces以便它在启动时自动启动。对于您的无线网络,它应该看起来像这样:

iface wlan0 inet dhcp
无线密钥 s:KEY
无线网络名称 NETWORK_SSID

自动 WLAN0

将 KEY 替换为您的无线密钥,将 NETWORK_SID 替换为您的路由器的 SSID。

如果您希望在启动时使用脚本...

将其复制到/etc/init.d(适当替换脚本路径):

sudo cp /path/to/script /etc/init.d

使其可执行(确保它顶部有一个 shebang 行,例如#!/bin/bash):

sudo chmod +x /etc/init.d/script

添加默认启动符号链接:

sudo update-rc.d 脚本默认值

您将获得类似以下内容的输出:

为 /etc/init.d/script 添加系统启动...
   /etc/rc0.d/K20script -> ../init.d/script
   /etc/rc1.d/K20script -> ../init.d/script
   /etc/rc6.d/K20script -> ../init.d/script
   /etc/rc2.d/S20script -> ../init.d/script
   /etc/rc3.d/S20script -> ../init.d/script
   /etc/rc4.d/S20script -> ../init.d/script
   /etc/rc5.d/S20script -> ../init.d/script

您的脚本现在应该在启动时运行。

答案2

这不是一个好的解决方案,但你应该能够从 /etc/rc.local 调用你的脚本

只要确保你需要的东西在 /usr/local 中,它就被绝对引用了,因为 rc.local 的 $PATH 不包含 /usr/local 的东西

答案3

不确定这是否适用于所有情况,但以下是我的设置,似乎运行良好。我使用 RaLink RT2500

#/etc/network/interfaces
auto wlan0
iface wlan0 inet static
    address 192.168.1.125
    netmask 255.255.255.0
    network 192.168.1.1
    broadcast 192.168.1.255
    gateway 192.168.1.1
    wireless-mode managed
    wireless-essid XXXXXXXXXXXX
    wireless-key XXXXXXXXXX

#!/bin/sh -e
#
# rc.local
#
# This script is executed at the end of each multiuser runlevel.
# Make sure that the script will "exit 0" on success or any other
# value on error.
#
# In order to enable or disable this script just change the execution
# bits.
#
# By default this script does nothing.

#start wireless at boot - added by ckendall 20100304
ifup wlan0

exit 0

相关内容