Linux命令模式下WIFI的使用

一、前言
二、确认系统有没有识别到无线网卡驱动
三、配置无线网卡的文件
四、扫描WIFI、连接WIFI
五、配置服务启动

一、前言

家里有一台台式机,由于不想拉线,一直是用的无线网卡,以前都是用的Windows系统,现在准备安装Linux系统,再装KVM虚拟机做实验用。
以前Linux用WIFI,都是在有图形桌面的情况下用的,在命令模式中连接WIFI还是第一次配置,发现还是有不少需要注意的地方。

有问题可添加vx:IT了么

二、确认系统有没有识别到无线网卡驱动

系统版本

# cat/etc/redhat-releaseCentOS Linux release7.9.2009 (Core)

其实有没有识别到无线网卡很容易确认,只要执行ip a或者ifconfig -a看看有没有无线网卡接口的信息

# ip a1: lo:<LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN groupdefault qlen 1000    link/loopback 00:00:00:00:00:00 brd00:00:00:00:00:00    inet 127.0.0.1/8 scope host lo       valid_lft forever preferred_lft forever    inet6 ::1/128 scope host       valid_lft forever preferred_lft forever

2: enp2s0: <BROADCAST,MULTICAST,UP,LOWER_UP>mtu 1500 qdisc mq state UP group default qlen 1000    link/ether bc:30:5b:bb:19:6d brdff:ff:ff:ff:ff:ff    inet 192.168.3.254/24 brd 192.168.3.255scope global noprefixroute enp2s0       valid_lft forever preferred_lft forever    inet6 fe80::d5aa:2801:c051:ec1f/64 scopelink noprefixroute       valid_lft forever preferred_lft forever

3: wlp0s29f7u3:<NO-CARRIER,BROADCAST,MULTICAST> mtu 1500 qdisc mq state DOWN groupdefault qlen 1000    link/ether 0c:82:68:2f:ea:0f brdff:ff:ff:ff:ff:ff

或者

#ifconfig -aenp2s0:flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500        inet 192.168.3.254  netmask 255.255.255.0  broadcast 192.168.3.255        inet6 fe80::d5aa:2801:c051:ec1f  prefixlen 64 scopeid 0x20<link>        ether bc:30:5b:bb:19:6d  txqueuelen 1000  (Ethernet)        RX packets 5794  bytes 498749 (487.0 KiB)        RX errors 0  dropped 0 overruns 0  frame 0        TX packets 3709  bytes 779077 (760.8 KiB)        TX errors 0  dropped 0 overruns 0  carrier 0 collisions 0        device interrupt 16 lo:flags=73<UP,LOOPBACK,RUNNING>  mtu65536        inet 127.0.0.1  netmask 255.0.0.0        inet6 ::1  prefixlen 128 scopeid 0x10<host>        loop txqueuelen 1000  (Local Loopback)        RX packets 2290  bytes 199192 (194.5 KiB)        RX errors 0  dropped 0 overruns 0  frame 0        TX packets 2290  bytes 199192 (194.5 KiB)        TX errors 0  dropped 0 overruns 0  carrier 0 collisions 0 wlp0s29f7u3:flags=4099<BROADCAST,MULTICAST> mtu 1500        ether 0c:82:68:2f:ea:0f  txqueuelen 1000  (Ethernet)        RX packets 0  bytes 0 (0.0 B)        RX errors 0  dropped 0 overruns 0  frame 0        TX packets 0  bytes 0 (0.0 B)        TX errors 0  dropped 0 overruns 0  carrier 0 collisions 0

可以看到,有两个网卡接口信息。

enp2s0是主板自带的网卡接口

wlp0s29f7u3就是无线网卡接口,一般都是以w开头,可能更多的是叫wlan0。

有问题可添加vx:IT了么

也可以查看网卡的硬件信息​​​​​​​

# lsusb........Bus 001 Device 004:ID 0dd8:3200 Netac Technology Co., LtdBus 001 Device 003:ID 0bda:8178 Realtek Semiconductor Corp. RTL8192CU 802.11n WLAN Adapter........

可以看到型号Realtek RTL8192CU 802.11n WLAN

可以带上-vvv查看更详细的硬件信息

#lsusb  -vvv

还可以看加载的模块​​​​​​​

# lsmod|grep -i 802rtl8192cu              75626  0rtl_usb                22543  1 rtl8192curtl8192c_common        57380 1 rtl8192curtlwifi                84374  3 rtl_usb,rtl8192c_common,rtl8192cumac80211              770617  3 rtl_usb,rtlwifi,rtl8192cu

有问题可添加vx:IT了么

还可以查看开机的硬件检测​​​​​​​

# dmesg......[    1.966035] usb 1-3: new high-speed USBdevice number 3 using ehci-pci[    2.002805] fbcon: inteldrmfb (fb0) isprimary device[    2.022958] Console: switching to colourframe buffer device 160x64[    2.043145] i915 0000:00:02.0: fb0:inteldrmfb frame buffer device[    2.091517] usb 1-3: New USB device found,idVendor=0bda, idProduct=8178, bcdDevice= 2.00[    2.091521] usb 1-3: New USB device strings:Mfr=1, Product=2, SerialNumber=3[    2.091524] usb 1-3: Product: USB WLAN[    2.091527] usb 1-3: Manufacturer: 802.11n[    2.091530] usb 1-3: SerialNumber:00e04c000001..........[   13.205629] rtl8192cu: Chip version 0x11[   13.286275] rtl8192cu: Board Type 0[   13.286499] rtl_usb: rx_max_size 15360,rx_urb_num 8, in_ep 1[   13.286539] rtl8192cu: Loading firmwarertlwifi/rtl8192cufw_TMSC.bin[   13.354540] ieee80211 phy0: Selected ratecontrol algorithm 'rtl_rc'[   13.354928] usbcore: registered new interfacedriver rtl8192cu..........

如果没识别到无线网卡驱动,就需要去安装驱动了,那就会麻烦一点了。

有问题可添加vx:IT了么

三、配置无线网卡的文件

虽然一般都能识别到无线网卡,但一开始可能是无法正常启动的,因为没有相应的接口配置文件。

可以自己创建跟无线接口对应的配置文件。

复制另一个接口的配置文件制作出无线接口的配置文件,也可以直接新建文件,配置文件名格式:ifcfg-接口名称

# cp ifcfg-enp2s0 ifcfg-wlp0s29f7u3

编辑ifcfg-wlp0s29f7u3文件。

修改接口名称,去掉一些不用的信息,最后只要保留以下内容即可:

DEVICE="wlp0s29f7u3"

ONBOOT="yes"

BOOTPROTO=dhcp

在配置文件中,设置网卡接口开机自启动,自动获取IP(也可以设置静态IP)。

启动无线网卡接口:

# ifup wlp0s29f7u3

确认网卡有没有启动​​​​​​​

# ifconfig wlp0s29f7u3wlp0s29f7u3:flags=4099<UP,BROADCAST,MULTICAST> mtu 1500        ether 0c:82:68:2f:ea:0f  txqueuelen 1000  (Ethernet)        RX packets 0  bytes 0 (0.0 B)        RX errors 0  dropped 0 overruns 0  frame 0        TX packets 0  bytes 0 (0.0 B)        TX errors 0  dropped 0 overruns 0  carrier 0 collisions 0

看第一行信息,<UP,BROADCAST,MULTICAST>如果有UP的话,说明网卡启动成功。

但这里只是启动成功,无线网卡还需要连接到WIFI才能正常使用。

四、扫描WIFI、连接WIFI

这里需要用到两个命令工具iw和wpa_supplicant,如果没有的话,需要先安装。

# yum install iw wpa_supplicant

用iw命令扫描WIF信号

# iw dev 接口名称 scan

由于信息很多,我们可以结合grep只查看WIFI的SSID​​​​​​​

# iw dev wlp0s29f7u3 scan|grep -i ssidSSID: yjfgSSID: HiWiFi203SSID: yj2.4GSSID: TP-LINK_73E0SSID: arubaSSID: TP-LINK_5374SSID: meimeiSSID: \x00\x00\x00\x00\x00\x00SSID: arubaSSID: ChinaNet-vVjNSSID: @PHICOMM_BDSSID: 505SSID:SSID: TP-LINK_\xe4\xbc\x98\xe8\xb4\x9d\xe4\xb9\x90SSID: 7798ab4dSSID: TP-LINK_580DSSID: @PHICOMM_C6SSID: 603

 可以看到,扫描出不少WIFI信号。

扫描出WIFI后,连接自己想连接的WIFI。

这里有几种连接情况:

  • WIFI没有加密

这种直接连接就可以

# iw dev wlp0s29f7u3 connect [网络 SSID]

  • WIFI是用 WEP 加密的

这种需要填密码连接

# iw dev wlp0s29f7u3 connect [网络 SSID] key 0:[WEP 密钥]

  • WIFI是用WPA/WPA2加密的

前面的两种连接方式,由于安全原因,基本上都没用了。现在都是用WPA/WPA2协议连接的,这种连接稍微复杂一点,需要用wpasupplicant工具来进行连接。

先用wpa_passphrase命令来生成配置文件。​​​​​​​

#wpa_passphrase ChinaNet-vVjN unyv4zru >/etc/wpa_supplicant/wpa_supplicant.confChinaNet-vVjN:WIFI的SSIDunyv4zru:WIFI的密码

生成的文件内容:​​​​​​​

# cat/etc/wpa_supplicant/wpa_supplicant.confnetwork={ssid="ChinaNet-vVjN"#psk="unyv4zru"psk=a608dbc2bf4a440b2c8a77bb9cb5dc5955b33126349f223e2f7ffeab24a97777}

一旦配置文件生成后,就可以使用wpa_supplicant来连接WIFI了。​​​​​​​

#wpa_supplicant -i wlp0s29f7u3 -c /etc/wpa_supplicant/wpa_supplicant.confSuccessfullyinitialized wpa_supplicantwlp0s29f7u3:SME: Trying to authenticate with a8:e2:c3:a6:47:8e (SSID='ChinaNet-vVjN'freq=2462 MHz)wlp0s29f7u3:Trying to associate with a8:e2:c3:a6:47:8e (SSID='ChinaNet-vVjN' freq=2462 MHz)wlp0s29f7u3:Associated with a8:e2:c3:a6:47:8ewlp0s29f7u3:CTRL-EVENT-SUBNET-STATUS-UPDATE status=0wlp0s29f7u3:WPA: Key negotiation completed with a8:e2:c3:a6:47:8e [PTK=CCMP GTK=TKIP]wlp0s29f7u3:CTRL-EVENT-CONNECTED - Connection to a8:e2:c3:a6:47:8e completed [id=0 id_str=]

-i  接口名称

-c  配置文件

-B 可以加这个,在后台运行(第一次还是先不要加,看看输出信息)

五、配置服务启动

如果想每次开机自启动的话,可以启用wpa_supplicant服务,但需要稍微改一下。

修改服务文件,主要是加上网口名称​​​​​​​

# vim /usr/lib/systemd/system/wpa_supplicant.service [Unit]Description=WPASupplicant daemonBefore=network.targetAfter=syslog.target [Service]Type=dbusBusName=fi.w1.wpa_supplicant1EnvironmentFile=-/etc/sysconfig/wpa_supplicantExecStart=/usr/sbin/wpa_supplicant-u -f /var/log/wpa_supplicant.log -c /etc/wpa_supplicant/wpa_supplicant.conf  -i wlp0s29f7u3 [Install]WantedBy=multi-user.target

只是修改了ExecStart这一句内容:

删除后面的几个变量,加上了网口名称 -i wlp0s29f7u3

ExecStart=/usr/sbin/wpa_supplicant-u -f /var/log/wpa_supplicant.log -c /etc/wpa_supplicant/wpa_supplicant.conf  -i wlp0s29f7u3

启用服务

# systemctl daemon-reload# systemctl enable wpa_supplicant# systemctl restart wpa_supplicant

 这样,每次开机就会自动连接上WIFI了。

有问题可添加vx:IT了么

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

IT了么

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值