Linux常用网路指令

Posted 张某人ER

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux常用网路指令相关的知识,希望对你有一定的参考价值。

原文地址:http://linux.vbird.org/linux_server/0140networkcommand.php


     
  第五章、Linux常用网路指令

Linux 的网路功能相当的强悍,一时之间我们也无法完全的介绍所有的网路指令,这个章节主要的目的在介绍一些常见的网路指令而已。至于每个指令的详细用途将在后续伺服器架设时,依照指令的相关性来进行说明。当然,在这个章节的主要目的是在于将所有的指令汇整在一起, 比较容易了解啦!这一章还有个相当重要的重点,那就是封包撷取的指令。若不熟悉也没关系,先放着,全部读完后再回来这一章仔细练习啊!

5.1 网路参数设定使用的指令
  5.1.1 手动/自动设定与启动/关闭IP参数ifconfig , ifup, ifdown
  5.1.2 路由修改: route
  5.1.3 网路参数综合指令: ip
  5.1.4 无线网路: iwlist, iwconfig
  5.1.5 手动使用DHCP自动取得IP参数:dhclient
5.2 网路侦错与观察指令
  5.2.1 两部主机两点沟通: ping , 用ping追踪路径中的最大MTU数值
  5.2.2 两主机间各节点分析: traceroute
  5.2.3 察看本机的网路连线与后门: netstat
  5.2.4 侦测主机名称与IP对应host , nslookup
5.3 远端连线指令与即时通讯软体
  5.3.1 终端机与BBS连线: telnet
  5.3.2 FTP连线软体ftp , lftp (自动化脚本)
  5.3.3 图形介面的即时通讯软体: pidgin (gaim的延伸)
5.4 文字介面网页浏览
  5.4.1 文字浏览器: links
  5.4.2 文字介面下载器: wget
5.5 封包撷取功能
  5.5.1 文字介面封包撷取器: tcpdump
  5.5.2 图形介面封包撷取器: wireshark
  5.5.3 任意启动TCP/UDP封包的埠口连线: nc, netcat
5.6 重点回顾
5.7 本章习题
5.8 参考资料与延伸阅读
5.9 针对本文的建议:http://phorum.vbird.org/viewtopic.php?t=26123

5.1 网路参数设定使用的指令

任何时刻如果你想要做好你的网路参数设定,包括IP 参数、路由参数与无线网路等等,就得要了解底下这些相关的指令才行!其中以 ifconfig 及route 这两支指令算是较重要的喔!^_^!当然,比较新鲜的作法,可以使用ip 这个汇整的指令来设定IP 参数啦!

  • ifconfig    :查询、设定网路卡与IP网域等相关参数;
  • ifup, ifdown:这两个档案是script,透过更简单的方式来启动网路介面;
  • route       :查询、设定路由表(route table)
  • ip          :复合式的指令,可以直接修改上述提到的功能;


5.1.1 手动/自动设定与启动/关闭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才能够关闭该介面喔!


5.1.2 路由修改: 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并不在你的网域内),所以,赶紧检查一下是否输入错误啊!

Tips: 
一般来说,鸟哥如果接触到一个新的环境内的主机,在不想要更动原系统的设定档情况下,然后预计使用本书的网路环境设定时,手动的处理就变成:『ifconfig eth0 192.168.1.100; route add default gw 192.168.1.254』这样就搞定了!直接联网与测试。等到完成测试后,再给她/etc/init.d/network restart恢复原系统的网路即可。

5.1.3 网路参数综合指令: 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
    2720​​0 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
IP中的ingress traffic和egress traffic是啥概念

科联与您分享市场资讯: SaaS如何提升企业营运效率

linux常用指令

《Linux从0到99》 一 常用指令

Linux常用指令

Linux常用指令

(c)2006-2024 SYSTEM All Rights Reserved IT常识