如今的计算机是离不开网络的计算机了,因而我们对网络要有一基础的认识。连不上网,程序运行不正常之类的,多少都与网络有关。本文将介绍常用的工具。
网络出问题 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 来保存刚刚修改的规则。