常用网络工具 ipconfig arp traceroute

如今的计算机是离不开网络的计算机了,因而我们对网络要有一基础的认识。连不上网,程序运行不正常之类的,多少都与网络有关。本文将介绍常用的工具。

网络出问题 ipconfig ping

网络连不上,首先要看看网络的配置是否正确。一般使用 ipconfig 来查看当前各个网卡的工作状态:

C:\>ipconfig

Windows IP Configuration

Wireless LAN adapter 无线网络连接:

   Connection-specific DNS Suffix  . :
Link-local IPv6 Address . . . . . : fe80::7ddd:aa0c:a65a:67d3%12
IPv4 Address. . . . . . . . . . . : 192.168.1.100
Subnet Mask . . . . . . . . . . . : 255.255.255.0
Default Gateway . . . . . . . . . : 192.168.1.1 Ethernet adapter 本地连接: Media State . . . . . . . . . . . : Media disconnected
Connection-specific DNS Suffix . :

通过这一最简单的信息,可以得知当前的计算机是 192.168.1.0 网段中的 100 号机器。该网段中,1 号机器是网关。

注:掩码&网址 即 255.255.255.0 & 192.168.1.100 = 192.168.1.0 得到网段。

确定当前机器在正确的网段,并且网关都正确了。就要使用 ping 命令:

C:\>ping www.sina.com.cn

Pinging ara.sina.com.cn [58.63.236.34] with 32 bytes of data:
Reply from 58.63.236.34: bytes=32 time=42ms TTL=56
Reply from 58.63.236.34: bytes=32 time=52ms TTL=56
Reply from 58.63.236.34: bytes=32 time=52ms TTL=56
Reply from 58.63.236.34: bytes=32 time=49ms TTL=56 Ping statistics for 58.63.236.34:
Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),
Approximate round trip times in milli-seconds:
Minimum = 42ms, Maximum = 52ms, Average = 48ms

ping 命令实际上就是发出一定的数据出去,看目标机器是否能够响应,响应要多久时间。

跟踪路由 route tracert

通过 route 命令可以查看/修改计算机的路由表。计算机依据路由表来将数据发送给其它目标。

C:\>route print -4

IPv4 Route Table
===========================================================================
Active Routes:
Network Destination Netmask Gateway Interface Metric
0.0.0.0 0.0.0.0 192.168.1.1 192.168.1.100 30
127.0.0.0 255.0.0.0 On-link 127.0.0.1 306
127.0.0.1 255.255.255.255 On-link 127.0.0.1 306
127.255.255.255 255.255.255.255 On-link 127.0.0.1 306
192.168.1.0 255.255.255.0 On-link 192.168.1.100 286
192.168.1.100 255.255.255.255 On-link 192.168.1.100 286
192.168.1.255 255.255.255.255 On-link 192.168.1.100 286

通过 tracert 命令可以跟踪网络,查看当前机器通过哪条线路连接到目标机器的。

C:\>tracert www.sina.com.cn

Tracing route to ara.sina.com.cn [58.63.236.46]
over a maximum of 30 hops: 1 60 ms 49 ms 32 ms 218.18.112.1
2 58 ms 33 ms 55 ms 218.18.112.1
3 47 ms 56 ms 41 ms 113.106.43.165
4 46 ms 70 ms 37 ms 119.145.45.205
5 41 ms 42 ms 35 ms 121.15.141.181
6 43 ms 39 ms 44 ms 113.108.208.102
7 55 ms 40 ms 67 ms 113.108.209.130
8 84 ms 40 ms 51 ms 58.63.232.197
9 53 ms 39 ms 52 ms 58.63.236.46 Trace complete.

查看物理地址 arp ipconfig

通过使用 ipconfig /all 可以查看到各个网卡的物理地址。通过 arp

C:\>ipconfig /all

Wireless LAN adapter 无线网络连接:

   Connection-specific DNS Suffix  . :
Description . . . . . . . . . . . : Broadcom 802.11g Network Adapter
Physical Address. . . . . . . . . : 00-24-00-C2-8D-F0
DHCP Enabled. . . . . . . . . . . : Yes
Autoconfiguration Enabled . . . . : Yes
Link-local IPv6 Address . . . . . : fe80::7ddd:aa0c:a65a:67d3%12(Preferred)
IPv4 Address. . . . . . . . . . . : 192.168.1.100(Preferred)
Subnet Mask . . . . . . . . . . . : 255.255.255.0
Lease Obtained. . . . . . . . . . : 2012?10?25? 20:08:32
Lease Expires . . . . . . . . . . : 2012?10?26? 1:08:31
Default Gateway . . . . . . . . . : 192.168.1.1
DHCP Server . . . . . . . . . . . : 192.168.1.1
DHCPv6 IAID . . . . . . . . . . . : 218112256
DHCPv6 Client DUID. . . . . . . . : 00-01-00-01-14-E7-E7-A8-00-23-5A-35-E3-E3
DNS Servers . . . . . . . . . . . : 202.96.128.166
202.96.134.133
NetBIOS over Tcpip. . . . . . . . : Enabled

通过 arp 命令可以查看到目前本机上知道的 IP 与主机物理地址的对应关系

C:\>arp -a

Interface: 192.168.1.100 --- 0xc
Internet Address Physical Address Type
192.168.1.1 00-25-86-fc-3b-04 dynamic

arp 欺骗,是指将 IP 与物理地址的对应关系改变,让计算机找不到目标主机的真实物理机器。

抓包 windump

windump 是一个抓包命令,可以抓取 TCP/IP 的数据包,以便于分析传输的数据。windows 下默认不带该命令,可以下载 tcpdump

# 查看当前所有的网络接口(网卡)
windump -D
# 打印目标 tcp 端口为 80 的数据,0x0050 是 80
windump -i 3 tcp[2:2] == 0x0050
windump -i 3 tcp[2:2] == 80
windump -i 3 tcp dst port 80
# 打印所有的数据(默认只打印部分)
windump -xs 0 -i 3 host www.1si2.com and tcp port 80
# 打印数据到 d:/aaa 文件中(可以使用 wireshark 分析)
windump -w d:/aaa -xs 0 -i 3 host www.1si2.com and tcp port 80
# 打印数据时,只打印 IP 地址,不打印域名:
windump -n -i 3 host www.1si2.com and tcp port 80

在分析 HTTP 数据时,如果数据使用 gzip 压缩,数据以 1F8B 开头,可以以此来取出数据解压。

linux 系统

linux 系统也有对应的工具:ifconfig ping route traceroute arp tcpdump

在 linux 系统下,有一个防火墙 iptables 服务。其命令格式如下:

iptables -t 表 操作 链 规则描述

iptables 有四个表:

  • filters 默认过滤表,包含 INPUT, FORWARD, OUTPUT 三个链,分别过滤输入,处理,输出三个过程中的数据
  • nat
  • mangle
  • raw

有以下主要操作:

  • -A 添加
  • -D 删除
  • -R 替换
  • -I 插入
  • -L 列表

规则定义包括以下:

  • [!] -p 协议。包括 tcp, udp, icmp, all 等
  • [!] -s 源地址及掩码。如:192.168.1.0/24, 192.168.1.100
  • [!] -d 目标地址及掩码。
  • [!] -i 输入数据的网络接口卡
  • [!] -o 输出数据的网络接口卡
  • -j 满足规则后,执行的操作

举例如下:

# 禁止 192.168.1.0 子网的机器访问 TCP 22(SSH) 端口
iptables -I INPUT -s 192.168.1.0/24 -p tcp --dport 22 -j DROP
# 删除第1条规则
iptables -D INPUT 1
# 列表所有规则
iptables -L

与 iptables 相关的配置文件是 /etc/sysconfig/iptables,在 RH 下可以通过 service iptables save 来保存刚刚修改的规则。

上一篇:认识Activity,创建第一个android应用-Hello Word


下一篇:ARP报文发送的可视化实现