常用网络工具 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 来保存刚刚修改的规则。