linux命令连接wifi

原文链接:https://blog.csdn.net/Jiangnan_Cai/article/details/115548580(非常赞)

Linux系统下主要使用的WiFi配置工具有两种:

1. wireless tools:主要配置WEP加密的WiFi,现在iwconfig之类的命令已经被iw所替代了。本文中也部分的使用了iw进行WiFi的配置,如果想知道更多相关的功能,可以在shell窗口输入iw help查看。(依赖libnl库)

2. wpa_supplicant: 主要配置WPA和WPA2加密的WiFi,它被设计成一个运行在后台的守护进程。可以看成两个主要可执行工具:
wpa_supplicant:后台运行,相当于服务端。
wpa_cli:前端来进行搜索,设置和连接网络,相当于客户端。

下面将使用两种配置工具通过命令行分别对Linux进行WiFi配置。

一、iw

1.首先进入linux的终端或串口打印的xshell终端,用户需要root权限。

2.查找可用网卡:
iw dev

输入以上命令后,你会得到以下类似节点:

phy#0
        Interface p2p0
                ifindex 4
                wdev 0x2
                addr 6a:4e:05:07:70:d6
                type managed
                txpower 42949572.96 dBm
        Interface wlan0
                ifindex 3
                wdev 0x1
                addr 68:4e:05:07:70:d6
                type managed
                txpower 42949572.96 dBm

        如果想要连接无线,不是随便选其中一个网卡就行了,需要看网卡的类型(type),有的类型为AP,它是作为一个无线接入点(Wireless access point),就是相当于一个无线信号发射的网卡;我这里的2个网卡类型均为managed,它是可以作为一个客户端接入主AP的。

        我这里有两个网卡,p2p0是一种用于wi-fi直接连接的虚拟接口。 它与使用wlan0连接到访问点是(或似乎是)互斥的。 换句话说,它使用与wlan0相同的硬件,因此您可以使用wlan0连接到ap,也可以使用p2p0进行对等连接。这里我们要用板子连网,所以应该使用wlan0

3.查看激活网卡
ip link show wlan0  

会得到下面2种输出:

//已激活状态,< >内包含UP关键字。
3: wlan0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc mq state DOWN mode DORMANT group default qlen 1000
    link/ether 68:4e:05:07:70:d6 brd ff:ff:ff:ff:ff:ff

//未激活状态,< >内不含UP关键字。
3: wlan0: <NO-CARRIER,BROADCAST,MULTICAST> mtu 1500 qdisc mq state DOWN mode DORMANT group default qlen 1000
    link/ether 68:4e:05:07:70:d6 brd ff:ff:ff:ff:ff:ff

如果是还没激活的状态,我们可以选用下面两条语句其中一条对网卡进行激活。

ip link set wlan0 up
ifconfig wlan0 up
4.搜索附近网络
iw wlan0 scan | grep SSID

iw scan可以将无线网络的具体信息全部展示出来,我们加上了grep语句,抓取关键字符串SSID(网络名字),将其打印出来。

 5.输入账户密码
iw wlan0 connect <SSID> keys d:1:<PSW> //SSID是WiFi名,PSW是密码

输入以上命令后,我这里并没有出现报错的信息,也没有其他的任何打印,个人觉得应该是连接成功了;但是没有网,应该是wlan0没有获取到IP,后面有说到如何获取IP。

另一种说的是会有报错信息:

command failed: Operation not supported (-95)

这里猜测是连接的无线网络不是WEP加密的。所以没办法通过iw命令进行配置连接了。但是如果是WEP加密的话,到这一步应该就已经网络连接成功了。

最后就是测试网络是否连接上了,这里就没办法测试了,剩下的测试步骤留给wpa_supplicant配置成功之后进行吧。

二、wpa supplicant

1.启动后台运行:

和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 后台运行
 

2.搜索附近网络

wpa_cli -i wlan0 scan             
wpa_cli -i wlan0 scan_result   

第一条命令执行搜索功能,第二条命令只有展示功能,没有搜索功能

从这里就能看到各个WiFi的具体信息,也能看到他们的加密方式有WPA,WPA2和ESS,就是没有WEP,所以刚才连不了(笑)。最后一列就是我们需要的SSID(WiFi名字)

3.输入账户密码

wpa_supplicant里有两种方式输入账户和密码:

  • 命令行输入:这是一种暂时的输入,下次系统重启之后要重新输入。
  • 修改配置文件:直接在配置文件里配置账户和密码。下次重启之后系统自动连接
4.命令行输入

首先进入交互模式:

wpa_cli -i wlan0 

然后根据前面看到的,需要连接的WiFi网络的加密信息来确定连接方式。

add_network
set_network 0 ssid "SSID"
set_network 0 psk "Password"  
enable_network 0

 这样网络就连接成功了。我们还可以加上一句命令将这次连接成功的配置保到/etc/wpa_supplicant.conf文件里。

wpa_cli -i wlan0 save_config
5.配置文件连接

通过直接修改配置文件/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对修改之后的文件进行保存。

6.获取IP地址
dhclient wlan0

没有网关的话,如果你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地址,直接就能够联网成功。

7.检测网络连接

使用ping命令来ping网址

ping -c5 www.qq.com

-c5 表示发送5个包过去。

 之后,到此就OK了。

  • 4
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
openwrt命令行模式命令及其工具 需要学会用ssh登录路由器用linux命令查看。 ps 命令查看当前系统运行的进程信息 free 命令查看内存使用和swap挂载情况 ls 查看目录和文件 cd 进入退出目录 vi 查看编辑配置文件 安装命令: #opkg update #opkg install nano uci set network.lan.ipaddr=[lan ip] 使用pppoe设置 Shell代码 uci set network.wan.proto=pppoe //设置wan口类型为pppoe uci set network.wan.username=[上网帐户] uci set network.wan.password=[上网密码] //这两行设置pppoe用户名和密码 如果要挂在上级路由下面,就需要进行下面的设置 Shell代码 uci set network.wan.proto=none //关掉wan uci set network.lan.gateway=[上级路由ip] //网关指向上级路由 uci set network.lan.dns=[上级路由ip] //dns指向上级路由 uci set dhcp.lan.ignore=1 //关掉lan的dhcp 最后对无线网络进行配置 Shell代码 uci set wireless.@wifi-device[0].disabled=0 //打开无线 uci set wireless.@wifi-device[0].txpower=17 //设置功率为17dbm 太高会烧无线模块 uci set wireless.@wifi-device[0].channel=6 //设置无线信道为6 uci set wireless.@wifi-iface[0].mode=ap //设置无线模式为ap uci set wireless.@wifi-iface[0].ssid=[自己设置SSID] //设置无线SSID uci set wireless.@wifi-iface[0].network=lan //无线链接到lan上 uci set wireless.@wifi-iface[0].encryption=psk2 //设置加密为WPA2-PSK uci set wireless.@wifi-iface[0].key=[密码] //设置无线密码 提交应用配置 Shell代码 uci commit //应用 /etc/init.d/network restart //重启网络服务 安装luci管理界面 Shell代码 opkg update // 更新软件列表 opkg list-installed // 查看已安装软件 opkg install luci // 安装LUCI opkg install luci-i18n-chinese // 支持中文 luci-app-firewall - 0.10.0-1 luci-i18n-english - 0.10.0-1 luci-lib-core - 0.10.0-1 luci-lib-ipkg - 0.10.0-1 luci-lib-lmo - 0.10.0-1 luci-lib-nixio - 0.10.0-1 luci-lib-sys - 0.10.0-1 luci-lib-web - 0.10.0-1 luci-mod-admin-core - 0.10.0-1 luci-mod-admin-full - 0.10.0-1 luci-proto-core - 0.10.0-1 luci-proto-ppp - 0.10.0-1 luci-sgi-cgi - 0.10.0-1 luci-theme-base - 0.10.0-1 luci-theme-openwrt - 0.10.0-1 即可完成LUCI的安装。 输入以下命令开启支持web服务的uhttpd,并设置其为自启动: Shell代码 /etc/init.d/uhttpd enable # 开机自启动 /etc/init.d/uhttpd start # 启动uhttpd - Wifidog 你可以尝试执行以下命令安装Wifidog: opkg update # Optional opkg install wifidog --sftp安装 opkg update opkg install vsftpd openssh-sftp-server /etc/init.d/vsftpd enable /etc/init.d/vsftpd start 小米端口转发命令: 通过修改 /etc/config/firewall 这个文件来实现开放自己需要的端口到外网。 config rule 'httpdwan' option src 'wan' option dest_port '8088' option proto 'tcp' option target 'ACCEPT' option name ''\''httpd wan accept tcp port 8088'\''' 保存后,执行 /etc/init.d/firewall restart 重启防火墙。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值