欢迎关注微信公众号:羽林君,或者添加作者个人微信:become_me
wpa_cli wpa_supplicant命令 使用
这两个工具使用是用来进行手动配置网络的,平时遇到非UI界面的设备,机器本身联网机制比较复杂的时候,我们可以使用wpa工具进行手动联网(前提是设备里面支持)。
Wireless Tools、wpa_supplicant是两种无线网络配置工具,这里我使用了wpa_supplicant工具。
wpa_supplicant 是 wifi 客户端(client)加密认证工>具,并且是一个开源的项目,已经被移植到 Linux、Windows 以及很多嵌入式系统上。它是 WPA 的应用层认证客户端,负责完成认证相关的登录、加密等工作。
wpa_supplicant是一个连接、配置WIFI的工具,它主要包含wpa_supplicant与wpa_cli两个程序。wpa_supplicant是服务端,wap_cli是客户端,一般情况下使用wpa_cli就可以操作WiFi。但是它不支持所有的驱动,可以浏览wpa_supplicant网站获得它所支持的驱动列表。另外,wpa_supplicant目前只能连接到那些你已经配置好SSID的无线网络,也就是使用前需要配置好wpa_supplicant的配置文件wpa_supplicant.conf
wpa_supplicant 和 wpa_cli 的关系就像服务和客户端的关系,后台运行 wpa_supplicant,使用 wpa_cli 来搜索、设置、和连接网络。不过 wpa_cli 并不是必须的软件。
wpa_supplicant 是一个独立运行的守护进程,其核心是一个消息循环,在消息循环中处理 WPA 状态机、控制命令、驱动事件、配置信息等。
wpa_cli 有命令和交互的方式进行操作
wpa_cli?-i?wlan0?scan??????????????//搜索附件wifi热点
wpa_cli?-i?wlan0?scan_result???//显示搜索wifi热点
wpa_cli?-i?wlan0?status??????????????//当前WPA/EAPOL/EAP通讯状态
执行操作示例:我进行了一个网络的断开和重连
wpa_cli?-i?wlan0?disable_network??0?//???与network?id?0的网络断开
wpa_cli?-i?wlan0?list_network????//列举保存过得连接
wpa_cli?-i?wlan0?enable_network???0?//使能制定的ssid??network?id?0
wpa_cli?-i?wlan0?select_network??<network?id>??//连接指定的ssid?
wpa_cli?-i?wlan0?remove_network??<network?id>??//将指定的网络移除掉,必须先断开才行?
wpa_cli?-i?wlan0?save_config???//信息保存到默认的配置文件中,/etc/wpa_supplicant.conf
断开连接
除此之外,我还会进行wpa_supplicant.conf配置文件的修改,来配合联网和断网,其中修改用vim操作,联网使用wpa_supplicant
命令。
ifconfig?wlan0?up?//打开wlan0
wpa_supplicant?-B?-D?nl80211?-i?wlan0?-c?/etc/wpa_supplicant.conf?//指定.conf?配置文件连接
?
除了我这里简单的描述使用,大家也可以参考更详细的文章:https://www.cnblogs.com/hokori/p/14168584.html
fuser、netstat、lsof端口占用查看工具使用
上面是网络的连接,很多时候我们还要查看网络端口占用的情况,下面有三个linux工具可以参考:
fuser可以显示出当前哪个程序在使用磁盘上的某个文件、挂载点、甚至网络端口,并给出程序进程的详细信息。
netstat 命令用于显示各种网络相关信息,如网络连接,路由表,接口状态 (Interface Statistics),masquerade 连接,多播成员 (Multicast Memberships) 等等。
lsof 命令可以查看进程打开的文件、目录,还可以查看进程监听的端口等 socket 相关的信息。
fuser 查看端口占用
ps?$(fuser???6666/tcp)?组合ps查看进程信息
fuser???6666/tcp?//查看tcp端口占用进程
fuser???6000/udp?//查看udp端口占用进程
netstat 查看端口占用
netstat?-tunlp?|?grep?40999?//?查看端口占用
-t?(tcp)?仅显示tcp相关选项
-u?(udp)仅显示udp相关选项
-n?拒绝显示别名,能显示数字的全部转化为数字
-l?仅列出在Listen(监听)的服务状态
-p?显示建立相关链接的程序名???????
sudo lsof -i:6000
或者使用lsof -i
查看全部端口占用这样我们知道了进程占用的端口。以上这三者工具都有丰富的功能,我只是使用的它们其中一些功能,详细可以参考这些文章
更详细的使用大家也可以自行搜索。
tcpdump使用
端口占用工具使用之后,我们需要进行更深层次的数据分析,这个时候我们需要进行网络tcp和udp层次的数据分析,这个时候有很多工具例如Wireshark、Network Monitor和tcpdump,今天主要介绍tcpdump的使用。
tcpdump 是一款强大的网络抓包工具,它使用 libpcap 库来抓取网络数据包,这个库在几乎在所有的 Linux/Unix 中都有。
它的命令组合起来很丰富,今天只是介绍几个工作中使用的命令,详细大家可以参考这篇文章:https://juejin.cn/post/6844904084168769549
我们会多的使用tcpdump的基本数据命令,但是有时候我们需要详细信息打印的捕获比较,这个时候有以下命令可以帮助我们在终端上详细输出信息:
tcpdump?udp?port?18290?-XX?-vvv?-nn
-v:当分析和打印的时候,产生详细的输出。
-vv:产生比-v更详细的输出。
-vvv:产生比-vv更详细的输出。
-XX:输出包的头部数据,会以16进制和ASCII两种方式同时输出。
-nn?:直接以IP以及PORT?number显示,而非主机名与服务名称
下面是我比较常用的命令组合分享:
tcpdump?-i?wlan0?port?6666??//捕获6666端口数据
tcpdump?-i?wlan0?host?192.168.1.111?//指定IP捕获
tcpdump?-i?wlan0?port?6666?-XX?-vvv?-nn?//详细信息捕获
tcpdump?-i?wlan0?dst??192.1168.1.111?-XX?-vvv?-nn?//控制输出ip筛选
tcpdump?-i?wlan0??net?192.168.1?-XX?-vvv?-nn?//控制总网段捕获
tcpdump?-i?wlan0??dst?net?192.168.1?-XX?-vvv?-nn?、、控制输出网段捕获
示例:sudo tcpdump -i lo portrange 5000-8000 -vv -XX -nn
5000-8000端口进行捕获数据,检查双方链路通信
此外我还可以做tcp网路的连接捕获:
这个是三次握手
tcp?协议的三次握手过程,第一条就是?SYN?报文,这个可以通过?Flags?[S]?看出,而第二条数据的?[S.]?表示?SYN-ACK,就是?SYN?报文的应答报文。下面是常见的?TCP?报文的?Flags:
[S]?:?SYN(开始连接)
[.]?:?没有?Flag
[P]?:?PSH(推送数据)
[F]?:?FIN?(结束连接)
[R]?:?RST(重置连接)
这个是四次挥手
结语
这就是我自己的一些网络工具使用分享。如果大家有更好的想法和需求,也欢迎大家加我好友交流分享哈。
作者:良知犹存,白天努力工作,晚上原创公号号主。公众号内容除了技术还有些人生感悟,一个认真输出内容的职场老司机,也是一个技术之外丰富生活的人,摄影、音乐 and 篮球。关注我,与我一起同行。