本文的重点是弄清楚netstat指令中每一列的含义
而在这个过程中,顺便记录一些网络指令(比如ipconfig,tracert,arp,netstat,tasklist)以及一些网络概念(比如localhost,loopback,和0.0.0.0 的区别),整理一下也算是一个回顾。
1.IPConfig
用的最多的一个指令,主要是为了看ip地址(如下显示的是内网的地址,还有一个对应的外网地址,tracert会提到)。
ip就是网络地址:一个ip应该唯一标识一个接口
(而不是唯一标识一台电脑。电脑有几个网卡就有几个ip地址,比如一些笔记本有2个网卡,无线网卡和有线网卡,可以同时启用有线网卡和无线网卡,同时有两个ip地址。)
2.tracert
用来追踪数据包的路由,经过了哪些节点。(也就是节点跳到哪里了)
命令行输入:
tracert www.baidu.com
如果通过百度搜索 ip 查到的外网ip 与上述tracert的不一样,原因:为什么用IP查询网查询的自己的外网IP和用tracert命令查询的自己的出口IP不一样?
(这两个IP显然都是公网IP,前者查到的是Web服务器上“看”到的IP,而Tracert查到的大概是你的电脑所联接的第一个公网IP,它是将你的电脑联上互联网的第一个服务员。总的来说,你上网是ISP提供的,他用某个公网IP与你连接,为你搭桥,最终通过另一个IP具体与网络上的各服务器通讯,中间是有一个“管道”的,要知道ISP要同时为很多人联网互务,这中间有一个动态的IP资源按排的问题。并非只是一个简单的网关作用。)
3.arp
可以看到跟自己在同一个网络内的主机。
arp -a
4.netstat
使用 netstat 命令查看网络连接情况
netstat -anp
参数解释:
- -a 显示所有选项
- -t (tcp)仅显示tcp相关选项
- -u (udp)仅显示udp相关选项
- -n 拒绝显示别名,能显示数字的全部转化成数字。
- -p 显示建立相关链接的程序名
关键列解释:
Proto 表示协议类型
LocalAddress 表示本地地址
ForeignAddress 表示对端地址
State 表示状态(对于 TCP 有效, UDP 没有状态概念)
PID/Program name 表示对应的进程 id 和进程名
State状态 - LISTENING:正在监听
- ESTABLISHED:连接已建立
- CLOSE_WAIT :等待关闭
- TIME_WAIT:等待超时
- SYNC_SENT:发送了连接请求
- SYNC_RECEIVED:已经收到对方的连接建立请求
理解:本地地址和外部地址就相当于一次连接,外部的请求地址和本机地址建立起了tcp或者udp或者别的连接,或者在等待连接,或者连接中断,或者连接进行中。
由于 netstat 命令打印的结果较多, 通常需要搭配 grep 命令来使用。
1) 查看 8080 端口被哪个进程占用
netstat -anp | grep 8080
2) 查看进程名为 mysql 的进程都有哪些连接
netstat -anp | grep mysql
5.Telnet
telnet ip port
Telnet协议是TCP/IP协议家族中的一员,是Internet远程登陆服务的标准协议和主要方式。
最简单的常用功能—— 测试某个主机的某个端口是否可以联通。
(
可以联通的前提是,这个端口得开着。
所以在某个主机上netstat -ano 看看是不是这个端口在监听着
)
打开 telnet 服务——在 控制面板-程序-启动或关闭windows功能 中开启,否则在命令行窗口输入 telnet 会提示找不到命令 。
命令——telnet ip地址 端口号 注意是空格端口号(查看某些端口是否打开 用 netstat -ano|findstr LIST )
远程连接上以后黑屏 输入东西不显示————按Ctrl+]键 ,再按回车,然后输入就有正常显示了