文章目录
NFS 服务端 IP:192.168.199.196
NFS 客户端 IP:192.168.199.174
一、用 Wireshark
抓包 挂载 NFS
Wireshark
设置过滤 portmap || mount || nfs
在客户端运行:
sudo mount -t nfs 192.168.199.196:/home/ubuntu/Share /mnt/nfs/
1. 客户端找到服务器的 portmap
进程,向它查询 NFS
进程的端口号。
portmap
的功能是维护一张进程与端口号的对应关系表,而它自己的端口号为 111
2. 尝试连接
客户端:尝试NFS
进程能否连上
服务器:收到了,能连上
3. 查找 mount
端口
同样通过
portmap
客户端:我想连接你的 mount
服务,应该用哪个端口啊?
服务端:我的 mount
端口号是 1234
4. 挂载
客户端:我要挂载 /home/ubuntu/Share
服务器:查找中
。。。。。。
服务器:你的请求被批准了。以后请用 file handle 0x3f1e960e
来访问本目录
二、查看网络分层
基于 NFS 操作
- 应用层
由于 NFS 是基于 RPC的协议,所以
Wireshark
把它分成 NFS 和 RPC 两行来显示。这一层值专注于文件操作,比如读或者写,而对于数据传输一无所知。这里可以看到这个写操作的详情,比如用户的 UID、文件的 file handle 和要写的字节数等。
- 传输层
TCP
协议,应用层所产生的数据就是由TCP
来控制传输的。
可以看到,Seq
号和Ack
号等一系列信息,它们用于网络包的排序、重传、流量控制等。
它并不是把网络包从一个设备传到另一个,而只是对传输行为进行控制。
- 网络层
主要任务:是把
TCP
层传下来的数据加上目标地址和源地址。
- 网络接口层
从中可以看到相邻两个设备的 MAC 地址。
三、资料
《Wireshark 网络分析就这么简单》