Windows下的netstat和nbtstat
发表于:2007-05-25来源:作者:点击数:
标签:
我的一些心理话:我写这些文章并不是给高手看的,而是发现现在刚学计算机的人都是从Win95或Win98的傻瓜模式开始的,然而要真正学会使用计算机,这些基本命令却是非常重要的,所以我把这些整理在一起,供大家一起学习。同时,由于我水平有限,当中也免不了有
我的一些心理话:我写这些文章并不是给高手看的,而是发现现在刚学计算机的人都是从Win95或Win98的傻瓜模式开始的,然而要真正学会使用计算机,这些基本命令却是非常重要的,所以我把这些整理在一起,供大家一起学习。同时,由于我水平有限,当中也免不了有一些错误,还请看了我的文章的各位高手多提意见。
netstat和nbtstat可以说都是
Windows下的
网络检测工具,他们的输入形式很相似而且都是需要在安装了TCP/IP协议以后才可以使用的,但两者的功能却不同。首先我们来看看netstat这个命令:
C:\>netstat
-h
Displays
protocol
statistics
and
current
TCP/IP
network
connections.
显示协议统计和当前的
TCP/IP
网络连接。
NETSTAT
[-a]
[-e]
[-n]
[-s]
[-p
proto]
[-r]
[interval]
-a
Displays
all
connections
and
listening
ports.
显示所有连接和侦听端口。
此命令可以显示出你的计算机当前所开放的所有端口,其中包括TCP端口和UDP端口。有经验的管理员会经常的使用它,以此来查看计算机的系统服务是否正常,是否被“黑客”留下后门,木马等。比如说我就有一个习惯,在刚刚装了系统配置好
服务器以后我就会运行一下netstat
-a看看系统开放了什么端口,并记录下来,以便以后作为参考使用,当发现有不明的端口时就可以及时的做出对策。由于这个参数同时还会显示出当前计算机有什么人的IP正连接着你的服务器,所以也是一种实时
入侵检测工具,如发现有个IP连接着不正常的端口,你也可以及时做出有效对策。示例:
C:\>netstat
-a
Active
Connections
Proto
Local
Address
Foreign
Address
State
TCP
iceblood:ftp
iceblood.yofor.com:0
LISTENING
TCP
iceblood:telnet
iceblood.yofor.com:0
LISTENING
TCP
iceblood:smtp
iceblood.yofor.com:0
LISTENING
TCP
iceblood:http
iceblood.yofor.com:0
LISTENING
TCP
iceblood:https
iceblood.yofor.com:0
LISTENING
………………
TCP
iceblood:1171
iceblood.yofor.com:3306
ESTABLISHED
TCP
iceblood:ms-sql-s
iceblood.yofor.com:0
LISTENING
TCP
iceblood:3306
iceblood.yofor.com:1171
ESTABLISHED
………………
UDP
iceblood:ms-sql-m
*:*
UDP
iceblood:4000
*:*
UDP
iceblood:4001
*:*
UDP
iceblood:4002
*:*
从上面的情况就可以知道我的计算机现在开放的TCP端口有ftp(21),telnet(23),smtp(25),http(80),https(443),1171连接着自己的
mysql(3306),ms-sql-s(1433),UDP端口有ms-sql-m(1433),4000-4002都是我的OI
CQ。:P
-e
Displays
Ethernet
statistics.
This
may
be
combined
with
the
-s
option.
显示以太网统计。该参数可以与
-s
选项结合使用。
这个参数正如所说的,将在下面再跟大家说。
-n
Displays
addresses
and
port
numbers
in
numerical
form.
以数字格式显示地址和端口号(而不是尝试查找名称)。
大家如果只输入netstat的话就会看见如下类似的结果:
C:\>netstat
Active
Connections
Proto
Local
Address
Foreign
Address
State
TCP
iceblood:1171
iceblood.yofor.com:3306
ESTABLISHED
TCP
iceblood:3306
iceblood.yofor.com:1171
ESTABLISHED
TCP
iceblood:1219
202.109.72.40:6667
ESTABLISHED
TCP
iceblood:3566
SERVER-2:microsoft-ds
ESTABLISHED
你会发现这些和netstat
-a有相同的地方,只不过netstat可以很清楚的列举出来当前和你连接的所有计算机,在Local
Address和Foreign
Address里你也发现大多数给出的只是计算机NetB
ios名,却还是不知道当前和你连接的IP,但如果你加上-n参数就不同了,示例如下:
C:\>netstat
-n
Active
Connections
Proto
Local
Address
Foreign
Address
State
TCP
127.0.0.1:1171
127.0.0.1:3306
ESTABLISHED
TCP
127.0.0.1:3306
127.0.0.1:1171
ESTABLISHED
TCP
192.168.1.21:1219
202.109.72.40:6667
ESTABLISHED
TCP
192.168.1.21:3566
192.168.1.3:445
ESTABLISHED
TCP
192.168.1.21:3577
202.107.208.187:110
TIME_WAIT
TCP
192.168.1.21:3578
192.168.1.24:445
ESTABLISHED
看!是不是很明了了?对方的IP全部都出来了。其实-n参数其实也就是告诉netstat不解析对方计算机的NetBios名。
-p
proto
Shows
connections
for
the
protocol
specified
by
proto;
proto
may
be
TCP
or
UDP.
If
used
with
the
-s
option
to
display
per-protocol
statistics,
proto
may
be
TCP,
UDP,
or
IP.
显示由
protocol
指定的协议的连接;protocol
可以是
tcp
或
udp。如果与
-s
选项一同使用显示每个协议的统计,protocol
可以是
tcp
udp、icmp
或
ip。
这个参数你可以指定查看什么协议的连接状态,比如我想查看当前计算机正在连接的所有TCP端口,示例如下:
C:\>netstat
-p
tcp
Active
Connections
Proto
Local
Address
Foreign
Address
State
TCP
iceblood:1171
iceblood.yofor.com:3306
ESTABLISHED
TCP
iceblood:3306
iceblood.yofor.com:1171
ESTABLISHED
TCP
iceblood:1219
202.109.72.40:6667
ESTABLISHED
…………
-r
Displays
the
routing
table.
显示路由表的内容。
这个没有特别的,可以输入netstat
-r以后自己研究。
-s
Displays
per-protocol
statistics.
By
default,
statistics
are
shown
for
TCP,
UDP
and
IP;
the
-p
option
may
be
used
to
specify
a
subset
of
the
default.
显示每个协议的统计。默认情况下,显示
TCP、UDP、ICMP
和
IP
的统计。-p
选项可以用来指定默认的子集。
这个参数让我们来配合-e来使用。
C:\>netstat
-s
-e
Interface
Statistics
Received
Sent
Bytes
505385542
41745793
Unicast
packets
150106
150547
Non-unicast
packets
313008
807
Discards
0
0
Errors
0
0
Unknown
protocols
327149
IP
Statistics
Packets
Received
=
379906
Received
Header
Errors
=
0
Received
Address
Errors
=
215043
Datagrams
Forwarded
=
0
Unknown
Protocols
Received
=
0
Received
Packets
Discarded
=
0
Received
Packets
Delivered
=
166002
Output
Requests
=
151620
Routing
Discards
=
0
Discarded
Output
Packets
=
0
Output
Packet
No
Route
=
0
Reassembly
Required
=
0
Reassembly
Su
clearcase/" target="_blank" >ccessful
=
0
Reassembly
Failures
=
0
Datagrams
Successfully
Fragmented
=
0
Datagrams
Failing
Fragmentation
=
0
Fragments
Created
=
0
TCP
Statistics
Active
Opens
=
1556
Passive
Opens
=
1
Failed
Connection
Attempts
=
4
Reset
Connections
=
143
Current
Connections
=
4
Segments
Received
=
141243
Segments
Sent
=
140462
Segments
Retransmitted
=
477
UDP
Statistics
Datagrams
Received
=
15125
No
Ports
=
9634
Receive
Errors
=
0
Datagrams
Sent
=
10628
看!嘿嘿!你的网络基本状态都在这里面,比如你接受了多少数据包,多少字节,有多少TCP端口打开,有多少UDP端口打开,太丰富了……这些就留给各位高手自己慢慢琢磨去了。
interval
Redisplays
selected
statistics,
pausing
interval
seconds
between
each
display.
Press
CTRL+C
to
stop
redisplaying
statistics.
If
omitted,
netstat
will
print
the
current
configuration
information
once.
重新显示所选的统计,在每次显示之间暂停
interval
秒。按
CTRL+B
停止重新显示统计。如果省略该参数,netstat
将打印一次当前的配置信息。
这个就是自己定义检查网络状况的时间的参数,比如我想每过10秒检查一次我的计算机当前TCP连接的状态你就输入netstat
10
-p
tcp这样netstat就会每过10秒就把你所有的TCP端口检查一次。
好了,netstat命令的介绍就到此基本完了,其实关键是要看自己怎么去灵活的使用了。我们再来看看nbtstat
C:\>nbtstat
Displays
protocol
statistics
and
current
TCP/IP
connections
using
NBT
(NetBIOS
over
TCP/IP).
该诊断命令使用
NBT(TCP/IP
上的
NetBIOS)显示协议统计和当前
TCP/IP
连接。
NBTSTAT
[
[-a
RemoteName]
[-A
IP
address]
[-c]
[-n]
[-r]
[-R]
[-RR]
[-s]
[-S]
[interval]
]
-a
(adapter
status)
Lists
the
remote
machine's
name
table
given
its
name
使用远程计算机的名称列出其名称表。
此参数可以通过远程计算机的NetBios名来查看他的当前状态。示例
C:\>nbtstat
-a
iceblood
本地连接:
Node
IpAddress:
[192.168.1.2]
Scope
Id:
[]
NetBIOS
Remote
Machine
Name
Table
Name
Type
Status
---------------------------------------------
ICEBLOOD
<00>
UNIQUE
Registered
WORK
<00>
GROUP
Registered
ICEBLOOD
<20>
UNIQUE
Registered
WORK
<1E>
GROUP
Registered
ICEBLOOD
<03>
UNIQUE
Registered
ICEBLOOD$
<03>
UNIQUE
Registered
LIU_ICEBLOOD
<03>
UNIQUE
Registered
MAC
Address
=
00-D0-09-52-91-DC
看见了?从上面就可以知道我的计算机当前计算机的NetBios名为iceblood属于work组或域,当前有liu_iceblood登陆的该计算机,嘿嘿~全都出来了。当然你也可以把计算机名换为IP也就是netstat
-a
192.168.1.21,效果和上面的一样。这就有点像
UNIX/
Linux的finger了,如果你经常去netstat
-a一台NT主机,你也可以收集到一些对方计算机中的用户列表了。
-A
(Adapter
status)
Lists
the
remote
machine's
name
table
given
its
IP
address.
使用远程计算机的
IP
地址并列出名称表。
这个和-a不同的是就是这个只能使用IP,其实-a就包括了-A的功能了,我也不再介绍。
-c
(cache)
Lists
NBT's
cache
of
remote
[machine]
names
and
their
IP
addresses
给定每个名称的
IP
地址并列出
NetBIOS
名称缓存的内容。
这个参数表示的是在你的NetBIOS里缓存的你连接过的计算机的IP。示例:
C:\>nbtstat
-c
本地连接:
Node
IpAddress:
[192.168.1.21]
Scope
Id:
[]
NetBIOS
Remote
Cache
Name
Table
Name
Type
Host
Address
Life
[sec]
------------------------------------------------------------
WORK
<20>
UNIQUE
192.168.1.20
597
从上面就可以知道你刚刚和IP为192.168.1.20的计算机的NetBIOS连接过。而这个命令也提供给了“黑客”在入侵了对方的主机以后进而入侵到内部网的一个有利的线索。因为NetBIOS的Cache里储存的IP是对方已经信任你的计算机的IP。聪明的“黑客”当然也会从这个方便的地方入手了。
-n
Lists
local
NetBIOS
names.
列出本地
NetBIOS
名称。
此参数和netstat
-a类似,只是这个是检查本地的,如果把netstat
-a后面的IP换为自己的就和netstat
-n的效果是一样的了。
-r
Lists
names
resolved
by
broadcast
and
via
WINS
列出
Windows
网络名称解析的名称解析统计。在配置使用
WINS
的
Windows
2000
计算机上,此选项返回要通过广播或
WINS
来解析和注册的名称数。
这个正如上面所说的,列出当前Windows
网络名称解析的名称解析统计。
-R
Purges
and
reloads
the
remote
cache
name
table
清除
NetBIOS
名称缓存中的所有名称后,重新装入
Lmhosts
文件。
这个参数就是清除netstat
-c所能看见的Cache里的IP缓存的。
-S
Lists
sessions
table
with
the
destination
IP
addresses
显示客户端和服务器会话,只通过
IP
地址列出远程计算机。
此参数可以查看计算机当前正在会话的NetBIOS。示例:
C:\>nbtstat
-S
本地连接:
Node
IpAddress:
[192.168.1.21]
Scope
Id:
[]
NetBIOS
Connection
Table
Local
Name
State
In/Out
Remote
Host
Input
Output
----------------------------------------------------------------------------
ICEBLOOD
<00>
Connected
Out
192.168.1.22
8MB
316KB
ICEBLOOD
<03>
Listening
ICEBLOOD$
<03>
Listening
LIU_ICEBLOOD
<03>
Listening
从上面就可以知道我的计算机现在正在和192.168.1.22进行会话,看得出是在复制文件,而且是从对方往自己的计算机里复制。通过以上参数所看到的信息到了“黑客”的手中也是非常重要的线索了。
-s
Lists
sessions
table
converting
destination
IP
显示客户端和服务器会话。尝试将远程计算机
IP
地址转换成使用主机文件的名称。
此参数和-S差不多,只是这个会把对方的NetBIOS名给解析出来。
-RR
(ReleaseRefresh)
Sends
Name
Release
packets
to
WINs
and
then,
starts
Refresh
释放在
WINS
服务器上注册的
NetBIOS
名称,然后刷新它们的注册。
interval
Redisplays
selected
statistics,
pausing
interval
seconds
between
each
display.
Press
Ctrl+C
to
stop
redisplaying
statistics.
重新显示所选的统计,在每次显示之间暂停
interval
秒。按
CTRL+B
停止重新显示统计。如果省略该参数,netstat
将打印一次当前的配置信息。
此参数和netstat的一样,nbtstat的是配合-s和-S一起使用的。
好了,netstat和nbtstat的所有使用方法都已经基本全部说完了,希望在看了这篇文章的高手当中能帮我指出一些错误。
声明:此文全部内容由iceblood本人收集或原创,版权归iceblood所有,如要转载或修改请务必通知我并注明出处,我的E-Mail为
icelbood@yeah.net
原文转自:http://www.ltesting.net
|