linux定位问题常用命令

本篇文章主要介绍了在使用linux过程中常见的一些定位问题的命令。

ifconfig(查看网卡)

$ ifconfig

enp1s0    Link encap:Ethernet  HWaddr 28:d2:44:eb:bd:98  
          inet addr:192.168.0.103  Bcast:192.168.0.255  Mask:255.255.255.0
          inet6 addr: fe80::8f0c:7825:8057:5eec/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:169854 errors:0 dropped:0 overruns:0 frame:0
          TX packets:125995 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:174146270 (174.1 MB)  TX bytes:21062129 (21.0 MB)

lo        Link encap:Local Loopback  
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:65536  Metric:1
          RX packets:15793 errors:0 dropped:0 overruns:0 frame:0
          TX packets:15793 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1 
          RX bytes:2898946 (2.8 MB)  TX bytes:2898946 (2.8 MB)

如果要显示所有的网络接口,包含在线(up)的或下线(down)的,使用-a 选项。

如果要给一个网络接口分配一个IP地址,使用下面的命令

如果要启用一个网络接口,使用下面命令

如果要禁用一个网络接口,使用下面命令

ip(查看网卡)

显示所有网卡

查看路由信息

ifup,ifdown(激活或者禁用网卡)

ifup命令用于激活一个网络接口,使得可以接收或传输数据。

ifdown命令可以禁用一个网络接口,禁掉后就不能传输和接收数据了。

ping(探测网络连通性)

发送指定数量的包

traceroute(查看数据包路由途径)

mtr(ping+traceroute)

upload-image

route(查看路由表)

添加一个网络路由到一个路由表:

从路由表中删除特定的路由项:

netstat(查看连接数)

查看某个服务的TCP连接数

查看udp的连接数

查看网卡列表

显示组播组的关系

显示网络统计信息

显示监听的套接口

ss(检测套接字)

显示所有活动的TCP连接以及计时器,运行以下命令:

ncat(nc)

ncat/nc既是一个端口扫描工具,也是一款安全工具,还是一款监测工具,甚至可以做为一个简单的TCP代理。 由于有这么多的功能,它被誉为是网络界的瑞士军刀。 安装

监听某个端口的入站连接

连接远程服务器执行命令

测试主机端口的连通性

nc进行主机间通信聊天

nmap(扫描主机)

扫描www.niewx.club这个地址的状态

iftop(查看流量)

-i: 接口

-B: 以字节而非比特显示

upload-image

TX:发送流量

RX:接收流量

TOTAL:总流量

Cumm:运行iftop到目前时间的总流量

peak:流量峰值

rates:分别表示过去 2s 10s 40s 的平均流量

trickle(限制带宽)

这个应用用于限制网络带宽

  1. 限制wget的上传和下载速度限制上传为10KB/S,下载为20KB/s

  1. 单独限制某个进程的下载和上传速度

  1. 限制终端下的所有命令带宽为,下载500KB/S,上传250KB/s;

dstat(监控cpu内存)

tcpdump(网络抓包)

  1. 抓取包含10.10.10.122的数据包

  1. 抓取包含10.10.10.0/24网段的数据包

  1. 抓取包含端口22的数据包

  1. 抓取udp协议的数据包

  1. 抓取icmp协议的数据包

  1. 抓取arp协议的数据包

  1. 抓取ip协议的数据包

  1. 抓取源ip是10.10.10.122数据包。

  1. 抓取目的ip是10.10.10.122数据包

  1. 抓取源端口是22的数据包

  1. 抓取源ip是10.10.10.253且目的ip是22的数据包

  1. 抓取源ip是10.10.10.122或者包含端口是22的数据包

  1. 抓取源ip是10.10.10.122且端口不是22的数据包

  1. 抓取源ip是10.10.10.2且目的端口是22,或源ip是10.10.10.65且目的端口是80的数据包。

  1. 抓取源ip是10.10.10.59且目的端口是22,或源ip是10.10.10.68且目的端口是80的数据包。

  1. 把抓取的数据包记录存到/tmp/fill文件中,当抓取100个数据包后就退出程序。

  1. 从/tmp/fill记录中读取tcp协议的数据包

  1. 从/tmp/fill记录中读取包含10.10.10.58的数据包

curl(发送请求)

也可以保存源码 用curl -O 文件名 url,这个和wget类似

显示网页头部信息 用-i,当然也会把网页信息显示出来

参数 -v可以显示通信的过程:

更详细的通信信息可以用 参数 --trance 文件名 url,具体信息保存到单独的文件中

htpp的动词,例如GET POST,PUT,DELETE等,需要参数 -X

curl默认的是get请求,如果发送POSt请求

发送表单的时候,GET很简单 只需要把数据拼接到url后面就行

POST也不难

POST发送请求的数据体可以用-d

使用-d参数以后,HTTP 请求会自动加上标头Content-Type : application/x-www-form-urlencoded。并且会自动将请求转为 POST 方法,因此可以省略-X POST。-d参数可以读取本地文本文件的数据,向服务器发送。

上面命令读取data.txt文件的内容,作为数据体向服务器发送。 文件上传: 假定文件上传的表单是下面这样:

curl上传就应该是:

--referer参数表示的是你从哪个页面来的

User Agent字段,这个字段表示的是客户端设备的信息,服务器可能会根据这个User Agent字段来判断是手机还是电脑

  • --user-agent 可以用-A或者-H来替代

  • --cookie参数,使用--cookie可以携带cookie信息

增加头部信息 --header

参考链接

https://www.jianshu.com/p/39b9d66c9dbf

https://www.toutiao.com/i6812988437512061452/ https://www.toutiao.com/i6850221908475003405/

最后更新于

这有帮助吗?