[关闭]
@ghostfn1 2015-06-23T14:12:47.000000Z 字数 3567 阅读 11835

Linux 常用的网络命令(三)—— ip

Linux


ip 命令的使用:

  1. [root@linux ~]# ip [option] [command]
  2. 参数:
  3. Option,设置的参数,主要有:
  4. -s,显示出该设备的统计数据(statistics),例如总接受数据包数等;
  5. Command,对哪些网络参数进行操作,包括:
  6. Link,关于设备(device) 的相关设置,包括MTUMAC 地址等;
  7. addr/address,关于额外的 IP 协议,例如多 IP 的实现等;
  8. route,和路由相关的设置.

ip link 能对 device 的 MTU 及 MAC 等进行设置,也能 up or down 某个网络端口。

  1. [root@linux ~]# ip [-s] link show mtu 16436 qdisc noqueue
  2. link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
  3. 2: eth0: mtu 1500 qdisc pfifo_fast qlen 1000
  4. link/ether 00:50:fc:22:9a:cb brd ff:ff:ff:ff:ff:ff
  5. 3: sit0: mtu 1480 qdisc noop
  6. link/sit 0.0.0.0 brd 0.0.0.0
  7. [root@linux ~]# ip -s link show eth0
  8. 2: eth0: mtu 1500 qdisc pfifo_fast qlen 1000
  9. link/ether 00:50:fc:22:9a:cb brd ff:ff:ff:ff:ff:ff
  10. RX: bytes packets errors dropped overrun mcast
  11. 484011792 2247372 0 0 0 0
  12. TX: bytes packets errors dropped carrier collsns
  13. 2914104290 2867753 0 0 0 0

ip link show 显示出整个设备接口的硬件相关信息。
lo 及 sit0 都是主机内部所自行设置的。加上-s参数后,接收(RX)及传送(TX)的数据包数量等 和 ifconfig 的结果相同。
sit0 接口用在IPv4及IPv6的数据包转换上的,仅使用IPv4的网络无作用。

启动、关闭和设置

  1. [root@linux ~]# ip link set eth0 up
  2. 启动 eth0
  3. [root@linux ~]# ip link set eth0 down
  4. 关闭
  5. [root@linux ~]# ip link set eth0 mtu 1000
  6. 更改 MTU 的值为 1000 bytes.使用 ifconfig 也能更新网卡的 MTU

修改网卡代号、MAC 等参数

要更改网卡代号、MAC地址要使用ip命令。(设置前得要先关闭该网卡)

  1. [root@linux ~]# ip link set eth0 name vbird
  2. SIOCSIFNAME: Device or resource busy
  3. //该设备目前是启动,应该先:
  4. [root@linux ~]# ip link set eth0 down mtu 900 qdisc pfifo_fast qlen 1000
  5. link/ehter 00:40:d0:13:c3:46 brd ff:ff:ff:ff:ff:ff
  6. //网卡代号都能改动。ifcfg-eth0还是使用原本的设备代号。避免有问题,要改回来。
  7. [root@linux ~]# ip link set vbird name eth0
  8. //设备的硬件相关信息,包括MTUMAC及传输的模式等,都能在这里设置。address的项目后接的可是 MAC 而不是IP !

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

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

  1. [root@linux ~]# ip address show mtu 16436 qdisc noqueue
  2. link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
  3. inet 127.0.0.1/8 scope host lo
  4. inet6 ::1/128 scope host
  5. valid_lft forever preferred_lft forever
  6. 2: eth0: mtu 1500 qdisc pfifo_fast qlen 1000
  7. link/ether 00:50:fc:22:9a:cb brd ff:ff:ff:ff:ff:ff
  8. inet 192.168.1.2/24 brd 192.168.1.255 scope global eth0
  9. inet6 fe80::250:fcff:fe22:9acb/64 scope link
  10. valid_lft forever preferred_lft forever
  11. 3: sit0: mtu 1480 qdisc noop
  12. link/sit 0.0.0.0 brd 0.0.0.0

新增一个接口,名称为 eth0:vbird

  1. [root@linux ~]# ip address add 192.168.50.50/24 broadcast +
  2. > dev eth0 label eth0:vbird
  3. [root@linux ~]# ip address show eth0
  4. 2: eth0: mtu 1500 qdisc pfifo_fast qlen 1000
  5. link/ether 00:40:d0:13:c3:46 brd ff:ff:ff:ff:ff:ff
  6. inet 192.168.1.100/24 brd 192.168.1.255 scope global eth0
  7. inet 192.168.50.50/24 brd 192.168.50.255 scope global eth0:vbird
  8. inet6 fe80::240:d0ff:fe13:c346/64 scope link
  9. valid_lft forever preferred_lft forever
  10. //至于那个 broadcast + 也能写成 broadcast 192.168.50.255
  11. [root@linux ~]# ifconfig
  12. eth0:vbir Link encap:Ethernet HWaddr 00:40:D0:13:C3:46
  13. inet addr:192.168.50.50 Bcast:192.168.50.255 Mask:255.255.255.0
  14. UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
  15. Interrupt:5 Base address:0x3e00
  16. //如果使用 ifconfig 就能够看到这个怪东西
  17. //将刚才的接口删除
  18. [root@linux ~]# ip address del 192.168.50.50/24 dev eth0

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

  1. ip route的功能几乎和route命令差不多,但还能进行额外的参数设计,例如MTU的规划等。
  2. [root@linux ~]# ip route show
  3. //显示出目前的路由信息,其实跟route命令相同,只是需要注意几个小细节:
  4. proto:此路由的路由协议,主要有RedirectKernelBootStaticRa等,其中Kernel指的是直接由核心判断自动设置。
  5. scope:路由的范围,主要是link,即是和本设备有关的直接联机。

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

  1. [root@linux ~]# ip route add 192.168.5.0/24 dev eth0
  2. //针对本机直接沟通的网段设置好路由,不必通过外部的路由器
  3. [root@linux ~]# ip route show
  4. 192.168.5.0/24 dev eth0 scope link
  5. ……其他省略……

增加能通往外部的路由,需通过 router

  1. [root@linux ~]# ip route add 192.168.10.0/24 via 192.168.5.100 dev eth0
  2. [root@linux ~]# ip route show
  3. 192.168.5.0/24 dev eth0 scope link
  4. ……其他省略……
  5. 192.168.10.0/24 via 192.168.5.100 dev eth0
  6. //因为有 192.168.5.0/24 的路由存在 (和网卡直接联系),所以才能将 192.168.10.0/24 的路由丢给 192.168.5.100
  7. //那台主机来帮忙传递。和之前提到的 route 命令是相同的限制。

增加默认路由

  1. [root@linux ~]# ip route add default via 192.168.1.2 dev eth0
  2. # 那个 192.168.1.2 是默认路由器 (gateway) 的意思
  3. # 只要一个默认路由就 OK 。

删除路由


  1. [root@linux ~]# ip route del 192.168.10.0/24
  2. [root@linux ~]# ip route del 192.168.5.0/24
添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注