linux 经常使用网络命令

1. ifconfig

ifconfig主要是能手动启动、观察和改动网络接口的相关參数。能改动的參数许多,包含IP參数及MTU等都能改动,他的语法例如以下:

[[email protected] ~]# ifconfig {interface} {up|down}

一 般来说,直接输入ifconfig就会列出眼下已被启动的卡,不论这个卡是否有设置IP,都会被显示出来。而假设是输入ifconfig eth0,则会显示出这个接口的相关数据,而无论该接口是否启动。所以。假设你想要知道某个网卡的Hardware
Address,直接输入“ifconfig"网络接口代号"”就可以。至于上述代码中出现的各项数据是这种(数据排列由上而下、由左而右)。

? eth0:网卡的代号,也有lo这个loopback。

? HWaddr:网卡的硬件地址。习惯称为MAC。

? inet addr:IPv4的IP地址,兴许的Bcase、Mask分别代表的是Broadcast和Netmask。

? inet6 addr:是IPv6的版本号的IP,我们没有使用,所以略过。

? RX:那一行代表的是网络由启动到眼下为止的数据包接收情况。packets代表数据包数、errors代表数据包错误发生的数量、dropped代表数据包因为有问题而遭丢弃的数量等。

? TX:和RX相反,为网络由启动到眼下为止的传送情况。

?

collisions:代表数据包碰撞的情况。假设发生太多次,表示你的网络状况不太好。

? txqueuelen:代表用来数据传输的缓冲区的储存长度。

? RX Bytes、TX Bytes:总传送、接收的字节总量。

? Interrupt、Memory:网卡硬件的数据。IRQ岔断和内存地址。

通过观察上述的资料。大致上能了解到你的网络情况,尤其是RX、TX内的error数量。及是否发生严重的collision情况,都是须要注意的。

范例二:临时改动网络接口

[[email protected] ~]# ifconfig eth0 192.168.100.100

# 假设不加全部其它參数,则系统会按照该 IP 所在的 class 范围,

# 自己主动地计算出 netmask 及 network, broadcast 等 IP 參数

[[email protected] ~]# ifconfig eth0 192.168.100.100 netmask 255.255.255.128 \

> mtu 8000

# 设置网络接口,同一时候设置 MTU 的数值

[[email protected] ~]# ifconfig eth0 MTU 9000

# 仅改动该接口的 MTU 数值,其它的保持不动

[[email protected] ~]# ifconfig eth0:0 192.168.50.50

# 细致看那个接口。 eth0:0 。那就是在该网络接口上。再仿真一个网络接口,

# 亦即是在一个网卡上面设置多个 IP 的意思啦

[[email protected] ~]# ifconfig

eth0      Link encap:Ethernet  HWaddr 00:0F:EA:A3:06:A2

inet addr:192.168.10.100 Bcast:192.168.10.255  Mask:255.255.255.0

UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1

RX packets:3669 errors:0 dropped:0 overruns:0 frame:0

TX packets:2892 errors:0 dropped:0 overruns:0 carrier:0

collisions:0 txqueuelen:1000

RX bytes:667547 (651.9 KiB)  TX bytes:584799 (571.0 KiB)

Interrupt:209 Memory:fb000000-0

eth0:0    Link encap:Ethernet  HWaddr 00:0F:EA:A3:06:A2

inet addr:192.168.200.2 Bcast:192.168.200.255  Mask:255.255.255.0

UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1

Interrupt:209 Memory:fb000000-0

# 细致看。是否和硬件有关的信息都同样。没错。由于是同一个网卡。

[[email protected] ~]# ifconfig eth0:0 down

# 关掉 eth0:0 这个接口。假设想要启动 eth1 。而且不设置全部网络參数

# ifconfig eth1 up 就能实现

[[email protected] ~]# /etc/init.d/network restart

# 刚刚设置的数据所有失效,会以 ifcfg-ethx 的设置为主

使 用ifconfig能临时用手动来设置或改动某个适配卡的相关功能。并且也能通过eth0:0这样的虚拟的网络接口来设置一张网卡上面的多个IP。手动的方 式是比較简单。并且设置错误也没有关系。由于我们能利用 /etc/init.d/network
restart来又一次启动整个网络接口,那么之前手动的设置数据会所有失效。另外,要启动某个网络接口,但又不让他具有IP參数时,直接给他 ifconfig eth0 up就可以。

这个操作常常在无线网卡其中进行,由于我们须要启动无线网卡让他去检測AP存在和否。

2. ifup、ifdown

实时地手动改动一些网络接口參数,能利用ifconfig来实现,假设是要直接以设置文件。亦即是在 /etc/sysconfig/network-scripts里面的ifcfg-ethx等文件的设置參数来启动的话,那就得要通过ifdown或ifup来实现了。

[[email protected] ~]# ifup   {interface}

[[email protected] ~]# ifdown {interface}

[[email protected] ~]# ifup eth0

ifup 和ifdown真是太简单了。

这两个程式事实上是script而已。他会直接到 /etc/ sysconfig/network-scripts文件夹下搜索相应的设置文件,比如ifup eth0,他会找出ifcfg-eth0这个文件的内容,然后加以设置。关于ifcfg-eth0的设置请參考前一章连上Internet的说明。

不 过。因为这两个程式主要是搜索设置文件(ifcfg-ethx)来进行启动和关闭的,所以在使用前请确定ifcfg-ethx是否真的存在于正确的文件夹 内,否则会启动失败。

另外,假设以ifconfig eth0来设置或是改动了网络接口后,就无法再以ifdown
eth0的方式来关闭了。

由于ifdown会分析比較眼下的网络參数和ifcfg-eth0是否相符,不符的话。就会放弃这次操作。因此,使用 ifconfig改动完成后,应该要以ifconfig eth0 down才可以关闭该接口。

3. 路由改动route

我们在网络基础的时候谈过关于路由的问题,两台主机之间一定要有路由才可以互通TCP/IP的协议。否则就无法进行联机。

一般来说。仅仅要有网络接口。该接口就会产生一个路由,比如,在鸟哥实验室内部的主机有一个eth0及lo。所以:

[[email protected] ~]# route [-nee]

[[email protected] ~]# route add [-net|-host] [网段或主机] netmask [mask] [gw|dev]

[[email protected] ~]# route del [-net|-host] [网段或主机] netmask [mask] [gw|dev]

观察的參数:

-n。不要使用通信协议或主机名称,直接使用 IP 或 Port Number;

-ee,使用更周详的信息来显示;

添加 (add) 和删除 (del) 路由的相关參数。

-net。表示后面接的路由为一个网段;

-host,表示后面接的为连接到单台主机的路由;

Netmask,和网段有关,能设置 netmask 决定网段的大小;

Gw,gateway 的简写,兴许接的是 IP 的数值。和 dev 不同;

Dev,假设仅仅是要指定由哪一块网卡联机出去。则使用这个设置,后面接 eth0 等。

范例一:单纯的观察路由状态

[[email protected] ~]# route -n

Kernel IP routing table

Destination    Gateway         Genmask         Flags Metric Ref    Use Iface

192.168.10.0   0.0.0.0         255.255.255.0 U      0        0      0    eth0

169.254.0.0    0.0.0.0         255.255.0.0    U      0        0      0    eth0

0.0.0.0          192.168.10.30  0.0.0.0         UG     0        0      0    eth0

[[email protected] ~]# route

Kernel IP routing table

Destination   Gateway           Genmask         Flags Metric Ref    Use Iface

192.168.10.0  *                  255.255.255.0  U      0       0      0    eth0

169.254.0.0   *                  255.255.0.0     U      0       0      0    eth0

default         Server.cluster   0.0.0.0         UG     0       0      0    eth0

在 上面的样例中细致观察route和route -n的输出结果,你能发现有加-n參数的主要是显示出IP,至于使用route,显示的则是“主机名称”。也就是说。在默认的情况下,route会去找出 该IP的主机名称,假设未找到呢?就会显示得迟钝(有点慢),所以说。鸟哥通常都直接使用route-n了。由上面看起来。我们也知道default
= 0.0.0.0/0.0.0.0,而上面的信息有哪些你须要知道的呢?

? Destination、Genmask:这两个术语就各自是Network和Netmask了。所以这两个东西就组合成为一个完整的网段了。

?

Gateway:该网段是通过哪个Gateway连接出去的?假设显示0.0.0.0表示该路由是直接由本机传送。亦即能通过局域网的MAC直接传输;假设有显示IP的话,表示该路由须要经过路由器(网关)的帮忙才可以传送出去。

? Flags:总共同拥有多个标记,代表的意义例如以下。

Ø U(route is up):该路由是启动的。

Ø H(target is a host):目标是一台主机(IP)而非网段。

Ø G(use gateway):须要通过外部的主机来传递数据包。

Ø R(reinstate route for dynamic routing):使用动态路由时。恢复路由信息的标记。

Ø D(dynamically installed by daemon or redirect):已由server或转port功能设置为动态路由。

Ø M(modified from routing daemon or redirect):路由已被改动了。

Ø!(reject route):这个路由将不会被接受(用来阻止不安全的网段)。

? Iface:这个路由传递数据包的接口。

此 外,观察一下上面的路由排列顺序,依序是由小网段(192.168.10.0/24是Class C)。逐渐到大网段(169.254.0.0/16 是Class B)。最后则是默认路由(0.0.0.0/0.0.0.0)。然后当我们要推断某个网络数据包应该怎么传送的时候,该数据包会经由这个路由的过程来推断。

比如。我上头仅有三个路由,若我有一个传往192.168.10.20的数据包要传递。那首先会找192.168.10.0/24这个网段的路由。找到 了,就直接由eth0传送出去。

假设是传送到Yahoo的主机呢?Yahoo的主机IP是202.43.195.52。我通过推断不是 192.168.10.0/24,也不是169.254.0.0/16。结果到达0/0时。传出去了,通过eth0将数据包传给 192.168.10.30那台Gateway主机。所以说,路由是有顺序的。

因此当你反复设置多个相同的路由时。比如,在你的主机上的两张网卡设置为相同网段的IP时,会出现什么情况?会出现例如以下的情况:

Kernel IP routing table

Destination     Gateway         Genmask         Flags Metric Ref    Use Iface

192.168.10.0    0.0.0.0         255.255.255.0   U     0      0        0 eth0

192.168.10.0    0.0.0.0         255.255.255.0   U     0      0        0 eth1

也就是说,因为路由是按照顺序来排列和传送的,所以不论数据包是由哪个接口(eth0、eth1)所接收。都会由上述的eth0传送出去。所以,在一台主机上面设置两个同样网段的IP本身没有什么意义。

多此一举。

除非是类似虚拟主机(Xen、VMware等软件)所架设的多主机,才会有这个必要。

范例二:路由的添加和删除

[[email protected] ~]# route del -net 169.254.0.0 netmask 255.255.0.0 dev eth0

# 上面这个操作能删除掉 169.254.0.0/16 这个网段

# 请注意,在删除的时候。须要将路由表上面出现的信息都写入

# 包含netmask、dev 等參数

[[email protected] ~]# route add -net 192.168.100.0 \

> netmask 255.255.255.0 dev eth0

# 通过 route add 来添加一个路由。请注意,这个路由必须可以和你互通

# 比如,假设我下达以下的命令就会显示错误:

# route add -net 192.168.200.0 netmask 255.255.255.0 gw 192.168.200.254

# 由于我的环境内仅有 192.168.10.100 这个 IP ,所以不能和 192.168.200.254

# 这个网段直接使用 MAC 互通

[[email protected] ~]# route add default gw 192.168.10.30

# 添加默认路由的方法。请注意,仅仅要有一个默认路由就够了

# 在这个地方假设你随便设置后,记得使用以下的命令又一次设置你的网络

# /etc/init.d/network restart

如 果是要进行路由的删除和添加,那就能參考上面的样例了,事实上。使用man route里面的信息就很丰富了。细致查阅一下。

你仅仅要记得,当出现“SIOCADDRT: Network is unreachable”这个错误时。肯定是因为gw后面接的IP无法直接和你的网段沟通(Gateway并不在你的网段内)。所以,赶紧检查一下输入的
信息是否正确。

4. ip

这里的ip是个命令,不是那个TCP/IP的IP。

这个ip命令的功能可多了。基 本上。他就是集合了ifconfig和route这两个命令了。只是ip能实现的功能却又多得多,真是个相当厉害的命令。

假设你有兴趣的话。请自行vi /sbin/ifup,就知道整个ifup就是利用ip这个命令来实现的。好了。怎么使用呢?让我们来看看。

[[email protected] ~]# ip [option] [操作] [命令]

參数:

Option,设置的參数,主要有:

-s。显示出该设备的统计数据(statistics),比如总接受数据包数等。

操作,亦即是能针对哪些网络參数进行操作。包含有:

Link,关于设备(device) 的相关设置,包含MTU、MAC 地址等等

addr/address,关于额外的 IP 协议,比如多 IP 的实现等等;

route,和路由有关的相关设置

由上面的语法我们能知道,ip除了能设置一些主要的网络參数之外,还可以进行额外的IP协议,包含多IP的实现。真是太完美了。以下我们就分3个部分(link、addr、route)来介绍这个ip命令吧。

1. 关于设备接口(device)的相关设置:ip link

ip link能设置和设备(device)有关的相关设置。包含MTU及该网络接口的MAC等,当然也能启动(up)或关闭(down)某个网络接口了。整个语法是这种:

[[email protected] ~]# ip [-s] link show   mtu 16436 qdisc noqueue

link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00

2: eth0:  mtu 1500 qdisc pfifo_fast qlen 1000

link/ether 00:50:fc:22:9a:cb brd ff:ff:ff:ff:ff:ff

3: sit0:  mtu 1480 qdisc noop

link/sit 0.0.0.0 brd 0.0.0.0

[[email protected] ~]# ip -s link show eth0

2: eth0:  mtu 1500 qdisc pfifo_fast qlen 1000

link/ether 00:50:fc:22:9a:cb brd ff:ff:ff:ff:ff:ff

RX: bytes  packets  errors  dropped overrun mcast

484011792  2247372  0       0       0       0

TX: bytes  packets  errors  dropped carrier collsns

2914104290 2867753  0       0       0       0

使 用ip link show能显示出整个设备接口的硬件相关信息,如上所看到的。包含网卡地址(MAC)、MTU等。比較有趣的应该是那个sit0的接口了。那个sit0的接口 是用在IPv4及IPv6的数据包转换上的,对于我们仅使用IPv4的网络是没有作用的。

lo及sit0都是主机内部所自行设置的。

而假设加上
-s的參数后,则这个网卡的相关统计信息就会被列出来,包含接收(RX)及传送(TX)的数据包数量等。周详的内容和ifconfig输出的结果是同样 的。

范例二:启动、关闭和设置设备的相关信息

[[email protected] ~]# ip link set eth0 up

# 启动 eth0 这个设备接口。

[[email protected] ~]# ip link set eth0 down

# 就关闭啊。简单得要命

[[email protected] ~]# ip link set eth0 mtu 1000

# 更改 MTU 的值。实现 1000 bytes。单位就是 bytes

使用ifconfig也能更新网卡的MTU。没什么不同样的地方。只是。假设是要更改网卡代号、MAC地址的信息的话。那可就得使用ip了。只是,设置前得要先关闭该网卡,否则会不成功。例如以下所看到的:

范例三:改动网卡代号、MAC 等參数

[[email protected] ~]# ip link set eth0 name vbird

SIOCSIFNAME: Device or resource busy

# 由于该设备眼下是启动的。所以不能这样设置。你应该这样做:

[[email protected] ~]# ip link set eth0 down        mtu 900 qdisc pfifo_fast qlen 1000

link/ehter 00:40:d0:13:c3:46 brd ff:ff:ff:ff:ff:ff

# 怕了吧?连网卡代号都能修改。只是,玩玩后记得改回来

# 由于我们的 ifcfg-eth0 还是使用原本的设备代号。避免有问题。要改回来

[[email protected] ~]# ip link set vbird name eth0

在这个设备的硬件相关信息设置上面,包含MTU、MAC及传输的模式等,都能在这里设置。

有趣的是那个address的项目后面接的但是硬件地址(MAC)而不是IP。

很easy搞错。

切记切记。很多其它的硬件參数能使用man ip查阅一下和ip
link有关的设置。

2. 关于额外的IP相关设置:ip address

假设说ip link是和OSI七层协议的第二层数据链路层有关的话,那么IP address(IP addr)就是和第三层网络层有关的參数了。主要是在设置和IP有关的各项參数。包含netmask、broadcast等。

[[email protected] ~]# ip address show    mtu 16436 qdisc noqueue

link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00

inet 127.0.0.1/8 scope host lo

inet6 ::1/128 scope host

valid_lft forever preferred_lft forever

2: eth0:  mtu 1500 qdisc pfifo_fast qlen 1000

link/ether 00:50:fc:22:9a:cb brd ff:ff:ff:ff:ff:ff

inet 192.168.1.2/24 brd 192.168.1.255 scope global eth0

inet6 fe80::250:fcff:fe22:9acb/64 scope link

valid_lft forever preferred_lft forever

3: sit0:  mtu 1480 qdisc noop

link/sit 0.0.0.0 brd 0.0.0.0

看到上面那个特别的字体吗?没错,那就是IP參数。也是ip address最基本的功能。

以下我们进一步来新增虚拟的网络接口看看:

范例二:新增一个接口,名称如果为 eth0:vbird

[[email protected] ~]# ip address add 192.168.50.50/24 broadcast + \

> dev eth0 label eth0:vbird

[[email protected] ~]# ip address show eth0

2: eth0:  mtu 1500 qdisc pfifo_fast qlen 1000

link/ether 00:40:d0:13:c3:46 brd ff:ff:ff:ff:ff:ff

inet 192.168.1.100/24 brd 192.168.1.255 scope global eth0

inet 192.168.50.50/24 brd 192.168.50.255 scope global eth0:vbird

inet6 fe80::240:d0ff:fe13:c346/64 scope link

valid_lft forever preferred_lft forever

# 看到上面的特别字体了吧?多出了一行新的接口,且名称是 eth0:vbird

# 至于那个 broadcast + 也能写成 broadcast 192.168.50.255

[[email protected] ~]# ifconfig

eth0:vbir Link encap:Ethernet  HWaddr 00:40:D0:13:C3:46

inet addr:192.168.50.50  Bcast:192.168.50.255  Mask:255.255.255.0

UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1

Interrupt:5 Base address:0x3e00

# 假设使用 ifconfig 就行看到这个怪东西

范例三:将刚才的接口删除

[[email protected] ~]# ip address del 192.168.50.50/24 dev eth0

# 删除就比較简单

3. 关于路由的相关设置:ip route

这个项目当然就是路由的观察和设置了。其实,ip route的功能差点儿和route命令几乎相同,只是,他还能进行额外的參数设计,比如MTU的规划等,功能相当强大。

[[email protected] ~]# ip route show

如上述代码所看到的。最简单的功能就是显示出眼下的路由信息。事实上跟route命令同样。仅仅是须要注意几个小细节:

? proto:此路由的路由协议,主要有Redirect、Kernel、Boot、Static、Ra等,当中Kernel指的是直接由核心推断自己主动设置。

?

scope:路由的范围,主要是link,即是和本设备有关的直接联机。

再来看一下怎么进行路由的添加和删除吧。

范例二:添加路由。主要是本机直接可沟通的网段

[[email protected] ~]# ip route add 192.168.5.0/24 dev eth0

# 针对本机直接沟通的网段设置好路由。不必通过外部的路由器

[[email protected] ~]# ip route show

192.168.5.0/24 dev eth0  scope link

……下面省略……

范例三:添加能通往外部的路由,需通过 router

[[email protected] ~]# ip route add 192.168.10.0/24 via 192.168.5.100 dev eth0

[[email protected] ~]# ip route show

192.168.5.0/24 dev eth0  scope link

……其它省略……

192.168.10.0/24 via 192.168.5.100 dev eth0

# 细致看。由于我有 192.168.5.0/24 的路由存在 (我的网卡直接联系),

# 所以才干将 192.168.10.0/24 的路由丢给 192.168.5.100

# 那台主机来帮忙传递。和之前提到的 route 命令是同样的限制。

范例四:添加默认路由

[[email protected] ~]# ip route add default via 192.168.1.2 dev eth0

# 那个 192.168.1.2 就是我的默认路由器 (gateway) 的意思

# 真的记得,仅仅要一个默认路由就 OK 。

范例五:删除路由

[[email protected] ~]# ip route del 192.168.10.0/24

[[email protected] ~]# ip route del 192.168.5.0/24

事 实上,这个ip的命令实在是太博大精深了。刚接触Linux网络的朋友,可能会有点晕,没有关系。你先会使用ifconfig、ifup、ifdown和 route就可以,等以后有了经验之后,再继续回来用ip吧。有兴趣的话。也能自行參考ethtool命令(man
ethtool)。

5.ping

这 个ping是很重要的命令。ping主要通过ICMP数据包来进行整个网络的状况报告,当然,最重要的就是ICMP type 0、8这两个类型,各自是需求回报和主动回报网络状态是否存在的特性。要特别注意的是,ping须要通过IP数据包来传送ICMP数据包,而IP数据包里
有个相当重要的TTL(Time To Live)属性,这是个很重要的路由特性,周详的IP和ICMP表头数据请參考网络基础的周详介绍。

[[email protected] ~]# ping [-bcstnM] IP

參数:

-b,后面接的是 broadcast 的 IP,用在你“须要对整个网段的主机进行 ping ”时;

-c,后面接的是运行 ping 的次数,比如 -c 5 ;

-n,不进行 IP 和主机名称的反查。直接使用 IP 。

-s,发送出去的 ICMP 数据包大小,默觉得 56(bytes),再加 8 bytes 的 ICMP 表头资料。

-t,TTL 的数值,默认是 255。每经过一个节点就会少

-M [do|dont] :主要在检測网络的 MTU 数值大小。两个常见的项目是:

do,代表传送一个 DF (Don’t Fragment) 旗标,让数据包不能又一次拆包和打包;

dont,代表不要传送 DF 标记,表示数据包能在其它主机上拆包和打包。

范例一:检測一下 168.95.1.1 这部 DNS 主机是否存在?

[[email protected] ~]# ping -c 3 168.95.1.1

PING 168.95.1.1 (168.95.1.1) 56(84) bytes of data.

64 bytes from 168.95.1.1: icmp_seq=0 ttl=243 time=9.16 ms

64 bytes from 168.95.1.1: icmp_seq=1 ttl=243 time=8.98 ms

64 bytes from 168.95.1.1: icmp_seq=2 ttl=243 time=8.80 ms

--- 168.95.1.1 ping statistics ---

3 packets transmitted, 3 received, 0% packet loss, time 2002ms

rtt min/avg/max/mdev = 8.807/8.986/9.163/0.164 ms, pipe 2

ping最简单的功能就是传送ICMP数据包去需求对方主机响应是否存在于网络环境中。上面的响应信息其中,几个重要的项目例如以下。

? 64 Bytes:表示这次传送的ICMP数据包大小为64 Bytes,这是默认值。在某些特别场合中,比如。要搜索整个网络内最大的MTU时,能使用-s 2000之类的数值来代替。

? icmp_seq=0:ICMP所检測进行的次数。第一次编号为0。

? ttl=243:TTL和IP数据包内的TTL是同样的,每经过一个带有MAC的节点(node)时。比如router、bridge时,TTL就会降低1,默认的TTL为255,你能通过 -t 150之类的方法来又一次设置默认TTL数值。

? time=9.16 ms:响应时间。单位有ms(0.001秒)及µs(0.000001秒),一般来说。响应时间越小,表示两台主机之间的网络联机越良好。

假设你忘记加上 -c 3这种规定检測次数,那就得要使用 [ctrl]-c将他结束掉了。

范例二:针对整个网段进行 ping 的追查

[[email protected] ~]# ping -c 3 -b 192.168.10.255

WARNING: pinging broadcast address

如 果想要了解网内有多少台主机存活着,那么使用ping -b broadcast就行知道了。而不必一台一台主机来检測。另外要特别注意一下,假设你的主机和待检測主机并不在同一个网段内,那么TTL默认使用 255。假设是同一个网段内。那么TTL默认则使用64。

看看上面的输出就可以明确。

我们在前几章的网络基础里面谈到加大帧(frame)时。对于 网络性能是有帮助的。由于数据包打包的次数会降低。加上假设整个传输的媒介都可以接受这个frame而不必又一次进行数据包的拆解和重组的话,那么性能当然 会更好,改动frame大小的參数就是MTU。好了,眼下我们知道网卡的MTU能通过ifconfig或是ip等来实现。那么追踪整个网络传输的最大
MTU时,又该怎么查询?最简单的方法当然是通过ping传送一个大数据包,而且不许中继的路由器或Switch将该数据包重组。这就行处理了:

范例三:找出最大的 MTU 数值

[[email protected] ~]# ping -c 2 -s 1000 -M do 192.168.10.10

PING 192.168.10.10 (192.168.10.10) 1000(1028) bytes of data.

1008 bytes from 192.168.10.10: icmp_seq=1 ttl=64 time=0.424 ms

# 假设有响应,那就是能接受这个数据包,假设无响应,那就表示这个 MTU 太大了

[[email protected] ~]# ping -c 2 -s 8000 -M do 192.168.10.10

PING 192.168.10.10 (192.168.10.10) 8000(8028) bytes of data.

ping: local error: Message too long, mtu=1500

# 这个错误信息是说。本地端的 MTU 才到 1500 而已。你要检測 8000 的 MTU

# 根本就是无法实现的。那怎么是好?用前一小节介绍的 ip link 来进行 MTU 设置吧

不 过,你须要知道的是,因为IP数据包表头(不含options)已占用了20Bytes。再加上ICMP的表头有8Bytes,所以当然你在使用 -s size的时候,那个数据包就得要先扣除 (20+8=28)的大小了。因此假设要使用MTU为1500时,就得要下达“ping
-s 1472 -M do xx.yy.zz.ip”才行。另外。因为本地端的网卡MTU也会影响到检測,所以假设想要检測整个传输媒介的MTU数值,那么每一个能调整的主机就得要先 使用ifcofig或ip将MTU调大,然后再去进行检測,否则就会像上面提供的案例同样。可能会出现“Message too long,mtu=1500”之类的字样。假设检測完成后。想要调整最佳化的MTU,那么请參考前一章节的内容来调整。

只是不要随便调整MTU,除非真的有问题。

一般是在例如以下情况调整MTU。

?

由于所有的主机群都是在内部的网段,比如群集架构(Cluster)的环境下,由于内部的网络节点都是我们能控制的,因此能通过改动MTU来改进网络性能。

?

由于操作系统默认的MTU和你的网段不符。导致某些站点能顺利联机,某些站点则无法联机。以视窗系统操作系统作为联机分享的主机时,在Client端挺easy发生这个问题。

假设是要连上Internet的主机,注意不要随便调整MTU,由于我们无法知道Internet上面的每台机器可以支持的MTU到多大,由于这些也不是我们可以管得到的。

另外,事实上每种联机方式都有不同的MTU值,常见的各种接口的MTU值如表5-1所看到的。

表5-1  常见的各种接口的MTU值

网络接口

MTU

Ethernet

1500

PPPoE

1492

Dial-up(Modem)

576

网络上也有免费帮忙查询MTU和传输相关数据的站点,比如以下这个站点:

http://forums.speedguide.net:8117/

连接上这个站点之前,请先取消你浏览器上的代理server(Proxy)的设置,才干显示出正确的信息。

假设在视窗系统的系统上想要改动MTU值的话,那就得要改动视窗系统的日志文件,在视窗系统上面对于MTU的检測和改动的周详做法能參考微软的官方站点:

http://www.microsoft.com/taiwan/msclub/member/TIPS/Spring_2001

/tip1to3/tip1to3_2.htm

6. traceroute

我 们前面谈到的命令大多数都是针对主机的网络參数设置所须要的,而ping是两台主机之间的回应和否的推断,那么有没有命令能追踪两台主机之间通过的各个节 点(Node)通信状况的好坏呢?假设我们联机到yahoo的速度比寻常慢,你认为是自己的网络环境有问题,还是外部的Internet有问题?假设是前
者的话,我们当然须要检查自己的网络环境,看看到底是谁中毒了?但假设是Internet的问题呢?那仅仅有“等等等”了。推断是这个问题就得要使用 traceroute这个命令。

[[email protected] ~]# traceroute [-nwig] IP

參数:

-n,能不必进行主机的名称解析,仅仅用 IP 。速度较快。

-w,若对方主机在几秒钟内没有回声就宣告不治...默认是 5 秒。

-i。用在比較复杂的环境,假设你的网络接口许多很复杂时,才会用到这个參数。

比如,你有两条 ADSL 能连接到外部。那你的主机会有两个 ppp。

你能使用 -i 来选择是 ppp0 还是 ppp1 啦。

-g。和 -i 的參数相仿。仅仅是 -g 后面接的是 gateway 的 IP 。

范例一:

[[email protected] ~]# traceroute -n tw.yahoo.com

traceroute to tw.yahoo-ap1.akadns.net (203.84.202.164), 30 hops max,

38 byte packets

1  61.59.121.1  42.174 ms  41.690 ms  41.058 ms

2  139.175.172.2  40.962 ms  41.978 ms  40.973 ms

3  192.72.122.130  40.983 ms  41.930 ms  41.003 ms

4  139.175.58.210  42.956 ms  41.997 ms  42.337 ms

5  139.175.58.153  47.591 ms  47.972 ms  48.748 ms

6  139.175.56.30  48.193 ms  47.970 ms  47.986 ms

7  139.175.57.94  47.959 ms  47.951 ms  47.985 ms

8  139.175.56.138  48.363 ms  47.586 ms  47.995 ms

9  139.175.58.42  49.256 ms  50.668 ms  47.490 ms

10  61.58.33.133  201.882 ms  201.565 ms  200.973 ms

11  61.58.33.50  199.910 ms  199.019 ms  198.961 ms

12  203.84.200.226  202.391 ms  202.567 ms  209.283 ms

这 个traceroute挺有意思的。这个命令会针对你想要连接的目的地的全部Router进行ICMP的超时等待,比如上面的样例其中,由鸟哥的主机连接 到Yahoo时。他会经过12个节点。traceroute会主动对这12个节点做ICMP的回应等待。并检測回复的时间,每一个节点会检測三次。所以像上
面显示的结果。发现每一个节点事实上回复的时间大约在200 ms以内,算是Internet的环境还能了。并且由上面的信息来看。在61.58.33.133这个节点后的传输延迟较久,至于之前的9个节点则有不错 的表现。通过这样的分析。能让你了解到这条联线是哪个环节出了问题。

另外。假设在默认的5秒钟之内traceroute听不到节点的回应,那么屏幕 上就会出现一个“*”的符号,告知该节点无法有顺利的响应。因为我们的traceroute用的是ICMP数据包,有些防火墙或主机可能会将ICMP数据 包扔掉。因此就会造成等不到回应的状况。另外。有些Gateway本来就不支持traceroute的功能,因此也会产生“*”的状况,所以分析时要注意
一下。

7. nslookup

这条命令的用途和host基本上是相同的,就是用来作为IP和主机名称相应的检查,相同是使用 /etc/resolv.conf这个文件作为DNSserver的来源选择。

[[email protected] ~]# nslookup [-query=[type]] [hostname|IP]

參数:

-query=type:查询的类型,除了传统的 IP 和主机名称相应外,DNS 更有许多信息

所以我们能查询许多不同的信息。包含mx、cname 等

比如: -query=mx 的查询方法。

范例一:找出 www.google.com.tw 的 IP

[[email protected] ~]# nslookup www.google.com.tw

Server:         168.95.1.1

Address:        168.95.1.1#53

Non-authoritative answer:

www.google.com.tw       canonical name = www.google.com.

www.google.com  canonical name = www.l.google.com.

Name:   www.l.google.com

Address: 64.233.189.104

范例二:找出 168.95.1.1 的主机名称

[[email protected] ~]# nslookup 168.95.1.1

Server:         168.95.1.1

Address:        168.95.1.1#53

1.1.95.168.in-addr.arpa name = dns.hinet.net.

怎么。看起来和host几乎相同吧。只是。这个nslookup还能通过IP找出主机名称。比如。那个范例二,他的主机名称是:dns.hinet.net。

眼下大家都建议使用dig这个命令来代替nslookup

8. Telnet

Telnet 是早期个人计算机连接到server主机上工作时最重要的一个软件了。他不仅能直接连接到server上,还能用来连接BBS呢。很棒!只是,Telnet本身的数 据在传送的时候是使用明文(原始的数据,没有加密),所以数据在Internet上面跑的时候,会比較危急一点(就怕被别人监听)。更周详的内容我们会在
“远程联机server”章节里做介绍的。

[[email protected] ~]# Telnet [host|IP] [port]

范例一:连接到成大梦之大地这个 BBS 站

[[email protected] ~]# Telnet bbs.dorm.ncku.edu.tw

bbs.ccns.ncku.edu.tw ⊙

⊙ 140.116.250.3 [DreamBBS Ver.040223]

欢迎光临。

系统负载:0.16 0.16 0.16 [负载正常]

?─┼────┼─?        ??         ┌┤梦之大地├────────────┐

?

──┬──┬──??───┴┴───┬?  │                             │

?

──┴──┴──?               │    │ 梦之大地由                    │

?────────?           ?─?    │    【计算机网络爱好社‧CCNS】     │

?

───┬───?

?

──?        │                     维护管理  │

│      │ ?─?             │                              │

?───┴───? ?

┴───────?

└───────────┤By BenHe├┘

┌┤本站站长群├────────┐          ?            ?    ?   ?

│站长: billcho             │  ?────┼────??

─┼─?┼──┼?

│系统: cat                 │          │           │    │   ││

│站务: muwell  ianwolf     │        ???

│    │   ││

│      renn999 GG         │      ??  ?

?         │    │   │?

│                         │    ??

??       │?  │

└───────────────┘  ?

?          ?

─??─┴?  ?───?

參观用账号:guest,申请新账号:new。

眼下在线人数 [2183/5000] 人。

请输入代号:

如 上所看到的,我们能通过Telnet轻易地连接到BBS上面。而假设你的主机有开启Telnet服务的话,相同地利用Telnet  IP而且输入账号和password 之后,就行登录主机了。另外,在Linux上的Telnet软件还提供了Kerberos的认证方式,有兴趣的话请自行參阅man
Telnet的说明。

除了连接到server及连接到BBS站之外,Telnet还能用来连接到某个port(服务)上。比如。我们能用Telnet连接到port 110,看看这个port是否正确启动了。

范例二:检測本机端的port 110 是否正确启动?

[[email protected] ~]# Telnet localhost 110

Trying 127.0.0.1...

Telnet: connect to address 127.0.0.1: Connection refused

# 假设出现这种信息,代表这个 port 没有启动或是这个联机有问题

# 由于你看到那个 refused

[[email protected] ~]# Telnet localhost 25

Trying 127.0.0.1...

Connected to localhost.

Escape character is ’_]’.

220 vbird.vbird.idv.tw ESMTP Postfix

ehlo localhost

250-linux.dm.tsai

250-PIPELINING

250-SIZE 10240000

250-VRFY

250-ETRN

250 8BITMIME

quit

221 Bye

Connection closed by foreign host.

根 据输出的结果。我们就行知道这个通信协议(Port Number提供的通信协议功能)是否已成功地启动了。而每一个port所监听的服务都有其特别的命令。比如。上述的port 25就是本机接口提供的电子邮件服务。那个服务所支持的命令就如同上面使用的数据同样,只是其它的port就不见得支持这个ehlo命令,由于不同的
port有不同的程式嘛。当然支持的命令就不同了

9.tcpdump

说 实在的,对于tcpdump这个软件来说,你甚至能说这个软件事实上就是个黑客软件。由于他不仅能分析数据包的流向。连数据包的内容也能进行监听。假设你使 用的数据传输是明文的话,在Router上就可能被人家监听走了。很可怕。

所以,我们也要来了解一下这个软件(注:这个tcpdump必须使用root
的身份运行)。

[[email protected] ~]# tcpdump [-nn] [-i 接口] [-w 储存档名] [-c 次数] [-Ae]

[-qX] [-r 文件] [所欲捕捉的数据内容]

參数:

-nn,直接以 IP 及 Port Number 显示,而非主机名和服务名称。

-i,后面接要「监听」的网络接口。比如 eth0, lo, ppp0 等等的接口。

-w。假设你要将监听所得的数据包数据储存下来,用这个參数就对了。后面接文件名称。

-c,监听的数据包数,假设没有这个參数, tcpdump 会持续不断的监听,

直到用户输入 [ctrl]-c 为止。

-A,数据包的内容以 ASCII 显示。通经常使用来捉取 WWW 的网页数据包资料。

-e。使用资料连接层 (OSI 第二层) 的 MAC 数据包数据来显示。

-q。仅列出较为简短的数据包信息,每一行的内容比較精简。

-X。能列出十六进制 (hex) 及 ASCII 的数据包内容。对于监听数据包内容很实用。

-r,从后面接的文件将数据包数据读出来。那个「文件」是已存在的文件,

而且这个「文件」是由 -w 所制作出来的。

所欲捕捉的数据内容:我们能专门针对某些通信协议或是 IP 来源进行数据包捕捉。

那就能简化输出的结果,并取得最实用的信息。常见的表示方法有。

’host foo’, ’host 127.0.0.1’ :针对单台主机来进行数据包捕捉。

’net 192.168’ :针对某个网段来进行数据包的捕捉。

’src host 127.0.0.1’ ’dst net 192.168’:同一时候加上来源(src)或目标(dst)限制。

’tcp port 21’:还能针对通信协议检測,如tcp、udp、arp、ether 等。

还能利用 and 和 or 来进行数据包数据的整合显示呢。

范例一:以 IP 和 Port Number 捉下 eth0 这个网卡上的数据包,持续 3 秒

[[email protected] ~]# tcpdump -i eth0 -nn

tcpdump: verbose output suppressed, use -v or -vv for full protocol decode

listening on eth0, link-type EN10MB (Ethernet), capture size 96 bytes

01:33:40.41 IP 192.168.1.100.22 > 192.168.1.11.1190: P 116:232(116) ack 1 win

9648

01:33:40.41 IP 192.168.1.100.22 > 192.168.1.11.1190: P 232:364(132) ack 1 win

9648

如 果你是第一次看tcpdump的man page时,肯定会晕菜的,由于tcpdump差点儿都是分析数据包的表头数据,用户假设没有简单的网络数据包基础知识。要看懂很困难。

所以,至少你得要 回到第2章“网络基础”里面去好好理解一下TCP数据包的表头信息才好。至于那个在范例一所产生的输出中。我们能大概区分为几个字段,现以范例一其中那行
特别字体行来说明一下:

? 01:33:40.41:这个是此数据包被捕捉的时间,“时:分:秒”的单位。

?

IP:通过的通信协议是IP。

?

192.168.1.100.22>:传送端是192.168.1.100这个IP,而传送的Port Number为22,那个大于(>)的符号指的是数据包的传输方向。

? 192.168.1.11.1190:接收端的IP是192.168.1.11,且该主机开启port 1190来接收。

? P 116:232(116):这个数据包带有PUSH的传输数据标志。且传输的数据为总体数据的116~232 Byte,所以这个数据包带有116 Bytes的数据量。

?

ack 1 win 9648:ACK和Window size的相关资料。

最 简单的说法,就是该数据包是由192.168.1.100传到192.168.1.11。通过的port是由22到1190。且带有116 Bytes的数据量。使用的是PUSH的标记。而不是SYN之类的主动联机标志。不easy看得懂吧。

所以,我才会讲请务必到“TCP表头数据”的章节去看一
看。

接下来,在一个网络状态很忙的主机上面,你想要取得某台主机对你联机的数据包数据时,使用tcpdump配合管线命令和正則表達式也能,不 过。毕竟不好捕捉。我们能通过tcpdump的表达式功能,就行轻易地将所须要的数据独立的取出来。

在上面的范例一其中。我们仅针对eth0做监听,所
以整个eth0接口上面的数据都会被显示到屏幕上,但这样不好分析。能简化吗?比如,仅仅取出port 21的联机数据包。能这样做:

[[email protected] ~]# tcpdump -i eth0 -nn port 21

tcpdump: verbose output suppressed, use -v or -vv for full protocol decode

listening on eth0, link-type EN10MB (Ethernet), capture size 96 bytes

01:54:37.96 IP 192.168.1.11.1240 > 192.168.1.100.21:. ack 1 win 65535

01:54:37.96 IP 192.168.1.100.21 > 192.168.1.11.1240:P 1:21(20) ack 1 win 5840

01:54:38.12 IP 192.168.1.11.1240 > 192.168.1.100.21:. ack 21 win 65515

01:54:42.79 IP 192.168.1.11.1240 > 192.168.1.100.21:P 1:17(16) ack 21 win 65515

01:54:42.79 IP 192.168.1.100.21 > 192.168.1.11.1240: . ack 17 win 5840

01:54:42.79 IP 192.168.1.100.21 > 192.168.1.11.1240: P 21:55(34) ack 17 win 5840

看!

这样就仅取出port 21的信息,假设细致看的话。你会发现数据包的传递都是双向的,Client端发出请求而Server端则予以响应,所以。当然是有去有回了。而我们也就能经过这个数据包的流向来了解到数据包运动的过程了。比如:

? 我们先在一个终端机窗体输入“tcpdump-i lo-nn”的监听。

? 再另开一个终端机窗体来对本机(127.0.0.1)登录“ssh localhost”,那么输出的结果会是怎么?

[[email protected] ~]# tcpdump -i lo -nn

1 tcpdump: verbose output suppressed, use -v or -vv for full protocol decode

2 listening on lo, link-type EN10MB (Ethernet), capture size 96 bytes

3 11:02:54.253777 IP 127.0.0.1.32936 >

127.0.0.1.22: S 933696132:933696132(0)

win 32767

4 11:02:54.253831 IP 127.0.0.1.22 > 127.0.0.1.32936:

S 920046702:920046702(0)

ack 933696133 win 32767

5 11:02:54.253871 IP 127.0.0.1.32936 > 127.0.0.1.22: . ack 1 win 8192

6 11:02:54.272124 IP 127.0.0.1.22 > 127.0.0.1.32936:

P 1:23(22) ack 1 win 8192

7 11:02:54.272375 IP 127.0.0.1.32936 > 127.0.0.1.22: . ack 23 win 8192

代码显示的头两行是tcpdump的基本说明。然后:

第3行显示的是来自Client端带有SYN主动联机的数据包。

第4行显示的是来自Server端,除了响应Client端之外(ACK)。还带有SYN主动联机的标志。

第5行则显示Client端响应Server确定联机建立(ACK)。

第6行以后则開始进入传输数据的步骤。

从 第3~5行的流程来看。熟不熟悉啊?没错。那就是3次握手的基础流程,有趣吧。只是tcpdump之所以被称为黑客软件之中的一个远不止上面介绍的功能。上面介 绍的功能能用来作为我们主机的数据包联机和传输的流程分析,这将有助于我们了解到数据包的运作,同一时候了解到主机的防火墙设置规则是否有须要修订的地方。

更 有更奇妙的使用方法。

当我们使用tcpdump在Router上面监听明文的数据传输时,比如FTP传输协议。你认为会发生什么问题呢?我们先在主机端运行 “tcpdump -i lo port 21 -nn ?

X”,然后再以FTP登录本机。并输入账号和password。结果你就能发现例如以下的状况:

[[email protected] ~]# tcpdump -i lo -nn -X ’port 21’

0x0000:  4500 0048 2a28 4000 4006 1286 7f00 0001  E..H*(@[email protected]

0x0010:  7f00 0001 0015 80ab 8355 2149 835c d825  .........U!I.\.%

0x0020:  8018 2000 fe3c 0000 0101 080a 0e2e 0b67  .............2’

0x0030:  0e2e 1b38 5041 5353 206d 7970 6173 7377  ...8PASS.mypassw

0x0040:  6f72 6469 7379 6f75 0d0a                 ordisyou..

上 面的输出结果已被简化过了,你须要自行在你的输出结果中搜索相关的字符串才行。从上面输出结果的特别字体中,我们能发现该FTP软件使用的是 vsFTPd,而且用户输入dmtsai这个账号名称,且密码是mypasswordisyou。你说可不可怕啊。假设使用的是明文方式来传输你的网络数
据呢?所以我们才经常在讲啊,网络是很不安全的。

另外你得了解。为了让网络接口能让tcpdump监听,所以运行tcpdump时网络接口会启 动在“混杂模式(promiscuous)”,所以你会在 /var/log/messages里面看到很多的警告信息,通知你说你的网卡被设置成为混杂模式。别操心,那是正常的。至于很多其它的应用,请參考man
tcpdump了。

例题:怎么使用tcpdump监听来自eth0适配卡且通信协议为port 22。目标来源为192.168.1.100的数据包资料?

答:tcpdump -i eth0 -nn ’port 22 and src host 192.168.1.100’。

10.ethereal

除 了tcpdump这个软件之外,事实上你还能使用ethereal这个好用的网络流量分析软件。ethereal分为文本界面和图像界面,文本界面的使用方法和 tcpdump类似。只是他的命令名称为tethereal就是了。由于使用方法几乎相同。所以建议你直接使用man
tethereal查阅。

在Cent OS上原本就有ethereal,所以请拿出光盘来安装就可以,须要同一时候安装ethereal和ethereal-gnome才行。

启动的方法很easy。你须要在X Window以下,先启动一个终端机。然后直接输入ethereal后。就会出现如图5-5所看到的的画面

图5-5 ethereal使用范例图

简单的做法,你能单击如图5-5显示的那个button。会出现挑选监听的接口窗体,如图5-6所看到的。

图5-6 ethereal使用范例图

你应该选择要监听的接口。在这里由于是測试用的。所以鸟哥使用的是lo这个内部接口。你当然应该要选择你自己的网络接口才是。然后单击Start后,就会出现開始检測的界面了,如图5-7所看到的。

图5-7 ethereal使用范例图

在这个界面其中你能看到许多类型的数据包协议,在等你处理完成后,就能单击Stop结束监听。而開始进入如图5-8所看到的的数据包分析界面。

图5-8 ethereal使用范例图

数 据包分析界面共分为3大区块,如图5-8所看到的。第一区块主要显示的是数据包的标头资料。内容有点类似tcpdump的显示结果。第二区块则是周详的表头数 据,包含通信协议的内容及Socket Pair等信息。

第三区块则是16进制和ASCII码的显示结果。通过这个ethereal,你就能一口气得到所须要的全部数据包内容。并且还是图像界面
的,很方便吧。通过在第一区块选择不同的数据包。就行查阅每一个数据包的数据内容了。

11.nc、netcat

这 个nc能用来作为某些服务的检測,由于他能连接到某个port来进行通信。此外。还能自行启动一个port来倾听其它用户的联机。很好用。

假设在编译的 时候设置GAPING_SECURITY_HOLE參数的话,这个软件还能用来取得client的bash。

可怕吧。我们的CentOS比較人性化,并没有设置
上面的參数,所以我们不可以用来作为黑客软件。

只是用来代替Telnet功能已够用了(有的系统将运行文件改名为netcat了)。

[[email protected] ~]# nc [IP|host] [port]

[[email protected] ~]# nc -l -p [port]

參数:

-l,作为监听之用。亦即开启一个 port 来监听用户的联机。

-p,开启的这个 Port Number。

范例一:连接本地端的 port 25 查阅相关信息

[[email protected] ~]# nc localhost 25

localhost.localdomain [127.0.0.1] 25 (smtp) open

220 pc.dm.tsai ESMTP Postfix

ehlo localhost

250-pc.dm.tsai

250-PIPELINING

250-SIZE 40000000

250-ETRN

quit

221 Bye

这个最简单的功能和Telnet差点儿同样吧。他能检查某个服务。

只是。更奇妙的在后面,我们能建立两个联机来通信。

举个样例来说。我们先在Client端的地方启动一个port来进行倾听:

范例二:激活一个 port 来监听用户的联机需求

[[email protected] ~]# nc -l -p 20000

# 启动一个 port 20000  在主机上,假设此时使用 netstat ?tlnp。

# 就能看到系统上多出来一个 port 20000 在倾听用户的联机。

然后在主机端的地方。也利用nc来联机到client,而且输入一些命令看看。

[[email protected] ~]# nc localhost 20000

此 时。在主机端我们能打入一些字。你会发眼下Client端会同一时候出现你输入的文字。假设你同一时候设置一些额外的參数,比如利用标准输入和输出(stdout 和stdin)的话,那么就能通过这个联机来做许多事情了。当然nc的功能不仅如此。你还能发现许多的用途。请自行到你主机内的
/usr/share/doc/nc-1.10/scripts文件夹下看看这些script,有帮助的。

只是,假设你须要额外地编译出含有GAPING_ SECURITY_HOLE功能,以使两端联机能进行额外命令的运行时,就须要自己下载原始码来编译了。

重 点 回 顾

?

改动网络接口的硬件相关參数。能使用ifconfig这个命令,包含MTU等。

?

ifup和ifdown事实上仅仅是script。在使用时,会主动去 /etc/sysconfig/network- scripts里找到相相应的设备设置文件,才可以正确地启动和关闭。

? 路由的改动和查阅能使用route来查询,此外。route亦可进行新增、删除路由的工作。

? ip命令能用来作为整个网络环境的设置,利用ip link能改动网络设备的硬件相关功能。包含MTU和MAC等,能使用ip address改动TCP/IP方面的參数,包含IP及网段參数等。ip route则能改动路由。

? ping主要是通过ICMP数据包来进行网络环境的检測工作,而且能使用ping来查询总体网段可接受的最大MTU值。

?

监測每一个节点的连接状况,能使用traceroute这个命令来追踪。

? netstat除了能观察本机的启动接口外。还能观察Unix socket的传统接口数据。

?

host和nslookup默认都是通过/etc/resolv.conf内设置的DNS主机来进行主机名称和IP的查询。

?

LFTP能用来匿名登录远程的FTP主机。

? Telnet不仅用来进行BBS的登录。也能用来作为某些port服务的測试。

? lynx基本的功能是浏览。包含本机上HTML语法的文件,wget则主要用来下载WWW的资料。

? 捕捉数据包以分析数据包的流向,可使用tcpdump,至于图像界面的ethereal则能进行更为周详的解析。

?

通过tcpdump分析3次握手。及分析明文传输的数据,可发现网络加密的重要性。

? nc可用来代替Telnet进行某些服务port的检測工作。同一时候若自行编译nc,可额外地运行-e參数。

时间: 2024-11-10 00:15:02

linux 经常使用网络命令的相关文章

linux学习4 网络命令和关机重启

网络命令 write write 用户名  回车后输入信息    以 ctrl+d 保存结束 wall wall [message]  //that is all,发送给所有人 ping ping 选项 IP地址 测试网络连通性 -c  指定发送次数 ifconfig ifconfig 网卡名称 IP地址 //查看和设置网卡信息 eth0 真实网卡 lo:  looback, 回环网卡,用于本机通信和测试 mail  mail[用户名]  查看发送电子右键 last 列出到目前为止已登入系统的用

#Linux学习# 常用网络命令

常用网络命令 write 指令名称:write 指令所在路径:/usr/bin/write 执行权限:所有用户 语法:write    <用户名> 功能描述:给用户发信息,以Ctrl+D保存结束 wall 指令名称:wall 命令英文原意:write all 指令所在路径:/usr/bin/wall 执行权限:所有用户 语法:wall    [message] 功能描述:发广播信息 ping 指令名称:write 指令所在路径:/bin/ping 执行权限:所有用户 语法:ping    选项

linux系统基本网络命令

ip网络设置基础 标识每个连接到网络接口的方法是:为每个网络接口分配一个全世界唯一的32bit的标识符. IP地址包括三个部分:Internet网络号,子网号,主机号.理解为:处在那个互联网中,那个子网中,那个网络接口中. 网络IP地址“主要”分为ABC三类,以下是覆盖范围: A类:0.0.0.0 - 127.255.255.255,标谁的子网掩码是255.0.0.0(按子网掩码的另一种标注方法是/8,就是将子网掩码换算成二进制后为11111111.00000000.00000000.00000

Linux常用的网络命令

转载:http://www.cnblogs.com/hnrainll/archive/2011/10/12/2208436.html 网络参数设置命令 所有时刻如果你想要做好自己的网络参数设置,包括IP参数.路由参数和无线网络等,就得要了解下面这些相关的命令才行.其中Route及ip这两条命令是比较重要的.当然,比较早期的用法,我们都是使用ifconfig的.? ifconfig:查询.设置网卡和IP网段等相关参数.? ifup.ifdown:这两个文件是Script,通过更简单的方式来启动网络

Linux常用的网络命令,方便自己随时查询(转)

转载自:http://blog.chinaunix.net/uid-7894215-id-2037740.html 网络参数设置命令 任何时刻如果你想要做好自己的网络参数设置,包括IP参数.路由参数与无线网络等,就得要了解下面这些相关的命令才行.其中Route及ip这两条命令是比较重要的.当然,比较早期的用法,我们都是使用ifconfig的. · ifconfig:查询.设置网卡与IP网段等相关参数. · ifup.ifdown:这两个文件是Script,通过更简单的方式来启动网络接口. · R

linux笔记:网络命令ping,traceroute,ifconfig,netstat;挂载和卸载命令mount,umount

命令名称:ping功能:测试网络连通性命令所在路径:/bin/ping用法:ping [-c] IP地址参数:-c 指定发送次数 命令名称:ifconfig功能:查看和设置网卡信息(临时设置)命令所在路径:/sbin/ifconfig用法:ifconfig [网卡名称] [IP地址]例子:ifconfig eth0 192.168.1.1 命令名称:traceroute功能:显示数据包到目标主机间的路径及每个节点的消耗时间命令所在路径:/bin/traceroute用法:traceroute [

Linux之常用网络命令

Ping命令: 语法格式: ping  [options] IP/域名 options: -c #: 指定ping几次 -w #: 指定等待ping次数的总时间 -W #: 指定每ping一次的时间 traceroute  IP/域名 traceroute指令让你追踪网络数据包的路由途径 mtr:功能是ping和tranceroute功能的集合 -a:指定源地址 -n:指定目的地址 ss:命令查看监听的端口,用于取代netstat命令 参数:与netstat相同 常用命令: ss  -tlunp

Linux基础学习-网络命令

1.write 给在线用户发信息 write 用户名内容ctrl+d保存结束 2.wall(write all)给所有在线用户发信息 wall 信息ctrl+d保存结束 3.mail发邮件 mail 用户名标题内容ctrl+d保存结束 直接敲mail可以查看是否有邮件1 查看第一个邮件h 返回邮件列表d 1 删除第一个邮件q 退出 4.last 查看每个用户的登陆信息 lastlog 查看最后一次登陆信息 lastlog -u 500 查看500这个用户最后一次登陆信息 5.traceroute

Linux 练习题-4网络 命令

1.查看当前系统每IP连接数 netstat -an | grep 'ESTABLISHED' | awk '{print $4}' | awk -F ":" '{print $1}' | sort -n | uniq -c 2.列出一下服务使用的端口 http 80 https 443 ftp 数据接口:20 控制接口:21 telnet 23 ssh 22 rsync 873 dns 5352 mysql 3306 grep -Ew"^(http|https|ftp|te