日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > linux >内容正文

linux

Linux中命令行进行WiFi连接(零基础详解)

發布時間:2024/8/1 linux 58 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Linux中命令行进行WiFi连接(零基础详解) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

Linux系統下主要使用的WiFi配置工具有兩種:

  • wireless tools:主要配置WEP加密的WiFi,現在iwconfig之類的命令已經被iw所替代了。本文中也部分的使用了iw進行WiFi的配置,如果想知道更多相關的功能,可以在shell窗口輸入iw help查看。(依賴libnl庫)
  • wpa_supplicant: 主要配置WPA和WPA2加密的WiFi,它被設計成一個運行在后臺的守護進程。可以看成兩個主要可執行工具:
    wpa_supplicant:后臺運行,相當于服務端。
    wpa_cli:前端來進行搜索,設置和連接網絡,相當于客戶端。

下面我們將使用兩種配置工具通過命令行分別對Linux進行WiFi配置。大家根據自己的要連接網絡的加密方式選擇合適的配置方法。

iw

獲取Root權限
$ su
查找可用網卡
$ iw dev phy#0Interface wlan1ifindex 7wdev 0x2addr 8e:f7:10:78:49:a2ssid COZY_49a2type APtxpower 31.00 dBmInterface wlan0ifindex 6wdev 0x1addr 8c:f7:10:78:49:a2type managedtxpower 31.00 dBm

得到上面的輸出,記下Interface(接口)之后的網卡名字。我這里有兩個網卡,分別是wlan1和wlan0。如果想要連接無線,不是隨便選其中一個網卡就行了,要看網卡的類型,我們可以看到wlan1的類型是AP,它是作為一個無線接入點(Wireless access point),就是相當于一個無線信號發射的網卡,而wlan0的類型是managed,它是可以作為一個客戶端接入主AP。這里我們要用板子連網,所以應該使用wlan0。

查看激活網卡

首先查看網卡狀態,觀察其是否有被激活。

$ ip link show wlan0 //此處wlan1為網卡名字 //已激活狀態,< >內包含UP關鍵字。 7: wlan0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast qlen 1000link/ether 8e:f7:10:78:49:a2 brd ff:ff:ff:ff:ff:ff//未激活狀態,< >內不含UP關鍵字。 7: wlan0: <BROADCAST,MULTICAST> mtu 1500 qdisc pfifo_fast qlen 1000link/ether 8e:f7:10:78:49:a2 brd ff:ff:ff:ff:ff:ff

會得到上面兩種可能輸出。
接著如果是還沒激活的狀態,我們可以選用下面兩條語句其中一條對網卡進行激活。

$ ip link set wlan0 up //此處wlan1為網卡名字 $ ifconfig wlan0 up //此處wlan1為網卡名字 wlan0: INTERFACE-ENABLED

輸出打印的結果都是一樣的,我們可以繼續執行上面的查看狀態命令重新查看網卡的狀態,看看有沒有激活成功。

搜索附近網絡

搜索附近可用的無線網路,可選用下面的兩條語句中的一條。
第一種方法是:

$ iw wlan0 scan | grep SSID SSID: TP-LINK_0B8BSSID: TP-LINK_2458SSID: ChinaNet_1688SSID: CMW-APSSID: wifitest

iw scan可以將無線網絡的具體信息全部展示出來,我們加上了grep語句,抓取關鍵字符串SSID(網絡名字),將其打印出來。

輸入賬戶密碼
$ iw wlan0 connect <SSID> keys d:1:<PSW> //SSID是WiFi名,PSW是密碼 command failed: Operation not supported (-95)

結果報錯誤了,網上找了一下也沒找到具體啥錯誤,但是個人猜測是連接的無線網絡不是WEP加密的。所以沒辦法通過iw命令進行配置連接了。但是如果是WEP加密的話,到這一步應該就已經網絡連接成功了。
最后就是測試網絡是否連接上了,這里就沒辦法測試了,剩下的測試步驟留給wpa_supplicant配置成功之后進行把。

wpa supplicant

啟動后臺運行

和iw命令有些不同,如果要運行wpa_supplicant的話,要先啟動其在后臺運行。這一步感覺就已經將網卡激活了。如果沒有就再運行一次$ ifconfig wlan0 up命令

$ wpa_supplicant -D nl80211 -i wlan0 -c /etc/wpa_supplicant.conf -B
  • -D <driver name> 驅動程序名字(nl80211或west)
  • -i <interface name> 網卡名字
  • - c <conf file dir> 配置文件
  • -B 后臺運行
搜索附近網絡

第一條命令執行搜索功能,第二條命令只有展示功能,沒有搜索功能。

$ wpa_cli -i wlan0 scan   $ wpa_cli -i wlan0 scan_result   bssid / frequency / signal level / flags / ssid 48:7d:2e:be:24:58 2462 -72 [WPA-PSK-CCMP][WPA2-PSK-CCMP][ESS] TP-LINK_2458 74:05:a5:0d:0b:8b 2462 -76 [WPA-PSK-CCMP][WPA2-PSK-CCMP][ESS] TP-LINK_0B8B 34:ce:00:0a:c6:c0 2472 -76 [WPA2-PSK-CCMP][ESS] ABC 74:da:da:8f:7f:d8 2447 -80 [WPA-PSK-CCMP+TKIP][WPA2-PSK-CCMP+TKIP][ESS] D-Link_DIR_cyan 80:ea:07:d8:97:45 2437 -80 [WPA-PSK-CCMP][WPA2-PSK-CCMP][ESS] TP-LINK_9547 dc:fe:18:ba:5c:31 2437 -81 [WPA-PSK-CCMP][WPA2-PSK-CCMP][ESS] test_vmx 88:25:93:31:8e:a2 2412 -83 [WPA-PSK-CCMP][WPA2-PSK-CCMP][ESS] TP_LINK_8EA2 80:ea:07:d8:c8:6e 2437 -84 [WPA-PSK-CCMP][WPA2-PSK-CCMP][ESS] TP-LINK_C86E 50:bd:5f:04:d9:04 2437 -86 [WPA2-PSK-CCMP][ESS] 20200401 8c:a6:df:f7:31:d5 2412 -87 [WPA-PSK-CCMP][WPA2-PSK-CCMP][ESS] TP-LINK_YC ac:f2:c5:96:82:e6 2437 -93 [WPA2-PSK-CCMP][ESS] ott123

從這里就能看到各個WiFi的具體信息,也能看到他們的加密方式有WPA,WPA2和ESS,就是沒有WEP,所以剛才連不了(笑)。最后一列就是我們需要的SSID

輸入賬戶密碼

在wpa_supplicant里有兩種方式輸入賬戶和密碼:

  • 命令行輸入:這是一種暫時的輸入,下次系統重啟之后要重新輸入。
  • 修改配置文件:直接在配置文件里配置賬戶和密碼。下次重啟之后系統自動連接。
命令行輸入

首先進入交互模式:

$ wpa_cli -i wlan0

然后根據前面看到的,需要連接的WiFi網絡的加密信息來確定連接方式。

// $ > add_network > set_network 0 ssid "SSID" > set_network 0 psk "Password" > enable_network 0 <3>CTRL-EVENT-SCAN-STARTED <3>CTRL-EVENT-SCAN-RESULTS <3>CTRL-EVENT-NETWORK-NOT-FOUND <3>CTRL-EVENT-SCAN-STARTED <3>CTRL-EVENT-SCAN-RESULTS <3>Trying to associate with c2:b8:b6:a7:8a:00 (SSID='Jiangnan' freq=2412 MHz) > [ 382.799309@1] Connecting with c2:b8:b6:a7:8a:00 ssid "Jiangnan", len (8) channel=1 [ 382.799309@1] [ 382.878924@1] wl_iw_event: Link UP with BSSID=c2:b8:b6:a7:8a:00 [ 382.879278@1] wl_bss_connect_done succeeded with c2:b8:b6:a7:8a:00 <3>Associated with c2:b8:b6:a7:8a:00 <3>CTRL-EVENT-SUBNET-STATUS-UPDATE status=0 <3>WPA: Key negotiation completed with c2:b8:b6:a7:8a:00 [PTK=CCMP GTK=CCMP] <3>CTRL-EVENT-CONNECTED - Connection to c2:b8:b6:a7:8a:00 completed [id=0 id_str=] > [ 382.982776@1] wl_bss_connect_done succeeded with c2:b8:b6:a7:8a:00

這樣網絡就連接成功了。我們還可以加上一句命令將這次連接成功的配置保存到/etc/wpa_supplicant.conf文件里。

$ wpa_cli -i wlan0 save_config

這樣我們用cat命令查看文件的時候,就會發現網絡名和密碼已經保存到里面了。

配置文件連接

通過直接修改配置文件/etc/wpa_supplicant.conf,將網絡名和密碼直接寫入配置文件中進行連接。
首先進入到/etc的目錄下,然后用vi打開配置文件,wpa_supplicant的配置文件就在該目錄下

$ cd ./etc $ vi wpa_supplicant.conf

此時我們已經進入了配置文件,但是要編輯文件需要按i進入編輯模式,將配置文件加入network項:

ctrl_interface=/var/run/wpa_supplicant update_config=1 network={ssid="SSID"psk="Password" }

修改完成,鍵入Esc,退出編輯模式,然后鍵入:和x對修改之后的文件進行保存。

獲取IP地址
$ dhclient wlan0

我看很多文章都是用dhclient命令獲取IP地址的,但是不知道為什么我的Linux上說找不到這個命令,應該是少了些東西。
沒有網關的話,如果你ping外網的話會出現錯誤。
所以我們用route命令查看內核路由表

$ route Kernel IP routing table Destination Gateway Genmask Flags Metric Ref Use Iface 127.0.0.0 * 255.0.0.0 U 0 0 0 lo 172.20.10.0 * 255.255.255.240 U 306 0 0 wlan0 192.168.2.0 * 255.255.255.0 U 0 0 0 wlan1 192.168.5.0 * 255.255.255.0 U 0 0 0 usb0

我們會發現gateway也就是網關這一項什么都沒有,所以我們需要分配一個默認網關。

route add default gw 10.0.0.253 //這個ip是通過ifconfig或ip addr查到的

這樣子就分配好了網關。

還有一種方式就是直接對系統進行重啟ireboot,然后系統下次會自動給你分配好IP地址,直接就能夠聯網成功。

檢測網絡連接

這里我們使用ping百度的方式來檢測連接。

$ ping -c10 www.baidu.com

-c10表示發10個包過去。

PING www.baidu.com (183.232.231.172): 56 data bytes 64 bytes from 183.232.231.172: seq=0 ttl=55 time=68.751 ms 64 bytes from 183.232.231.172: seq=1 ttl=55 time=173.151 ms 64 bytes from 183.232.231.172: seq=2 ttl=55 time=120.435 ms 64 bytes from 183.232.231.172: seq=3 ttl=55 time=63.139 ms 64 bytes from 183.232.231.172: seq=4 ttl=55 time=58.868 ms 64 bytes from 183.232.231.172: seq=5 ttl=55 time=197.981 ms 64 bytes from 183.232.231.172: seq=6 ttl=55 time=57.563 ms 64 bytes from 183.232.231.172: seq=7 ttl=55 time=56.769 ms 64 bytes from 183.232.231.172: seq=8 ttl=55 time=89.183 ms 64 bytes from 183.232.231.172: seq=9 ttl=55 time=75.906 ms--- www.baidu.com ping statistics --- 10 packets transmitted, 10 packets received, 0% packet loss round-trip min/avg/max = 56.769/96.174/197.981 ms

完成!

總結

以上是生活随笔為你收集整理的Linux中命令行进行WiFi连接(零基础详解)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。