Linux中利用netstat命令查看网络状态 补充: IP地址是服务器在互联网中唯一的地址标识。 假设有一台阿里云服务器,我们通过IP地址可以找到它。 服务器中启动了Tomcat、FTP服务..., 当客户端访问服务器时,如何确定访问的是哪一个服务? 解: 端口就是用于网络通信的接口,是数据从传输层向上传递到应用层的数据通道。 每个常规服务都有默认的端口号,通过不同的端口号就可以访问不同服务。 总结: 客户端通过IP地址访问服务器,假设数据包访问的是80端口,则为Web服务。 若数据包访问的是21端口,则访问的是FTP服务。 即:客户端可以通过固定的端口访问指定的服务。 而我们可以通过在服务器中查看已经开启的端口号,就可以判断服务器中开启了那些服务。 1、netstat netstat是网络状态查看命令,可以查看到本机开启的端口及有哪些客户端连接。 2、命令格式 netstat [选项] 3、选项 -a:列出所有网络状态,包括Socket程序。 -c:秒数,指定每隔几秒刷新一次网络状态。 -n:使用IP地址和端口号显示,不使用域名与服务名。 -p:显示PID和程序名。 -t:显示使用TCP协议端口的连接状况。 -u:显示使用UDP协议端口的连接状况。 -I:仅显示监听状态的连接。 -r:显示路由表。 4、 案例 案例1、查看本机开启的端口 netstat -tuln 这里的选项-tuln是比较常用的方式。 Proto(协议): 一般就是 TCP 协议或者 UDP 协议。 Recv-Q(接收队列): 表示接收到的数据,已经在本地的缓冲中,但是还没有被进程取走。 Send-Q(发送队列) : 表示从本机发送,对方还没有收到的数据,依然在本地的缓冲中,不具备ACK标志数据包。 Local Address(本机IP地址及端口号): Foreign Address(远程主机IP地址及端口号) State(状态): -LISTEN:监听状态,只有TCP协议需要监听,而UDP协议不需要监听。 -ESTABLISHED:已经建立连接的状态。 -SYN_SENT:SYN发起包,就是主动发起连接的数据包。 -SYN_RECV:接收到主动连接的数据包。 -FIN_WAIT1:正在中断的连接。 -FIN_WAIT2:已经中断的连接,但是正在等待对方主机进行确认。 -TIME_WAIT:连接已经中断,但是套接字依然在网络中等待结束。 -CLOSED:套接字没有被使用。
案例2: netstat -tulnp 查看本机有哪些程序开启的端口
案例3: netstat -an 查看所有连接。
|