ip命令

ip 是個指令喔!並不是那個 TCP/IP 的 IP 啦!這個 ip 指令的功能可多了! 基本上,他就是整合了 ifconfig 與 route 這兩個指令囉~不過, ip 可以達成的功能卻又多更多! 真是個相當厲害的指令。如果您有興趣的話,請自行 vi /sbin/ifup ,就知道整個 ifup 就是利用 ip 這個指令來達成的。好了,如何使用呢?讓我們來瞧一瞧先!
[root@linux ~]# ip [option] [動作] [指令]
參數:
option :設定的參數,主要有:
    -s :显示该装置的统计数据(statistics),例如总接收发送封包数等;
action:也就是可以针对哪些网路参数进行动作,包括有:
    link  :关于接口的相关设定,包括 MTU, MAC 位址等等
    addr/address :关于额外的IP设定,例如多 IP 的达成等等;
    route :与路由相关的设定。

由上面的语法我们可以知道, ip 除了可以設定一些基本的网路参数之外,还能够进行额外的IP设定, 包括多 IP 的达成,真是太完美了!

底下我们就分三个部分 (link, addr, route) 来介绍这个 ip 指令吧!

关于接口 的相关设定: ip link

ip link:接口参数相关

可以设定与接口相关的参数,MTU 以及该网络接口的 MAC 等等, 当然也可以启动 (up) 或关闭 (down) 某个网络接口啦!

相关语法如下:

1.  ip [-s] link show  :显示网络接口相关信息

xxha@PAF4:~$ ip link show
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
2: eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
    link/ether 70:54:d2:56:95:91 brd ff:ff:ff:ff:ff:ff
3: wlan0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc mq state DOWN qlen 1000
    link/ether 00:12:7b:16:62:03 brd ff:ff:ff:ff:ff:ff
加 -s 可以多一些统计信息。

xxha@PAF4:~$ ip -s link show
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    RX: bytes  packets  errors  dropped overrun mcast
    48249      486      0       0       0       0
    TX: bytes  packets  errors  dropped carrier collsns
    48249      486      0       0       0       0
2: eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
    link/ether 70:54:d2:56:95:91 brd ff:ff:ff:ff:ff:ff
    RX: bytes  packets  errors  dropped overrun mcast
    37198731   269133   0       18060   0       0
    TX: bytes  packets  errors  dropped carrier collsns
    6980285    41887    0       0       0       0
3: wlan0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc mq state DOWN qlen 1000
    link/ether 00:12:7b:16:62:03 brd ff:ff:ff:ff:ff:ff
    RX: bytes  packets  errors  dropped overrun mcast
    0          0        0       0       0       0
    TX: bytes  packets  errors  dropped carrier collsns
    0          0        0       0       0       0
也可以具体指定某个接口:

xxha@PAF4:~$ ip -s link show eth1
2: eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
    link/ether 70:54:d2:56:95:91 brd ff:ff:ff:ff:ff:ff
    RX: bytes  packets  errors  dropped overrun mcast
    37799692   276202   0       18531   0       0
    TX: bytes  packets  errors  dropped carrier collsns
    6993517    42033    0       0       0       0
2. ip link set [device] [动作与参数] :

可以设定接口相关参数,如下:

up | down   :启动或关闭某个接口

mtu    :设定mtu大小

name   :接口名字设定

address  : 物理地址设定

举例如下:

xxha@PAF4:~$ sudo ip link set eth1 down
xxha@PAF4:~$ sudo ip link set eth1 up
修改MTU:

xxha@PAF4:~$ sudo ip link set eth1 mtu 2000
xxha@PAF4:~$ sudo ip link show eth1
2: eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 2000 qdisc pfifo_fast state UP qlen 1000
    link/ether 70:54:d2:56:95:91 brd ff:ff:ff:ff:ff:ff
可见MTU被改成2000了,MTU单位是字节.
修改name:

xxha@PAF4:~$ sudo ip link set lo down
xxha@PAF4:~$ sudo ip link set lo name bird
xxha@PAF4:~$ sudo ip link show
1: bird: <LOOPBACK> mtu 65536 qdisc noqueue state DOWN
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
2: eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 2000 qdisc pfifo_fast state UP qlen 1000
    link/ether 70:54:d2:56:95:91 brd ff:ff:ff:ff:ff:ff
3: wlan0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc mq state DOWN qlen 1000
    link/ether 00:12:7b:16:62:03 brd ff:ff:ff:ff:ff:ff
这里必须出于down状态才能改接口名字。
修改物理地址:

xxha@PAF4:~$ sudo ip link set wlan0 down
xxha@PAF4:~$ sudo ip link set wlan0 address aa:aa:aa:aa:aa:aa
xxha@PAF4:~$ sudo ip link show
1: bird: <LOOPBACK> mtu 65536 qdisc noqueue state DOWN
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
2: eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 2000 qdisc pfifo_fast state UP qlen 1000
    link/ether 70:54:d2:56:95:91 brd ff:ff:ff:ff:ff:ff
3: wlan0: <BROADCAST,MULTICAST> mtu 1500 qdisc mq state DOWN qlen 1000
    link/ether aa:aa:aa:aa:aa:aa brd ff:ff:ff:ff:ff:ff
基本上 ip link 的功能可以用ifconfig实现。

ip addr(或address):与IP相关的设定

格式:

ip address show   

ip address [add|del] [IP參數] [dev 裝置名] [相關參數]
参数:

show: 显示接口IP信息

add | del :添加或删除相关参数。

IP参数:IP地址的设定。

dev :接口, 如 eth0, eth1.

相关参数:

    broadcast :设定广播地址,如果设定值时+ 表示让系统自动计算。

        label    :接口的别名,例如 eth0:0 就是了!
        scope    :这个接口的领域,通常是这几个大类:
                   global :允许来自所有来源的连线;
                   site   :仅支持IPV6,仅允许本机的连线;
                   link   :仅允许本装置的自我连线;
                   host   :仅允许本主机内部连线;
                   所以当然是使用 global 了!预设也是 global !

xxha@PAF4:~$ ip addr show
1: bird: <LOOPBACK> mtu 65536 qdisc noqueue state DOWN
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host bird
2: eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 2000 qdisc pfifo_fast state UP qlen 1000
    link/ether 70:54:d2:56:95:91 brd ff:ff:ff:ff:ff:ff
    inet 192.168.8.49/16 brd 192.168.255.255 scope global eth1
    inet6 2001:470:19:790:597b:3852:7437:68b7/64 scope global temporary dynamic
       valid_lft 597823sec preferred_lft 78823sec
    inet6 2001:470:19:790:7254:d2ff:fe56:9591/64 scope global dynamic
       valid_lft 2591997sec preferred_lft 604797sec
    inet6 fe80::7254:d2ff:fe56:9591/64 scope link
       valid_lft forever preferred_lft forever
3: wlan0: <BROADCAST,MULTICAST> mtu 1500 qdisc mq state DOWN qlen 1000
    link/ether aa:aa:aa:aa:aa:aa brd ff:ff:ff:ff:ff:ff

给接口添加一个ip地址和接口别名:

xxha@PAF4:~$ sudo ip addr add 192.168.100.1/24 broadcast + dev eth1 label eth1:vbird
xxha@PAF4:~$ ip address show eth1
2: eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 2000 qdisc pfifo_fast state UP qlen 1000
    link/ether 70:54:d2:56:95:91 brd ff:ff:ff:ff:ff:ff
    inet 192.168.8.49/16 brd 192.168.255.255 scope global eth1
    inet 192.168.100.1/24 brd 192.168.100.255 scope global eth1:vbird
    inet6 2001:470:19:790:597b:3852:7437:68b7/64 scope global temporary dynamic
       valid_lft 597011sec preferred_lft 78011sec
    inet6 2001:470:19:790:7254:d2ff:fe56:9591/64 scope global dynamic
       valid_lft 2591997sec preferred_lft 604797sec
    inet6 fe80::7254:d2ff:fe56:9591/64 scope link
       valid_lft forever preferred_lft forever
添加了IP和接口名之后,ifconfig 也可以看见:

xxha@PAF4:~$ ifconfig
eth1      Link encap:Ethernet  HWaddr 70:54:d2:56:95:91
          inet addr:192.168.8.49  Bcast:192.168.255.255  Mask:255.255.0.0
          inet6 addr: 2001:470:19:790:597b:3852:7437:68b7/64 Scope:Global
          inet6 addr: 2001:470:19:790:7254:d2ff:fe56:9591/64 Scope:Global
          inet6 addr: fe80::7254:d2ff:fe56:9591/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:2000  Metric:1
          RX packets:294401 errors:0 dropped:19613 overruns:0 frame:0
          TX packets:44357 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:39362218 (39.3 MB)  TX bytes:7192593 (7.1 MB)

eth1:vbird Link encap:Ethernet  HWaddr 70:54:d2:56:95:91
          inet addr:192.168.100.1  Bcast:192.168.100.255  Mask:255.255.255.0
          UP BROADCAST RUNNING MULTICAST  MTU:2000  Metric:1
上面的 eth1:vbird 就新添加的IP和接口。
删除操作如下,直接指定一个IP地址就行了:

xxha@PAF4:~$ sudo ip addr del 192.168.100.1/24 dev eth1
xxha@PAF4:~$ ip address show eth1
2: eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 2000 qdisc pfifo_fast state UP qlen 1000
    link/ether 70:54:d2:56:95:91 brd ff:ff:ff:ff:ff:ff
    inet 192.168.8.49/16 brd 192.168.255.255 scope global eth1
    inet6 2001:470:19:790:597b:3852:7437:68b7/64 scope global temporary dynamic
       valid_lft 596773sec preferred_lft 77773sec
    inet6 2001:470:19:790:7254:d2ff:fe56:9591/64 scope global dynamic
       valid_lft 2591999sec preferred_lft 604799sec
    inet6 fe80::7254:d2ff:fe56:9591/64 scope link
       valid_lft forever preferred_lft forever
xxha@PAF4:~$ ifconfig
eth1      Link encap:Ethernet  HWaddr 70:54:d2:56:95:91
          inet addr:192.168.8.49  Bcast:192.168.255.255  Mask:255.255.0.0
          inet6 addr: 2001:470:19:790:597b:3852:7437:68b7/64 Scope:Global
          inet6 addr: 2001:470:19:790:7254:d2ff:fe56:9591/64 Scope:Global
          inet6 addr: fe80::7254:d2ff:fe56:9591/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:2000  Metric:1
          RX packets:295757 errors:0 dropped:19678 overruns:0 frame:0
          TX packets:44542 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:39459841 (39.4 MB)  TX bytes:7207878 (7.2 MB)
ip route :路由相关设置
[root@linux ~]# ip route show  

[root@linux ~]# 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 的数值喔!

例子:

xxha@PAF4:~$ sudo ip route show
default via 192.168.8.1 dev eth1  proto static
169.254.0.0/16 dev eth1  scope link  metric 1000
192.168.0.0/16 dev eth1  proto kernel  scope link  src 192.168.8.49  metric 1
最简单的功能就是显示出路由表,这个跟route指令相同,只是必须要注意几个小东西:

    proto:此路由的路由决定,主要有 redirect, kernel, boot, static, ra 等, 其中 kernel 指的是直接由核心判断自动设定。
    scope:路由的范围,主要是 link ,亦即是与本接口有关的直接连线。

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

增加路由,主要是本机直接可沟通的网域

xxha@PAF4:~$ sudo ip route add 192.168.9.0 dev eth1
xxha@PAF4:~$ sudo ip route show
default via 192.168.8.1 dev eth1  proto static
169.254.0.0/16 dev eth1  scope link  metric 1000
192.168.0.0/16 dev eth1  proto kernel  scope link  src 192.168.8.49  metric 1
192.168.9.0 dev eth1  scope link
增加外部路由,需通过router:

xxha@PAF4:~$ sudo ip route add 192.168.1.0 via 192.168.9.0 dev eth1
xxha@PAF4:~$ sudo ip route show
default via 192.168.8.1 dev eth1  proto static
169.254.0.0/16 dev eth1  scope link  metric 1000
192.168.0.0/16 dev eth1  proto kernel  scope link  src 192.168.8.49  metric 1
192.168.1.0 via 192.168.9.0 dev eth1
192.168.9.0 dev eth1  scope link
增加预设路由:

xxha@PAF4:~$ sudo ip route add default via 192.168.1.2 dev eth1
删除路由:
xxha@PAF4:~$ sudo ip route del 192.168.1.0
xxha@PAF4:~$ sudo ip route show
default via 192.168.8.1 dev eth1  proto static
169.254.0.0/16 dev eth1  scope link  metric 1000
192.168.0.0/16 dev eth1  proto kernel  scope link  src 192.168.8.49  metric 1
192.168.9.0 dev eth1  scope link
xxha@PAF4:~$ sudo ip route del 192.168.9.0
xxha@PAF4:~$ sudo ip route show
default via 192.168.8.1 dev eth1  proto static
169.254.0.0/16 dev eth1  scope link  metric 1000
192.168.0.0/16 dev eth1  proto kernel  scope link  src 192.168.8.49  metric 1
xxha@PAF4:~$
这个命令还有好多别的功能, link, address,route 只是其中的三个常用功能:

xxha@PAF4:~$ ip -h
Usage: ip [ OPTIONS ] OBJECT { COMMAND | help }
       ip [ -force ] -batch filename
where  OBJECT := { link | addr | addrlabel | route | rule | neigh | ntable |
                   tunnel | tuntap | maddr | mroute | mrule | monitor | xfrm |
                   netns }
       OPTIONS := { -V[ersion] | -s[tatistics] | -d[etails] | -r[esolve] |
                    -f[amily] { inet | inet6 | ipx | dnet | link } |
                    -l[oops] { maximum-addr-flush-attempts } |
                    -o[neline] | -t[imestamp] | -b[atch] [filename] |
                    -rc[vbuf] [size]}

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值