文章目录
1. write
给指定的用户发消息。
语法:write 用户名
Ctrl + D 保存退出。
2. wall
wall 是 write all 的简写。给所有人发消息。
语法:wall 消息内容
按回车键发送消息。
3. ping
ping 命令用来测试网络连通性。
语法:ping [-c n] IP地址
如果直接在 ping 命令后加 IP 地址,Linux 会一直发送网络请求包,除非你按 Ctrl + C 退出。如果想指定 ping 命令的请求次数,可以加 -c 数字
选项,指定 ping 命令的请求次数。
比如:
ping -c 4 192.168.1.23
4. ifconfig
查看和设置网卡信息
直接在 Linux 中输入 ifconfig
,然后回车,可以查看网卡信息,包括本机 IP 地址和 MAC 地址。
上图中的 lo 表示回环网卡,eth0 表示真实网卡,只有真实网卡才能用来上网。
如果想设置本机 IP 地址,可以使用如下语法:
ifconfig 网卡名称 IP地址
例如:
ifconfig eth0 192.168.1.23 #将本机IP地址设置为192.168.1.23
5. mail
5.1 发送邮件
如果想给某个用户发消息,输入 mail 用户名
就会进入邮件发送界面,首先会让你输入标题,标题输完之后按回车,输入内容,最后按 Ctrl + D 保存发送。
如图所示,我用 supermouse 用户给 root 用户发了一封标题为 Hello 的邮件,内容是:「Hello! I am supermouse. Good morning!」
5.2 查看邮件
系统收到邮件后并不会提示用户,需要用户主动去查看。直接在系统中输入 mail
命令即可查看邮件。
以 root 用户为例
红框中显示的就是邮件列表,目前只有一封邮件,开头的 N 表示该邮件未读。「1」表示邮件的序号,「supermouse@localhost」是该邮件的发送人,接下来是发送时间,最后那个「“Hello”」是邮件标题。
这时你进入的是邮件程序,可以输入一些指令操作邮件。比如:
- help —查看帮助信息
- 输入邮件序号然后回车 —查看邮件内容
d 邮件序号
—删除对应的邮件- h —查看邮件列表
- q —退出
6. last
查看系统用户的登录日志。
7. lastlog
显示每个用户的最后一次的登录信息。
如果只想查看某个用户最后一次的登录信息,可以用选项 -u
last -u supermouse #查看supermouse最后一次的登录信息
8. traceroute
查看访问另一台主机都经过了哪些路由节点。
用法:traceroute IP地址或域名
比如:traceroute www.baidu.dom
,查看访问百度都经过了哪些路由节点。
9. netstat
netstat 命令是用来查看网络状态的,常用的选项如下:
- -t TCP 协议
- -u UDP 协议
- -l 监听
- -r 路由
- -n 显示 IP 地址和端口号
- -p 显示 进程ID 和程序名称
- -x 显示 UNIX 域的套接字
常用的组合选项:
netstat -tlun #查看本机监听的端口
netstat -an #查看本机所有的网络连接
netstat -rn #查看本机路由表
10. lsof
使用 lsof 可以快速找到占用某个端口的进程,使用方式如下:
lsof -i :22
执行效果如下:
11. 抓包利器 tcpdump
图形化的抓包神器 Wireshark 想必大家都不陌生了,但是如果是想在服务器上进行抓包,Wireshark 可能就没有用武之地了。但是不用担心,tcpdump 就是一款字符界面的抓包程序,而且它的功能丝毫不比 Wireshark 弱。
tcpdump 有非常强大的过滤和匹配功能,比如指定网卡:
tcpdump -i eth0
再比如指定来源:
tcpdump src host hostname
再来一个复杂一点的例子。这里抓的包是 TCP,且端口是 80,包来自 IP 地址为 192.168.1.25 的主机地址。
tcpdump 'tcp and port 80 and src host 192.168.1.25'
如果我们对 TCP 协议非常熟悉,还可以写出这样的 tcpdump 命令:
tcpdump 'tcp and port 80 and tcp[13:1]&2 != 0'
这里 tcp[13:1] 表示的是 TCP 头部开始处偏移为 13 的字节,如果这个值为 2,说明设置了 SYN 分节,当然,我们也可以设置成其他值来获取希望类型的分节。注意,这里的偏移是从 0 开始算起的,tcp[13] 其实是报文里的第 14 个字节。
tcpdump 在开启抓包的时候,会自动创建一个类型为 AF_PACKET 的网络套接口,并向系统内核注册。当网卡接收到一个网络报文之后,它会遍历系统中所有已经被注册的网络协议,包括其中已经注册了的 AF_PACKET 网络协议。系统内核接下来就会将网卡收到的报文发送给该协议的回调函数进行一次处理,回调函数可以把接收到的报文完完整整地复制一份,假装是自己接收到的报文,然后交给 tcpdump 程序,进行各种条件的过滤和判断,再对报文进行解析输出。
下面这张图显示的是 tcpdump 的输出格式:
首先我们看到的是时间戳,之后类似 192.168.33.11.41388 > 192.168.33.11.6443 这样的,显示的是源地址(192.168.33.11.41388)到目的地址(192.168.33.11.6443);然后 Flags [ ] 是包的标志,[P] 表示是数据推送,比较常见的包格式如下:
- [S]:SYN,表示开始连接
- [.]:没有标记,一般是确认
- [P]:PSH,表示数据推送
- [F]:FIN,表示结束连接
- [R] :RST,表示重启连接
我们可以看到最后有几个数据,它们代表的含义如下:
- seq:包序号,就是 TCP 的确认分组
- cksum:校验码
- win:滑动窗口大小
- length:承载的数据(payload)长度 length,如果没有数据则为 0
tcpdump 还可以对每条 TCP 报文的细节进行显示,让我们可以看到每条报文的详细字节信息。这在对报文进行排查的时候很有用。
tcpdump 的输出信息还可以导出成 pcap 格式的文件,然后导入 Wireshark,便于分析报文。要想导出 pcap 格式的文件,只需在 tcpdump 命令后面加上 -w 文件路径
即可,比如:
tcpdump 'tcp and port 8080' -w dump.pcap
12. mount
mount 是挂载命令,挂载前需要读入光盘文件,然后创建一个目录,作为设备的挂载点。
mount -t iso9660 /dev/sr0 /mnt/cdrom
其中,「/dev/sr0」是设备名,是固定的,「/mnt/cdrom」是我们自己创建的目录,而「-t iso9660」可以忽略。
所以挂载设备的命令可以写成:
mount /dev/sr0 /mnt/cdrom
然后进入 /mnt/cdrom
可以就可以看到设备中的文件了:
弹出设备可以用如下命令:
umount /dev/sr0
注意:弹出之前要退出设备的目录。
参考链接: