在Linux下配置TCP/IP( 九 )


要熟悉 route 其它的选项和参数 , 请输入 man route。

netstat 程序
如果管理任意规模的 TCP/IP 网络 , 则 netstat 程序是一个相当有价值的工具 。它可以显示内核路由表 , 活动网络连接的状态和每个已安装网络接口的一些有用的统计信息 。
象大多数 Linux 管理命令行程序一样 , netstat 可以通过其后面的附加选项或标志来选择所显示信息的细节数量和/或信息的范围 。一些常用选项有:
-a — 显示所有连接的信息 , 包括那些正在侦听的
-i — 显示所有已配置网络设备的统计信息
-c — 持续更新网络状态(每秒一次)直至被人为中止(^C)
-r — 显示内核路由表
-n — 以数字(原始)格式而不是已解析的名称显示远程和本地地址
-t — 仅显示 TCP 套接字信息(不包括任何 UCP 套接字信息)
-v — 显示 netstat 的版本信息
输入 man netstat 可获得所有可用标志的完整列表和详细说明每个标志的用途 。请注意还可以组合这些标志 , 所以输入 netstat -rn 将以原始的 IP 地址格式显示关于本地和远程主机(n)的系统路由表(r) 。
显示活动的网络连接
netstat 支持一组显示活动或非活动的套接字的选项:-t、-u、-w 和 -x 分别显示活动的 TCP、UDP、RAW 或 UNIX 套接字连接 。如果加上 -a 标志 , 还会显示等待连接的(换句话说 , 就是侦听)套接字 。这将为您显示现在正在系统上运行的所有服务器 。
例如:在主机 phoenix 上输入 netstat -ta 会显示下列内容:
[tom@phoenix tom]$ netstat -ta
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address Foreign Address State
tcp 0 40 phoenix.syroidmanor:ssh 192.168.1.5:1132 ESTABLISHED
tcp 0 0 *:ssh *:* LISTEN
tcp 0 0 phoenix.syroidmano:1028 hydras.syro:netbios-ssn ESTABLISHED
tcp 0 0 phoenix.syroidmano:1027 raidserver:netbios-ssn ESTABLISHED
tcp 0 0 *:printer *:* LISTEN
tcp 0 0 *:auth *:* LISTEN
tcp 0 0 *:1024 *:* LISTEN
tcp 0 0 *:sunrpc *:* LISTEN
上述输出显示大多数的服务器仅仅在等待到来的连接(LISTEN) 。但是 , 第一行显示主机 phoenix 和 IP 地址为 192.168.1.5 之间的连接;第三和第四行显示两个 netbios 连接(Samba SMB 共享) 。
用 netstat 查看路由表
当使用 -r 标志时 , netstat 显示内核中的路由表 , 这类似于输入 /sbin/route :
[tom@phoenix tom]$ netstat -nr
Kernel IP routing table
Destination Gateway Genmask Flags MSS Window irtt Iface
192.168.1.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0
127.0.0.0 0.0.0.0 255.0.0.0 U 0 0 0 lo
0.0.0.0 192.168.1.1 0.0.0.0 UG 0 0 0 eth0
-n 选项强制 netstat 以点分四组 IP 数字的形式 , 而不是主机和网络名称的形式输出地址 。当您不想通过网络(例如 , 用 DNS 或 NIS 服务器)进行地址查询时 , 这个选项特别有用 。
第二列显示路由项中所指向的网关 。如果没有使用网关 , 就会显示星号 。第三列是路由的网络掩码 。内核在将信息包的 IP 地址与路由的目的地 IP 地址进行比较之前 , 将 Genmask 值与信息包的 IP 地址逐位进行“与”操作 , 从而使路由“通用化” 。
第四列显示路由的标志:U 表示处于活动状态 , H 表示主机 , G 表示网关 , D 表示动态路由 , 而 M 表示已经修改过 。
用 netstat 查看路由表 , 续
[tom@phoenix tom]$ netstat -nr
Kernel IP routing table
Destination Gateway Genmask Flags MSS Window irtt Iface
192.168.1.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0
127.0.0.0 0.0.0.0 255.0.0.0 U 0 0 0 lo
0.0.0.0 192.168.1.1 0.0.0.0 UG 0 0 0 eth0
接下来的三列显示 MSS、Window 和 irtt , 它们将被应用于通过该路由建立的 TCP 连接 。MSS(Maximum Segment Size)表示“最大分段尺寸” , 也是内核所构建以通过该路由发送的数据报的最大尺寸 。Window 表示系统一次从远程主机接收突发的最大量数据 。

推荐阅读