Linux常用网络指令

手动/自动设定与启动/关闭IP 参数: ifconfig, ifup, ifdown

这三个指令的用途都是在启动网络接口,不过, ifup 与ifdown 仅能就/etc/sysconfig/network-scripts 内的ifcfg-ethX (X 为数字) 进行启动或关闭的动作,并不能直接修改网络参数,除非手动调整ifcfg-ethX 档案才行。至于ifconfig 则可以直接手动给予某个接口IP 或调整其网络参数!底下我们就分别来谈一谈!

ifconfig

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

[root@www ~]# ifconfig {interface} {up|down}   <==观察与启动接口
[root@www ~]# ifconfig interface {options}     <==设定与修改接口
选项与参数:
interface:网络卡接口代号,包括eth0, eth1, ppp0 等等
options :可以接的参数,包括如下:
    up, down :启动(up) 或关闭(down) 该网络接口(不涉及任何参数)
    mtu :可以设定不同的MTU 数值,例如mtu 1500 (单位为byte)
    netmask :就是子屏蔽网络;
    broadcast:就是广播地址啊!

#范例一:观察所有的网络接口(直接输入ifconfig)

[root@www ~]# ifconfig
eth0 Link encap:Ethernet HWaddr 08:00:27:71:85:BD
          inet addr:192.168.1.100 Bcast:192.168.1.255 Mask:255.255.255.0
          inet6 addr: fe80::a00:27ff:fe71:85bd/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
          RX packets:2555 errors:0 dropped:0 overruns:0 frame:0
          TX packets:70 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:239892 (234.2 KiB) TX bytes:11153 (10.8 KiB)

一般来说,直接输入ifconfig就会列出目前已经被启动的卡,不论这个卡是否有给予IP,都会被显示出来。而如果是输入ifconfig eth0,则仅会秀出这张接口的相关数据,而不管该接口是否有启动。所以如果你想要知道某张网络卡的Hardware Address,直接输入『 ifconfig “网络接口代号” 』即可喔!_!至于上表出现的各项数据是这样的(数据排列由上而下、由左而右):

eth0:就是网络卡的代号,也有lo这个loopback ;
HWaddr:就是网络卡的硬件地址,俗称的MAC是也;
inet addr:IPv4的IP地址,后续的Bcast, Mask分别代表的是Broadcast与netmask喔!
inet6 addr:是IPv6的版本的IP ,我们没有使用,所以略过;
MTU:就是第二章谈到的 MTU啊!
RX:那一行代表的是网络由启动到目前为止的封包接收情况, packets代表封包数、errors代表封包发生错误的数量、 dropped代表封包由于有问题而遭丢弃的数量等等
TX:与RX相反,为网络由启动到目前为止的传送情况;
collisions:代表封包碰撞的情况,如果发生太多次,表示你的网络状况不太好;
txqueuelen:代表用来传输数据的缓冲区的储存长度;
RX bytes, TX bytes:总接收、发送字节总量

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

#范例二:暂时修改网络接口,给予eth0一个192.168.100.100/24的参数

[root@www ~]# ifconfig eth0 192.168.100.100 
#如果不加任何其他参数,则系统会依照该IP所在的class范围,自动的计算出
# netmask 以及network, broadcast 等IP 参数,若想改其他参数则:

[root@www ~]# ifconfig eth0 192.168.100.100 \ 
> netmask 255.255.255.128 mtu 8000 
#设定不同参数的网络接口,同时设定MTU的数值!

[root@www ~]# ifconfig eth0 mtu 9000 
#仅修改该接口的MTU数值,其他的保持不动!

[root@www ~]# ifconfig eth0:0 192.168.50.50 
#仔细看那个界面是eth0:0喔!那就是在该实体网卡上,再仿真一个网络接口,
# 亦即是在一张网络卡上面设定多个IP 的意思啦!

[root@www ~]# ifconfig 
eth0 Link encap:Ethernet   HWaddr 08:00:27:71:85:BD 
          inet addr:192.168.100.100   Bcast:192.168.100.127   Mask:255.255.255.128
          inet6 addr: fe80::a00:27ff:fe71:85bd/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST   MTU:9000   Metric:1
          RX packets:2555 errors:0 dropped:0 overruns:0 frame:0
          TX packets:70 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:239892 (234.2 KiB) TX bytes:11153 (10.8 KiB)

eth0:0 Link encap:Ethernet   HWaddr 08:00:27:71:85:BD 
          inet addr:192.168.50.50   Bcast:192.168.50.255   Mask:255.255.255.0 
          UP BROADCAST RUNNING MULTICAST   MTU:9000   Metric:1
 #仔细看,是否与硬件有关的信息都相同啊!没错!因为是同一张网卡嘛!
# 那如果想要将刚刚建立的那张eth0:0 关闭就好,不影响原有的eth0 呢?

[root@www ~]# ifconfig eth0:0 down 
#关掉eth0:0这个界面。那如果想用默认值启动eth1:『ifconfig eth1 up』即可达成

#范例三:将手动的处理全部取消,使用原有的设定值重建网络参数:

[root@www ~]# /etc/init.d/network restart 
#刚刚设定的数据全部失效,会以ifcfg -ethX的设定为主!

使用ifconfig可以暂时手动来设定或修改某个适配卡的相关功能,并且也可以透过eth0:0这种虚拟的网络接口来设定好一张网络卡上面的多个IP喔!手动的方式真是简单啊!并且设定错误也不打紧,因为我们可以利用 /etc/init.d/network restart 来重新启动整个网络接口,那么之前手动的设定数据会全部都失效喔!另外,要启动某个网络接口,但又不让他具有IP参数时,直接给他ifconfig eth0 up即可!这个动作经常在无线网卡当中会进行,因为我们必须要启动无线网卡让他去侦测AP存在与否啊!

ifup, ifdown

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

[root@www ~]# ifup {interface} 
[root@www ~]# ifdown {interface}

[root@www ~]# ifup eth0

ifup与ifdown真是太简单了!这两支程序其实是script而已,他会直接到/etc/sysconfig/network-scripts目录下搜寻对应的配置文件,例如ifup eth0时,他会找出ifcfg- eth0这个档案的内容,然后来加以设定。关于ifcfg-eth0的设定则请参考第四章的说明。

不过,由于这两支程序主要是搜寻配置文件(ifcfg-ethx)来进行启动与关闭的,所以在使用前请确定ifcfg-ethx是否真的存在于正确的目录内,否则会启动失败喔!另外,如果以ifconfig eth0 …来设定或者是修改了网络接口后,那就无法再以ifdown eth0的方式来关闭了!因为ifdown会分析比对目前的网络参数与ifcfg-eth0是否相符,不符的话,就会放弃该次动作。因此,使用ifconfig修改完毕后,应该要以ifconfig eth0 down才能够关闭该界面喔!


路由修改: route

我们在第二章网络基础的时候谈过关于路由的问题,两部主机之间一定要有路由才能够互通TCP/IP的协议,否则就无法进行联机啊!一般来说,只要有网络接口,该接口就会产生一个路由,所以我们安装的主机有一个eth0的接口,看起来就会是这样:

[root@www ~]# route [-nee] 
[root@www ~]# route add [-net|-host] [网域或主机] netmask [mask] [gw|dev] 
[root@www ~]# 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 等

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

[root@www ~]# route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
192.168.1.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 1002 0 0 eth0
0.0.0.0 192.168.1.254 0.0.0.0 UG 0 0 0 eth0

[root@www ~]# route
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
192.168.1.0 * 255.255.255.0 U 0 0 0 eth0
link-local * 255.255.0.0 U 1002 0 0 eth0
default 192.168.1.254 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):需要透过外部的主机(gateway) 来转递封包;
    R (reinstate route for dynamic routing):使用动态路由时,恢复路由信息的旗标;
    D (dynamically installed by daemon or redirect):已经由服务或转port 功能设定为动态路由
    M (modified from routing daemon or redirect):路由已经被修改了;
    ! (reject route):这个路由将不会被接受(用来抵挡不安全的网域!)
  • Iface:这个路由传递封包的接口。

此外,观察一下上面的路由排列顺序喔,依序是由小网域(192.168.1.0/24是Class C),逐渐到大网域(169.254.0.0/16 Class B)最后则是预设路由( 0.0.0.0/0.0.0.0)。然后当我们要判断某个网络封包应该如何传送的时候,该封包会经由这个路由的过程来判断喔!举例来说,我上头仅有三个路由,若我有一个传往192.168.1.20的封包要传递,那首先会找192.168.1.0/24这个网域的路由,找到了!所以直接由eth0传送出去;

如果是传送到Yahoo 的主机呢?Yahoo 的主机IP 是119.160.246.241,我们通过判断1)不是192.168.1.0/24, 2)不是169.254.0.0/16 结果到达3)0/0 时,OK!传出去了,透过eth0 将封包传给192.168.1.254 那部gateway 主机啊!所以说,路由是有顺序的。

因此当你重复设定多个同样的路由时, 例如在你的主机上的两张网络卡设定为相同网域的IP 时,会出现什么情况?会出现如下的情况:

Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
192.168.1.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0 
192.168.1.0 0.0.0.0 255.255.255.0 U 0 0 0 eth1

也就是说,由于路由是依照顺序来排列与传送的,所以不论封包是由那个界面(eth0, eth1)所接收,都会由上述的eth0传送出去,所以,在一部主机上面设定两个相同网域的IP本身没有什么意义!有点多此一举就是了。除非是类似虚拟机(Xen, VMware等软件)所架设的多主机时,才会有这个必要~

#范例二:路由的增加与删除

[root@www ~]# route del -net 169.254.0.0 netmask 255.255.0.0 dev eth0 
#上面这个动作可以删除掉169.254.0.0/16这个网域!
# 请注意,在删除的时候,需要将路由表上面出现的信息都写入
# 包括netmask , dev 等等参数喔!注意注意

[root@www ~]# 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.1.11 这个IP ,所以不能直接与192.168.200.254
# 这个网段直接使用MAC 互通!这样说,可以理解吗?

[root@www ~]# route add default gw 192.168.1.250 
#增加预设路由的方法!请注意,只要有一个预设路由就够了喔!
# 同样的,那个192.168.1.250 的IP 也需要能与你的LAN 沟通才行!
# 在这个地方如果你随便设定后,记得使用底下的指令重新设定你的网络
# /etc/init.d/network restart

如果是要进行路由的删除与增加,那就得要参考上面的例子了,其实,使用man route里面的数据就很丰富了!仔细查阅一下啰!你只要记得,当出现『SIOCADDRT: Network is unreachable』这个错误时,肯定是由于gw后面接的IP无法直接与你的网域沟通(Gateway并不在你的网域内),所以,赶紧检查一下是否输入错误啊!


网络参数综合指令: ip

ip 是个指令喔!并不是那个TCP/IP 的IP 啦!这个ip 指令的功能可多了!基本上,他就是整合了ifconfig 与route 这两个指令啰~不过, ip 可以达成的功能却又多更多!真是个相当厉害的指令。如果你有兴趣的话,请自行 vi /sbin/ifup ,就知道整个ifup 就是利用ip 这个指令来达成的。好了,如何使用呢?让我们来瞧一瞧先!

[root@www ~]# ip [option] [动作] [指令]
选项与参数:
option :设定的参数,主要有:
    -s :显示出该装置的统计数据(statistics),例如总接受封包数等;
动作:亦即是可以针对哪些网络参数进行动作,包括有:
    link :关于装置(device) 的相关设定,包括MTU, MAC 地址等等
    addr/address :关于额外的IP 协议,例如多IP 的达成等等;
    route :与路由有关的相关设定

由上面的语法我们可以知道, ip 除了可以设定一些基本的网络参数之外,还能够进行额外的IP 协议,包括多IP 的达成,真是太完美了!底下我们就分三个部分(link, addr, route) 来介绍这个ip 指令吧!

关于装置接口(device) 的相关设定: ip link

ip link 可以设定与装置(device) 有关的相关参数,包括MTU 以及该网络接口的MAC 等等,当然也可以启动(up) 或关闭 (down) 某个网络接口啦!整个语法是这样的:

[root@www ~]# ip [-s] link show   <==单纯的查阅该装置相关的信息
[root@www ~]# ip link set [device] [动作与参数]
选项与参数:
show:仅显示出这个装置的相关内容,如果加上-s 会显示更多统计数据;
set :可以开始设定项目, device 指的是eth0, eth1 等等界面代号;
动作与参数:包括有底下的这些动作:
   up|down :启动(up) 或关闭(down) 某个接口,其他参数使用默认的以太网络;
   address :如果这个装置可以更改MAC 的话,用这个参数修改!
   name :给予这个装置一个特殊的名字;
   mtu :就是最大传输单元啊!

#范例一:显示出所有的接口信息

[root@www ~]# ip link show 
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 16436 qdisc noqueue state UNKNOWN
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
    link/ether 08:00:27:71:85:bd brd ff:ff:ff:ff:ff:ff
3: eth1: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN qlen 1000
    link/ether 08:00:27:2a:30:14 brd ff:ff:ff:ff:ff:ff
4: sit0: <NOARP> mtu 1480 qdisc noop state DOWN
    link/sit 0.0.0.0 brd 0.0.0.0

[root@www ~]# ip -s link show eth0 
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
    link/ether 08:00:27:71:85:bd brd ff:ff:ff:ff:ff:ff
    RX: bytes packets errors dropped overrun mcast
    314685 3354 0 0 0 0
    TX: bytes packets errors dropped carrier collsns
    27200 199 0 0 0 0

使用ip link show 可以显示出整个装置接口的硬件相关信息,如上所示,包括网卡地址(MAC)、MTU等等, 比较有趣的应该是那个sit0 的接口了,那个sit0 的界面是用在IPv4 及IPv6 的封包转换上的, 对于我们仅使用IPv4 的网络是没有作用的。lo 及sit0 都是主机内部所自行设定的。而如果加上-s 的参数后,则这个网络卡的相关统计信息就会被列出来, 包括接收(RX) 及传送(TX) 的封包数量等等,详细的内容与ifconfig 所输出的结果相同的。

#范例二:启动、关闭与设定装置的相关信息

[root@www ~]# ip link set eth0 up 
#启动eth0这个装置接口;

[root@www ~]# ip link set eth0 down 
#阿就关闭啊!简单的要命~

[root@www ~]# ip link set eth0 mtu 1000 
#更改MTU的值,达到1000 bytes,单位就是bytes啊!

更新网络卡的MTU 使用ifconfig 也可以达成啊!没啥了不起,不过,如果是要更改『网络卡代号、 MAC 地址的信息』的话,那可就得使用ip 啰~不过,设定前可能得要先关闭该网络卡,否则会不成功。如下所示:

#范例三:修改网络卡代号、MAC等参数

[root@www ~]# ip link set eth0 name vbird
SIOCSIFNAME: Device or resource busy
# 因为该装置目前是启动的,所以不能这样做设定。你应该要这样做:

[root@www ~]# ip link set eth0 down        <==关闭界面
[root@www ~]# ip link set eth0 name vbird  <==重新设定
[root@www ~]# ip link show                 <==观察一下
2: vbird : <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
    link/ether 08:00:27:71:85:bd brd ff:ff:ff:ff:ff:ff 
#怕了吧!连网络卡代号都可以改变!不过,玩玩后记得改回来啊!
# 因为我们的ifcfg-eth0 还是使用原本的装置代号!避免有问题,要改回来

[root@www ~]# ip link set vbird name eth0  <==界面改回来

[root@www ~]# ip link set eth0 address aa:aa:aa:aa:aa:aa 
[root@www ~]# ip link show eth0 
#如果你的网络卡支持硬件地址(MAC)可以更改的话,上面这个动作就可以更改
# 你的网络卡地址了!厉害吧!不过,还是那句老话,测试完之后请立刻改回来啊!

在这个装置的硬件相关信息设定上面,包括MTU, MAC 以及传输的模式等等,都可以在这里设定。有趣的是那个address 的项目,那个项目后面接的可是硬件地址(MAC) 而不是IP 喔!很容易搞错啊!切记切记!更多的硬件参数可以使用man ip 查阅一下与ip link 有关的设定。

关于额外的IP 相关设定: ip address
如果说ip link是与OSI七层协定 的第二层资料连阶层有关的话,那么ip address (ip addr)就是与第三层网络层有关的参数啦!主要是在设定与IP有关的各项参数,包括netmask, broadcast等等。

[root@www ~]# ip address show    <==就是查阅IP参数啊!
[root@www ~]# ip address [add|del] [IP参数] [dev装置名] [相关参数]
选项与参数:
show :单纯的显示出接口的IP 信息啊;
add|del :进行相关参数的增加(add) 或删除(del) 设定,主要有:
    IP 参数:主要就是网域的设定,例如192.168.100.100/24 之类的设定喔;
    dev :这个IP 参数所要设定的接口,例如eth0, eth1 等等;
    相关参数:主要有底下这些:
        broadcast:设定广播地址,如果设定值是+ 表示『让系统自动计算』
        label :亦即是这个装置的别名,例如eth0:0 就是了!
        scope :这个界面的领域,通常是这几个大类:
                   global :允许来自所有来源的联机;
                   site :仅支持IPv6 ,仅允许本主机的联机;
                   link :仅允许本装置自我联机;
                   host :仅允许本主机内部的联机;
                   所以当然是使用global 啰!预设也是global 啦!

#范例一:显示出所有的接口之IP参数:

[root@www ~]# ip address show 
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 16436 qdisc noqueue state UNKNOWN
    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: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
    link/ether 08:00:27:71:85:bd brd ff:ff:ff:ff:ff:ff
    inet 192.168.1.100/24 brd 192.168.1.255 scope global eth0
    inet6 fe80::a00:27ff:fe71:85bd/64 scope link
       valid_lft forever preferred_lft forever
3: eth1: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN qlen 1000
    link/ether 08:00:27:2a:30:14 brd ff:ff:ff:ff:ff:ff
4: sit0: <NOARP> mtu 1480 qdisc noop state DOWN
    link/sit 0.0.0.0 brd 0.0.0.0

看到上面那个特殊的字体吗?没错!那就是IP 参数啦!也是ip address 最主要的功能。底下我们进一步来新增虚拟的网络介面试看看:

#范例二:新增一个接口,名称假设为eth0:vbird

[root@www ~]# ip address add 192.168.50.50/24 broadcast + \ 
> dev eth0 label eth0:vbird 
[root@www ~]# ip address show eth0 
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
    link/ether 08:00:27:71:85:bd 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::a00:27ff:fe71:85bd/64 scope link
       valid_lft forever preferred_lft forever 
#看到上面的特殊字体了吧?多出了一行新的接口,且名称是eth0:vbird
# 至于那个broadcast + 也可以写成broadcast 192.168.50.255 啦!

[root@www ~]# ifconfig 
eth0:vbird Link encap:Ethernet HWaddr 08:00:27:71:85:BD
          inet addr:192.168.50.50 Bcast:192.168.50.255 Mask:255.255.255.0
          UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
# 如果使用ifconfig 就能够看到这个怪东西了!可爱吧!^_^

#范例三:将刚刚的界面删除

[root@www ~]# ip address del 192.168.50.50/24 dev eth0 
#删除就比较简单啊!^_^

关于路由的相关设定: ip route

这个项目当然就是路由的观察与设定啰!事实上, ip route 的功能几乎与route 这个指令差不多,但是,他还可以进行额外的参数设计,例如MTU 的规划等等,相当的强悍啊!

[root@www ~]# ip route show   <==单纯的显示出路由的设定而已
[root@www ~]# ip route [add|del] [IP或网域] [via gateway] [dev装置]
选项与参数:
show :单纯的显示出路由表,也可以使用list ;
add|del :增加(add) 或删除(del) 路由的意思。
    IP或网域:可使用192.168.50.0/24 之类的网域或者是单纯的IP ;
    via :从那个gateway 出去,不一定需要;
    dev :由那个装置连出去,这就需要了!
    mtu :可以额外的设定MTU 的数值喔!

#范例一:显示出目前的路由资料

[root@www ~]# ip route show
192.168.1.0/24 dev eth0 proto kernel scope link src 192.168.1.100
169.254.0.0/16 dev eth0 scope link metric 1002
default via 192.168.1.254 dev eth0

如上表所示,最简单的功能就是显示出目前的路由信息​​,其实跟route 这个指令相同啦!指示必须要注意几个小东西:

  • proto:此路由的路由协议,主要有redirect, kernel, boot, static, ra 等, 其中kernel 指的是直接由核心判断自动设定。
  • scope:路由的范围,主要是link ,亦即是与本装置有关的直接联机。

再来看一下如何进行路由的增加与删除吧!

#范例二:增加路由,主要是本机直接可沟通的网域

[root@www ~]# ip route add 192.168.5.0/24 dev eth0 
#针对本机直接沟通的网域设定好路由,不需要透过外部的路由器
[root@www ~]# ip route show
192.168.5.0/24 dev eth0 scope link
....(以下省略)....

#范例三:增加可以通往外部的路由,需透过router喔!

[root@www ~]# ip route add 192.168.10.0/24 via 192.168.5.100 dev eth0 
[root@www ~]# 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 指令是一样的限制!

#范例四:增加预设路由

[root@www ~]# ip route add default via 192.168.1.254 dev eth0 
#那个192.168.1.254就是我的预设路由器(gateway)的意思啊!^_^
# 真的记得,只要一个预设路由就OK 

#范例五:删除路由

[root@www ~]# ip route del 192.168.10.0/24 
[root@www ~]# ip route del 192.168.5.0/24

事实上,这个ip 的指令实在是太博大精深了!刚接触Linux 网络的朋友,可能会看到有点晕~ 不要紧啦!你先会使用ifconfig, ifup , ifdown 与route 即可, 等以后有经验了之后,再继续回来玩ip 这个好玩的指令吧!_ 有兴趣的话,也可以自行参考ethtool 这个指令喔!(man ethtool)。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值