Shell Script网络相关-ifconfig,route,netstat

网络上每一个节点都需要分配多个参数才能够与其他主机实现互联,这些参数包括子网掩码、网管、路由、端口、DNS等。接下来先学习ifconfig, route, nslookup以及host等命令。

(1)ifconfig命令用于显示网络接口、子网掩码等消息信息。在每个系统中,默认都有一个称为环回接口的lo,这个接口指向当前主机本身。

(2)打印网络接口列表

其中cut命令提取每一行的前4个字符tr -d ‘ ‘删除每一行的所有空格tr -s ‘\n’压缩重复的换行符

(3)IP地址的分配于显示

使用命令ifconfig eth0查看eth0接口的信息时,我们往往只关心该接口的IP地址、广播地址、硬件地址和子网掩码。比如,使用如下命令提取IP地址:

注意,egrep -o “inet [^ ]*”的中括号内有一个空格,表示匹配从inet开始的第一个无空格的一个结果。即匹配到inet 11.133.198.209

(4)要设置eth0的IP地址,或子网掩码,可以使用(需超级用户运行):
# ifconfig eth0 192.168.0.1 netmask 255.255.255.0

(5)名字服务器和DNS

分配给当前系统的名字服务器可以通过读取/etc/resolv.conf查看:

(6)DNS查找

hostnslookup就是两个DNS查找工具。host可以列出某个域名所有的IP地址,nslookup是一个类似于host的命令,它用于查询DNS相关的细节信息以及名字解析。

(7)设置默认网关,显示路由表信息——route

如果一个本地网络连接到另一个网络,需要安排一些主机或网络节点,通过它们实现网络间的互联。这些能够向外部网络转发分组的特殊节点主机被称为网关。我们需要为每个节点设置网关,使之能够连接到外部网络。

操作系统维护着路由表,它包含了关于分组如何转发以及通过网络中的哪些节点转发信息。可以如下显示路由表:

-n指定以数字形式显示地址。

设置默认网关:
# route add default gw IP_ADDRESS INTERFACE_NAME
例如:
# route add default gw 192.168.0.1 eth1

(8)traceroute

当应用程序通过Internet请求服务时,服务器可能位于远端,两者之间可能通过多个网关或设备节点向量。分组要穿过这些网关才能到达目的地。traceroute命令可以显示分组途径的所有网关地址,以及到达目的地需要经过多少跳(hop)

(9)ping命令

ping是最基础的网络命令。ping命令使用互联网控制消息协议(ICMP)的echo分组,当这些echo分组发送到某个主机时,如果分组能够送达且该主机为活动主机,那么它就会发送一条回应。

1)检查某个主机是否可以到达:
$ ping ADDRESS
ADDRESS可以是主机名、域名或者IP地址。

2)往返时间:ping命令可以用来得出网络上两台主机之间的往返时间RTT,单位是毫秒。

3)限制发送的分组数量:ping命令会不停地发送echo分组,并等待回复,直到按下Ctrl+C。不过,我们可以用选项-c限制发送的echo分组的数量

4)ping命令的返回状态
ping命令如果执行顺利,会返回退出状态0;否则,返回非0。

(10)netstat查看端口与服务

netstat是用于网络服务分析的命令,常见参数如下:

-a (all)显示所有选项,默认不显示LISTEN相关
-t (tcp)仅显示tcp相关选项
-u (udp)仅显示udp相关选项
-n 拒绝显示别名,能显示数字的全部转化成数字。
-l 仅列出有在 Listen (监听) 的服務状态
-p 显示建立相关链接的程序名
-r 显示路由信息,路由表
-e 显示扩展信息,例如uid等
-s 按各个协议进行统计
-c 每隔一个固定时间,执行该netstat命令。

发表评论

电子邮件地址不会被公开。 必填项已用*标注