Linux 无线网卡配置

您所在的位置:网站首页 无线网卡忘了密码咋办 Linux 无线网卡配置

Linux 无线网卡配置

2024-07-17 02:00| 来源: 网络整理| 查看: 265

 

无线网卡常见的配置选项

某TL-WR842N路由器无线配置选项含义:

无线名称 路由器的无线(Wi-Fi)名称。无线密码 无线加密使用WPA2-PSK/WPA-PSK加密方式、AES加密算法,无线密码为8-63个字符,最好是数字、字母、符号的组合。信道 无线数据信号传送的通道,建议保持默认的自动,此时路由器会自动根据周围的无线环境选择一个最好的信道。模式 路由器工作的无线模式。频段带宽 路由器传输无线数据的频段宽度。信号强度 可以根据实际使用需要选择不同档次的信号强度。开启AP隔离 开启之后可以安全隔离连接到路由器的各个无线设备。

无线网卡工作工作模式

无线网卡一共有4种工作模式。

被管理模式(Managed mode):你作为无线客户端直接与无线接入点(Wireless Access Point,WAP)连接时,就使用这个模式。在这个模式中,无线网卡的驱动程序依赖WAP管理整个通信过程。

Ad hoc模式:当你的网络由互相直连的设备组成时,就使用这个模式。在这个模式中,无线通信双方共同承担WAP的职责。

主模式(Master mode):一些高端无线网卡还支持主模式。这个模式允许无线网卡使用特制的驱动程序和软件工作,作为其他设备的WAP。

监听模式(Monitor mode):就我们的用途而言,这是最重要的模式。当你希望无线客户端停止收发数据,专心监听空气中的数据包时,就使用监听模式。要使Wireshark捕获无线数据包,你的无线网卡和配套驱动程序必须支持监听模式(也叫RFMON模式)。

大部分用户只使用无线网卡的被管理模式或ad hoc模式。图11-4展示了各种模式如何工作。

如何判断无线网卡是否识别

根据设备是 PCI 还是 USB 连接,执行 lspci -k 或 lsusb -v 检查设备驱动是否已经加载

$ lspci -k 06:00.0 Network controller: Intel Corporation WiFi Link 5100 Subsystem: Intel Corporation WiFi Link 5100 AGN Kernel driver in use: iwlwifi Kernel modules: iwlwifi

如果是 USB 设备,执行 dmesg | grep usbcore 可以看到类似下面的输出 usbcore: registered new interface driver rtl8187。

如果无线usb网卡后插入的话, 也会打印上述信息.

通过 ip link 查看无线 (设备名,通常是类似 wlp2s1) 的设备。启用设备:

# ip link set up

如果设备加载,接口正常启用,说明不需要安装额外的驱动和固件。

错误信息SIOCSIFFLAGS: No such file or directory 说明需要固件才能工作,

根据获得的信息,在下面网址查找硬件支持:

Ubuntu Wiki 维护了一个设备被内核和用户空间驱动支持状况的列表。

Linux 无线支持页面 和硬件兼容性列表(HCL)也维护了一个内核友好的设备列表。

内核页面 也有一个支持的硬件矩阵。

如果列表中没有,可能你的设备只提供了 Windows 驱动(比如 Broadcom, 3com 等)。这时需要用 ndiswrapper.

Ndiswrapper 可以在 Linux 中使用 Windows 驱动。兼容性列表在 这里. 需要 Windows 中安装的 .inf 和 .sys 文件。如果有更新的网卡,请通过互联网搜索型号名称 + 'linux' 以获取更多信息。

如何静态配置无线网卡

Unix一切皆文件,其它网络配置工具都是直接或者间接地修改这些虚拟文件来达到设置目的的。

pi@raspberrypi ~ $ ls -l /sys/class/net

total 0

lrwxrwxrwx 1 root root 0 May 8 08:12 eth0 -> ../../devices/platform/bcm2708_usb/usb1/1-1/1-1.1/1-1.1:1.0/net/eth0

lrwxrwxrwx 1 root root 0 May 8 08:12 lo -> ../../devices/virtual/net/lo

lrwxrwxrwx 1 root root 0 May 8 08:13 wlan0 -> ../../devices/platform/bcm2708_usb/usb1/1-1/1-1.2/1-1.2:1.0/net/wlan0

可以看到,系统当前存在三个网络设备:lo为回环设备;eth0为有线网卡;wlan0为无线网卡。

/etc/network/interfaces文件记录了所有的静态配置信息。内核在引导的时候,会自动启动标志为“auto”的设备,例如:

auto lo

auto eth0

auto wlan0

而如果设备标志为“allow-hotplug”,那么内核在检测到热插拔事件的时候,也会自动启动。例如:

allow-hotplug lo

allow-hotplug eth0

allow-hotplug wlan0

因为回环设备始终应该是存在的,所以/etc/network/interfaces文件的内容至少是:

auto lo

iface lo inet loopback

内核启动网络设备调用的是ifupdown工具,而ifupdown工具也是依赖于/etc/network/interfaces配置文件的。

对于有线(Wired)设备,物理层和数据链路层无须操作系统干预,网卡根据CSMA/CD协议就能够自行设置,所以/etc/network/interfaces文件只需包含网络层以上的配置信息,例如IP地址、子网掩码、默认网关等。例如:

iface eth0 inet static

address 192.168.11.100

netmask 255.255.255.0

gateway 192.168.11.1

“默认网关”其实是路由的概念,在这里作为设备的一个属性,和IP地址子网掩码放在一起我觉得很不妥,很容易误导初学者,尤其是存在多网卡多IP地址的情况。默认网关的生成与这条配置有关, 如果去除这条, 网络连接将变慢.

对于DNS,首先需要注意的是它属于应用层协议,和网络设备以及网络层并无直接联系。传统上Linux的DNS配置文件为/etc/resolv.conf,一行一个服务器IP地址。例如:

nameserver 218.2.135.1

nameserver 61.147.37.1

如果安装了resolvconf工具,那么DNS的配置会被接管,此时/etc/resolv.conf就变成了一个符号链接,链接到了resolvconf运行时候动态维护的一个文件。在这种情况下,DNS的配置也可以写到/etc/network/interfaces文件中了,例如:

iface eth0 inet static

address 192.168.11.100

netmask 255.255.255.0

gateway 192.168.11.1

dns-nameservers 218.2.135.1 61.147.37.1

ifupdown工具会自动调用resolvconf完成DNS设置。

此处我也甚觉不妥,因为上面讲过,DNS是应用层的概念,这样写的话让初学者觉得好像DNS是网络设备的属性一样(传统Linux还真是有很多不足之处)。

如果安装了isc-dhcp-client工具,那么/etc/network/interfaces文件中就可以直接配置DHCP,例如:

iface eth0 inet dhcp

isc-dhcp-client有自己的配置文件,可以控制从DHCP服务器上获取哪些信息(例如DNS服务器地址)。

ifupdown工具会自动调用isc-dhcp-client完成DHCP设置。

此处需要注意的是:不论resolvconf是否存在,dhclient均会直接修改/etc/resolv.conf文件(不管它是不是一个链接),不过一般情况下也没有什么问题。

对于无线(Wireless)设备,工作方式和有线设备有很大的不同(不是插上网线就能直接用的)。数据链路层的连接必须由操作系统协同完成,例如连接哪个SSID、使用哪条信道、采用什么认证方式(WEP、WPA...)。这些链路层配置信息也可以写到/etc/network/interfaces文件中以供ifupdown工具使用。

iface wlan0 inet dhcp

wpa-ssid homezone

wpa-psk 密码

ifupdown工具会自动调用wpasupplicant完成WPA设置。

例如WEP的配置:

iface wlan0 inet dhcp

wireless-essid Home

wireless-key1 0123-4567-89ab-cdef

wireless-key2 12345678

wireless-key3 s:password

wireless-defaultkey 2

wireless-keymode open

ifupdown工具会自动调用wireless-tools完成WEP设置。

wpa_supplicant 配置文件, 配置方法:

更详细的配置可参考手册man wpa_supplicant.conf 

如何动态配置无线网卡

为了管理已经安装好的无线驱动,并且使无线能正常工作,需要安装一个无线连接管理工具。需要使用的工具,将依赖于下面几个因素:

配置方式,从完全手动执行每一步到软件自动管理、自动启动

是否使用加密及加密类型

是否需要区分网络配置,是否经常切换不同网络(比如手提电脑)。

下表列出可以使用的管理无线网络的方法,按照加密和管理方式分类,给出了需要的工具。虽然还有其他办法,但这些是最常使用的

管理方法

接口激活

无线连接管理 (/=alternatives)

IP 地址分配 (/=alternatives)

手动设置, 无加密或 WEP 加密

ip

iw / iwconfig

ip / dhcpcd / dhclient

手动管理, WPA 或 WPA2 PSK 加密

ip

iw / iwconfig + wpa_supplicant

ip / dhcpcd / dhclient

自动管理, 支持网络配置

netctl, Wicd, NetworkManager, etc.

这些工具会自动安装手动配置需要的工具。

软件包 wireless_tools 提供了建立无线连接的基础工具。如果你需要使用 WPA/WPA2 加密,还需要 wpa_supplicant。如下这些用户空间工具可以对无线连接进行完整控制。

iw - 当前的 nl80211 标准,不是所有的芯片都支持。

wireless_tools - 已经过时,但是依然广泛使用。

wpa_supplicant - 提供 WPA/WPA2 加密支持

下面表格给出了 iw 和 wireless_tools 命令的对比

iw 命令

wireless_tools 命令

描述

Iw dev

Iwconfig

获取接口名

iw dev wlan0 link

iwconfig wlan0

获取连接状态

Iw dev wlan0 station dump

获取统计数据

Ip link set wlan0 up(可能需要) 一些无线网卡在使用 wireless_tools前需要激活内核接口.如果出现错误 RTNETLINK answers: Operation not possible due to RF-kill, 请确保硬件开关已经打开.要验证接口确实打开: # ip link show wlan0

3: wlan0: mtu 1500 qdisc mq state DOWN mode DORMANT group default qlen 1000 link/ether 12:34:56:78:9a:bc brd ff:ff:ff:ff:ff:ff

中的UP 显示接口已经打开。

Rfkill 介绍http://www.linuxidc.com/Linux/2015-08/121119.htm

激活内核接口

iw dev wlan0 scan | less

iwlist wlan0 scan

扫描可用热点

iw dev wlan0 set type ibss

有些网卡需要先关闭无线接口(ip link set wlan0 down)才能修改模式

iwconfig wlan0 mode ad-hoc

设置操作模式为 ad-hoc.

iw dev wlan0 connect your_essid

iwconfig wlan0 essid your_essid

连接到开放网络

iw dev wlan0 connect your_essid 2432

iwconfig wlan0 essid your_essid freq 2432M

连接到开放网络的一个频道

iw dev wlan0 connect your_essid key 0:your_key

iwconfig wlan0 essid your_essid key your_key

用16进制加密密码访问 WEP 加密网络

iw dev wlan0 connect your_essid key 0:your_key

iw wlan0 connect foo keys 0:abcde d:1:0011223344

iwconfig wlan0 essid your_essid key s:your_key

iwconfig wlan0 key s:abcde iwconfig wlan0 key '[2]0011223344' iwconfig wlan0 key '[2]' iwconfig wlan0 essid foo

用 ASCII 密码访问 WEP 加密网络.

iw dev wlan0 set power_save on

iwconfig wlan0 power on

启用省电模式

根据加密方式不同,需要使用密码将无线设备关联到接入点。

假设要使用的接入点 ESSID 为 MyEssid:

无加密

# iw wlan0 connect MyEssid

WEP

使用十六进制或 ASCII 密码(格式是自动识别出来的,因为 WEP 密码长度是固定的):

# iw dev wlan0 connect your_essid key 0:your_key

使用十六进制或 ASCII 密码,第三个是默认 (从0计数,共四个):

# iw dev wlan0 connect your_essid key d:2:your_key

WPA/WPA2

如果要连接WPA认证的无线网络,wireless-tools就无可奈何了,必须使用wpasupplicant。

wpasupplicant并不是像wireless-tools一样简单地用命令行配一配就可以了,它必须先启动一个服务进程,然后使用另外一个命令行工具对服务进程进行设置,而且在WIFI连接期间该服务进程必须始终运行着。

wpa_supplicant -i wlan0 -D nl80211,wext -s -B -P /var/run/wpa_supplicant.wlan0.pid -C /var/run/wpa_supplicant

其中:-i指定设备名;-D指定认证协议;-s -B指定在后台运行,并且调试输出到syslog中;-C参数指定“ctrl_interface”的位置,注意,wpa_supplicant是可以有配置文件的,而且配置文件中可以记录WIFI的静态配置,类似于/etc/network/interfaces的功能,但是我们这里用不到,在没有配置文件的情况下,“ctrl_interface”是必不可少的,wpa_cli通过它与之交互。

前台方式:

wpa_supplicant -i wlan0 -D nl80211,wext -dd -P /var/run/wpa_supplicant.wlan0.pid -C /var/run/wpa_supplicant

其中,-dd表示输出更详细的调试信息。

查看后台启动的进程参数:

pi@raspberrypi ~ $ ps ax | grep wpa

1618 ? Ss 0:00 /sbin/wpa_supplicant -s -B -P /var/run/wpa_supplicant.wlan0.pid -i wlan0 -D nl80211,wext -c /etc/wpa_supplicant/wpa_supplicant.conf

2379 pts/0 S+ 0:00 grep --color=auto wpa

然后使用wpa_cli进行设置。wpa_cli可以工作在交互模式,也可以命令行模式。例如在交互模式下执行如下命令加入并启用网络:

status:列出目前的联网状态。list:列出所有备选网络。目前正连接到的网络会标[CURRENT],禁用的网络会标[DISABLE]。add_network:增加一个备选网络,输出新网络的号码(这个号码替代下文的[network_id])。注意新网络此时是禁用状态。set_network [network_id] ssid “Your SSID”:设置无线网的名称(SSID)set_network [network_id] key_mgmt WPA-PSK:设置无线网的加密方式为WPA-PSK/WPA2-PSKset_network [network_id] psk “Your Password”:设置无线网的PSK密码enable_network [network_id]:启用网络。启用后如果系统搜索到了这个网络,就会尝试连接。disable_network [network_id]:禁用网络。save_config:保存配置。

> add_network

0 set_network 0 ssid "ChinaUnicom-Me"

OK

> set_network 0 key_mgmt WPA-PSK

OK

> set_network 0 psk "密码"

OK

> enable_network 0

OK

> save_config



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3