Linux常用的网络命令.docx

上传人:b****6 文档编号:7335720 上传时间:2023-01-23 格式:DOCX 页数:39 大小:197.58KB
下载 相关 举报
Linux常用的网络命令.docx_第1页
第1页 / 共39页
Linux常用的网络命令.docx_第2页
第2页 / 共39页
Linux常用的网络命令.docx_第3页
第3页 / 共39页
Linux常用的网络命令.docx_第4页
第4页 / 共39页
Linux常用的网络命令.docx_第5页
第5页 / 共39页
点击查看更多>>
下载资源
资源描述

Linux常用的网络命令.docx

《Linux常用的网络命令.docx》由会员分享,可在线阅读,更多相关《Linux常用的网络命令.docx(39页珍藏版)》请在冰豆网上搜索。

Linux常用的网络命令.docx

Linux常用的网络命令

Linux常用的网络命令

网络参数设置命令

任何时刻如果你想要做好自己的网络参数设置,包括IP参数、路由参数与无线网络等,就得要了解下面这些相关的命令才行。

其中Route及ip这两条命令是比较重要的。

当然,比较早期的用法,我们都是使用ifconfig的。

· ifconfig:

查询、设置网卡与IP网段等相关参数。

· ifup、ifdown:

这两个文件是Script,通过更简单的方式来启动网络接口。

· Route:

查询、设置路由表(Routetable)。

· ip:

复合式的命令,可以直接修改上述命令提到的功能。

 ifconfig、ifup、ifdown

这3个命令的用途都是启动网络接口,不过,ifup与ifdown仅就/etc/sysconfig/network-scripts内的ifcfg-ethx(x为数字)进行启动或关闭的操作,并不能直接修改网络参数,除非手动调整ifcfg-ethx文件才行。

至于ifconfig则可以直接手动给予某个接口IP或调整其网络参数。

下面我们就分别来谈一谈。

1.ifconfig

ifconfig主要是可以手动启动、观察与修改网络接口的相关参数,可以修改的参数很多,包括IP参数以及MTU等都可以修改,它的语法如下:

[root@linux~]#ifconfig{interface}{up|down}<==观察与启动接口

[root@linux~]#ifconfiginterface{options}<==设置与修改接口

参数:

Interface,网卡接口代号,包括eth0、eth1、ppp0等

Options,可以接的参数,包括如下:

Up或down,启动(up)或关闭(down)该网络接口(不涉及任何参数)

mtu,可以设置不同的MTU数值,例如MTU1500(单位为byte)

netmask,就是子屏蔽网络

broadcast,就是广播地址

范例:

范例一:

观察所有的网络接口(直接输入ifconfig)

[root@linux~]#ifconfig

eth0Linkencap:

EthernetHWaddr00:

0F:

EA:

A3:

06:

A2

inetaddr:

192.168.10.100Bcast:

192.168.10.255

Mask:

255.255.255.0

inet6addr:

fe80:

:

20f:

eaff:

fe73:

682/64Scope:

Link

UPBROADCASTRUNNINGMULTICASTMTU:

1500Metric:

1

RXpackets:

3439errors:

0dropped:

0overruns:

0frame:

0

TXpackets:

2735errors:

0dropped:

0overruns:

0carrier:

0

collisions:

0txqueuelen:

1000

RXbytes:

646935(631.7KiB)TXbytes:

562313(549.1KiB)

Interrupt:

209Memory:

fb000000-0

一般来说,直接输入ifconfig就会列出目前已经被启动的卡,不论这个卡是否有设置IP,都会被显示出来。

而如果是输入ifconfigeth0,则会显示出这个接口的相关数据,而不管该接口是否启动。

所以,如果你想要知道某个网卡的HardwareAddress,直接输入“ifconfig"网络接口代号"”即可。

至于上述代码中出现的各项数据是这样的(数据排列由上而下、由左而右)。

· eth0:

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

· HWaddr:

网卡的硬件地址,习惯称为MAC。

· inetaddr:

IPv4的IP地址,后续的Bcase、Mask分别代表的是Broadcast与Netmask。

· inet6addr:

是IPv6的版本的IP,我们没有使用,所以略过。

· RX:

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

· TX:

与RX相反,为网络由启动到目前为止的传送情况。

· collisions:

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

· txqueuelen:

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

· RXBytes、TXBytes:

总传送、接收的字节总量。

· Interrupt、Memory:

网卡硬件的数据,IRQ岔断与内存地址。

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

范例二:

暂时修改网络接口

[root@linux~]#ifconfigeth0192.168.100.100

#如果不加任何其他参数,则系统会依照该IP所在的class范围,

#自动地计算出netmask以及network,broadcast等IP参数

[root@linux~]#ifconfigeth0192.168.100.100netmask255.255.255.128\

>mtu8000

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

[root@linux~]#ifconfigeth0MTU9000

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

[root@linux~]#ifconfigeth0:

0192.168.50.50

#仔细看那个接口,eth0:

0。

那就是在该网络接口上,再仿真一个网络接口,

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

[root@linux~]#ifconfig

eth0Linkencap:

EthernetHWaddr00:

0F:

EA:

A3:

06:

A2

inetaddr:

192.168.10.100Bcast:

192.168.10.255Mask:

255.255.255.0

UPBROADCASTRUNNINGMULTICASTMTU:

1500Metric:

1

RXpackets:

3669errors:

0dropped:

0overruns:

0frame:

0

TXpackets:

2892errors:

0dropped:

0overruns:

0carrier:

0

collisions:

0txqueuelen:

1000

RXbytes:

667547(651.9KiB)TXbytes:

584799(571.0KiB)

Interrupt:

209Memory:

fb000000-0

eth0:

0Linkencap:

EthernetHWaddr00:

0F:

EA:

A3:

06:

A2

inetaddr:

192.168.200.2Bcast:

192.168.200.255Mask:

255.255.255.0

UPBROADCASTRUNNINGMULTICASTMTU:

1500Metric:

1

Interrupt:

209Memory:

fb000000-0

#仔细看,是否与硬件有关的信息都相同。

没错。

因为是同一个网卡。

[root@linux~]#ifconfigeth0:

0down

#关掉eth0:

0这个接口。

如果想要启动eth1,并且不设置任何网络参数

#ifconfigeth1up就可以实现

[root@linux~]#/etc/init.d/networkrestart

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

使用ifconfig可以暂时用手动来设置或修改某个适配卡的相关功能,并且也可以通过eth0:

0这种虚拟的网络接口来设置一张网卡上面的多个IP。

手动的方式是比较简单。

而且设置错误也没有关系,因为我们可以利用/etc/init.d/networkrestart来重新启动整个网络接口,那么之前手动的设置数据会全部失效。

另外,要启动某个网络接口,但又不让它具有IP参数时,直接给它ifconfigeth0up即可。

这个操作经常在无线网卡当中进行,因为我们需要启动无线网卡让它去检测AP存在与否。

2.ifup、ifdown

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

[root@linux~]#ifup{interface}

[root@linux~]#ifdown{interface}

[root@linux~]#ifupeth0

ifup与ifdown真是太简单了。

这两个程序其实是script而已,它会直接到/etc/sysconfig/network-scripts目录下搜索对应的配置文件,例如ifupeth0,它会找出ifcfg-eth0这个文件的内容,然后加以设置。

关于ifcfg-eth0的设置请参考前一章连上Internet的说明。

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

另外,如果以ifconfigeth0来设置或者是修改了网络接口后,就无法再以ifdowneth0的方式来关闭了。

因为ifdown会分析比较目前的网络参数与ifcfg-eth0是否相符,不符的话,就会放弃这次操作。

因此,使用ifconfig修改完毕后,应该要以ifconfigeth0down才能够关闭该接口。

路由修改route

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

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

[root@linux~]#route[-nee]

[root@linux~]#routeadd[-net|-host][网段或主机]netmask[mask][gw|dev]

[root@linux~]#routedel[-net|-host][网段或主机]netmask[mask][gw|dev]

观察的参数:

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

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

增加(add)与删除(del)路由的相关参数;

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

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

Netmask,与网段有关,可以设置netmask决定网段的大小;

Gw,gateway的简写,后续接的是IP的数值,与dev不同;

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

范例一:

单纯的观察路由状态

[root@linux~]#route-n

KernelIProutingtable

DestinationGatewayGenmaskFlagsMetricRefUseIface

192.168.10.00.0.0.0255.255.255.0U000eth0

169.254.0.00.0.0.0255.255.0.0U000eth0

0.0.0.0192.168.10.300.0.0.0UG000eth0

[root@linux~]#route

KernelIProutingtable

DestinationGatewayGenmaskFlagsMetricRefUseIface

192.168.10.0*255.255.255.0U000eth0

169.254.0.0*255.255.0.0U000eth0

defaultServer.cluster0.0.0.0UG000eth0

在上面的例子中仔细观察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(routeisup):

该路由是启动的。

ØH(targetisahost):

目标是一台主机(IP)而非网段。

ØG(usegateway):

需要通过外部的主机来传递数据包。

ØR(reinstateroutefordynamicrouting):

使用动态路由时,恢复路由信息的标记。

ØD(dynamicallyinstalledbydaemonorredirect):

已经由服务器或转port功能设置为动态路由。

ØM(modifiedfromroutingdaemonorredirect):

路由已经被修改了。

Ø!

(rejectroute):

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

· Iface:

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

此外,观察一下上面的路由排列顺序,依序是由小网段(192.168.10.0/24是ClassC),逐渐到大网段(169.254.0.0/16是ClassB),最后则是默认路由(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时,会出现什么情况?

会出现如下的情况:

KernelIProutingtable

DestinationGatewayGenmaskFlagsMetricRefUseIface

192.168.10.00.0.0.0255.255.255.0U000eth0

192.168.10.00.0.0.0255.255.255.0U000eth1

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

多此一举。

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

范例二:

路由的增加与删除

[root@linux~]#routedel-net169.254.0.0netmask255.255.0.0deveth0

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

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

#包括netmask、dev等参数

[root@linux~]#routeadd-net192.168.100.0\

>netmask255.255.255.0deveth0

#通过routeadd来增加一个路由。

请注意,这个路由必须能够与你互通

#例如,如果我下达下面的命令就会显示错误:

#routeadd-net192.168.200.0netmask255.255.255.0gw192.168.200.254

#因为我的环境内仅有192.168.10.100这个IP,所以不能与192.168.200.254

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

[root@linux~]#routeadddefaultgw192.168.10.30

#增加默认路由的方法。

请注意,只要有一个默认路由就够了

#在这个地方如果你随便设置后,记得使用下面的命令重新设置你的网络

#/etc/init.d/networkrestart

如果是要进行路由的删除与增加,那就可以参考上面的例子了,其实,使用manroute里面的信息就很丰富了。

仔细查阅一下。

你只要记得,当出现“SIOCADDRT:

Networkisunreachable”这个错误时,肯定是由于gw后面接的IP无法直接与你的网段沟通(Gateway并不在你的网段内),所以,赶紧检查一下输入的信息是否正确。

ip

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

这个ip命令的功能可多了。

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

如果你有兴趣的话,请自行vi/sbin/ifup,就知道整个ifup就是利用ip这个命令来实现的。

好了,如何使用呢?

让我们来看看。

[root@linux~]#ip[option][操作][命令]

参数:

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

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

操作,亦即是可以针对哪些网络参数进行操作,包括有:

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

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

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

由上面的语法我们可以知道,ip除了可以设置一些基本的网络参数之外,还能够进行额外的IP协议,包括多IP的实现,真是太完美了。

下面我们就分3个部分(link、addr、route)来介绍这个ip命令吧。

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

iplink

iplink可以设置与设备(device)有关的相关设置,包括MTU以及该网络接口的MAC等,当然也可以启动(up)或关闭(down)某个网络接口了。

整个语法是这样的:

[root@linux~]#ip[-s]linkshow<==单纯的查阅该设备相关的信息

[root@linux~]#iplinkset[device][操作与参数]

参数:

Show,仅显示出这个设备的相关内容,如果加上-s会显示更多统计数据

Set,可以开始设置项目,device指的是eth0、eth1等等接口代号

操作与参数,包括有下面的这些操作

up|down,启动(up)或关闭(down)某个接口,其他参数使用默认的以太网

Address,如果这个设备可以更改MAC的话,用这个参数修改

Name,给予这个设备一个特殊的名字

Mtu,就是最大传输单元

范例一:

显示出所有的接口信息

[root@linux~]#iplinkshow

1:

lo:

mtu16436qdiscnoqueue

link/loopback00:

00:

00:

00:

00:

00brd00:

00:

00:

00:

00:

00

2:

eth0:

mtu1500qdiscpfifo_fastqlen1000

link/ether00:

50:

fc:

22:

9a:

cbbrdff:

ff:

ff:

ff:

ff:

ff

3:

sit0:

mtu1480qdiscnoop

link/sit0.0.0.0brd0.0.0.0

[root@linux~]#ip-slinkshoweth0

2:

eth0:

mtu1500qdiscpfifo_fastqlen1000

link/ether00:

50:

fc:

22:

9a:

cbbrdff:

ff:

ff:

ff:

ff:

ff

RX:

bytespacketserrorsdroppedoverrunmcast

48401179222473720000

TX:

bytespacketserrorsdroppedcarriercollsns

291410429028677530000

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

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

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

范例二:

启动、关闭与设置设备的相关信息

[root@linux~]#iplinkseteth0up

#启动eth0这个设备接口。

[root@linux~]#iplinkseteth0down

#就关闭啊。

简单得要命

[root@linux~]#iplinkseteth0mtu1000

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

使用ifconfig也可以更新网卡的MTU,没什么不一样的地方,不过,如果是要更改网卡代号、MAC地址的信息的话,那可就得使用ip了。

不过,设置前得要先关闭该网卡,否则会不成功。

如下所示:

范例三:

修改网卡代号、MAC等参数

[root@linux~]#iplinkseteth0namevbird

SIOCSIFNAME:

Deviceorresourcebusy

#因为该设备目前是启动的,所以不能这样设置。

你应该这样做:

[root@linux~]#iplinkseteth0down<==关闭接口

[root@linux~]#iplinkseteth0nam

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 考试认证 > 其它考试

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1