如何将两台或更多台 Linux 机器加入到同一个 ad-hoc 无线网络?
我有两台 Ubuntu 12.04 笔记本电脑,我想将它们连接起来。按照 Ubuntu 的命令行说明操作维基文档,我将它们配置为同时连接到“我的网络”。但是,运行时iwconfig
显示它们使用不同的单元,这显然意味着,即使它们使用相同的 ESSID,它们也是独立的网络。
例如在机器 1 上,我运行:
user@localhost:~$ sudo service network-manager stop
user@localhost:~$ sudo ip link set eth1 down
user@localhost:~$ sudo iwconfig eth1 mode ad-hoc
user@localhost:~$ sudo iwconfig eth1 channel 4
user@localhost:~$ sudo iwconfig eth1 essid 'my network'
user@localhost:~$ sudo iwconfig eth1 key 1234567890
user@localhost:~$ sudo ip link set eth1 up
user@localhost:~$ sudo ip addr add 192.168.1.1/16 dev eth1
user@localhost:~$ iwconfig
lo no wireless extensions.
eth2 IEEE 802.11abg ESSID:"my network"
Mode:Ad-Hoc Frequency:2.412 GHz Cell: 52:9D:A0:90:28:02
Retry long limit:7 RTS thr:off Fragment thr:off
Power Management:on
在机器 2 上,我运行:
user@localhost:~$ sudo service network-manager stop
user@localhost:~$ sudo ip link set eth1 down
user@localhost:~$ sudo iwconfig eth1 mode ad-hoc
user@localhost:~$ sudo iwconfig eth1 channel 4
user@localhost:~$ sudo iwconfig eth1 essid 'my network'
user@localhost:~$ sudo iwconfig eth1 key 1234567890
user@localhost:~$ sudo ip link set eth1 up
user@localhost:~$ sudo ip addr add 192.168.1.2/16 dev eth1
user@localhost:~$ iwconfig
lo no wireless extensions.
eth2 IEEE 802.11abg ESSID:"my network"
Mode:Ad-Hoc Frequency:2.412 GHz Cell: B6:D6:92:5D:E5:E4
Retry long limit:7 RTS thr:off Fragment thr:off
Power Management:on
为什么它们没有解析为相同的手机号码?我如何让它们使用相同的手机号码?
编辑:即使使用 iwconfig 的 ap 参数明确设置两台机器上的单元号,我仍然似乎无法“连接”到 ad-hoc 网络。尝试 ping 任一 IP 都会导致错误connect: Network is unreachable
。
答案1
您使用iwconfig
正确,正如您所说,问题在于它们没有获得相同的单元 ID。在 ad-hoc 模式下,MAC 地址被分配为单元 ID。您可以通过执行sudo iwconfig eth1 ap B6:D6:92:5D:E5:E4
(例如,在 之后sudo iwconfig eth1 essid 'my wlan'
)强制 wifi 设备使用预定义的单元 ID。
当两个设备创建一个 ad-hoc WLAN 时,它们会广播 bacon,这样节点就可以知道是否有另一个具有相同 essid 的 ad-hoc WLAN,以便它们可以加入(通过更改单元 ID)。通常,您的设备应该已经加入。但这可能是由于您的无线设备的驱动程序或芯片组。在我看来,Atheros 芯片组在无线网络方面的问题较少。
如果该命令仍然不起作用,那么问题与 iwconfig 无关。
顺便说一句,您还应该注意,iwconfig 已过时,您应该改用iw
。另一个好工具是wpa_supplicant
使用。