【Linux命令】ip link


系列文章
【Linux命令】ifconfig、route、ip route、ip addr、 ip link 用法 一
【Linux命令】ip addr、ip link、ifconfig 用法 二

1. 前言 IP 命令

ifconfig命令已经废弃。其功能可通过下文介绍的ip addr、ip link和ip -s link等命令代替。

常用语法:ip [ OPTIONS ] OBJECT { COMMAND | help }

OPTIONS是修改ip行为或改变其输出的选项。所有的选项都是以-字符开头,分为长、短两种形式,常用的OPTIONS
option:

  • -h:输出人类可读的统计信息和后缀
  • -b:从提供的文件或标准输入中读取命令并调用它们。第一次故障将导致ip终止
  • -force:不要在批处理模式下终止ip。如果在执行命令期间出现任何错误,应用程序返回代码将为非零
  • -s:输出更多信息。如果该选项出现两次或更多,则信息量会增加。通常,信息是统计信息或一些时间值
  • -d:输出详细信息
  • -l:指定在放弃之前“ ip地址刷新”逻辑将尝试的最大循环数。 默认值为10。0表示循环,直到删除所有地址
  • -f:指定要使用的协议族。 协议系列标识符可以是inet,inet6,bridge,ipx,dnet或链接之一。 如果不存在此选项,则从其他参数中猜测协议族。 如果剩下的命令行没有提供足够的信息来猜测家族,ip会退回到默认值,通常是inet或任意值。 链接是一个特殊的系列标识符,表示不涉及网络协议。
  • -4:指定使用的网络层协议是IPv4协议
  • -6:指定使用的网络层协议是IPv6协议
  • -B:指定使用的网桥
  • -o:输出信息每条记录输出一行,即使内容较多也不换行显示
  • -r:显示主机时,不使用IP地址,而使用主机的域名
  • -n:将ip切换到指定的网络命名空间NETNS。实际上,它只是将命令ip netns exec NETNS ip [ OPTIONS ] OBJECT { COMMAND | help } 简化成ip -n[etns] NETNS [ OPTIONS ] OBJECT { COMMAND | help }
  • -a:对所有对象执行指定的命令,这取决于命令是否支持此选项
  • -t:使用监视器选项时显示当前时间
  • -ts:与-timestamp类似,但使用较短的格式
  • -rs:设置netlink套接字接收缓冲区的大小,默认为1MB
  • -iec:以IEC单位打印人类可读率(例如1Ki = 1024)

OBJECT是要管理者获取信息的对象,常用的OBJECT

  • address:设备上的协议(IP/IPv6)地址;

    也就是我们常用的 ip address命令或 ip a命令(简写)

  • link:网络设备;

    也就是我们常用的 ip link 命令

  • maddress:多播地址;

  • route:路由表项;

    也就是我们常用的 ip route命令

  • rule:路由规则。

COMMAND:指定在OBJECT上执行的动作(如add/delete/show/list/help)。有些对象不支持这些操作,或者有其它的一些命令。对于所有的对象,用户可以使用help命令获得帮助。这个命令会列出这个对象支持的命令和参数的语法。如果没有指定对象的操作命令,ip会使用默认的命令。一般情况下,默认命令是list,如果对象不能列出,就会执行help命令。

例如ip link help,就显示没有 ip link list动作

2. ip link

link表示link layer的意思,即链路层。该命令用于管理和查看网络接口(网卡)。

命令格式:
括号内为可选内容,小写为参数,直接带入,大写的为占位符,需替换为实际的值

ip link help查看可用的命令:

Usage: ip link add ....   '详细见下文'
       ip link delete { DEVICE | dev DEVICE | group DEVGROUP } type TYPE [ ARGS ]

       ip link set ....   '详细见下文'
       ip link show [ DEVICE | group GROUP ] [up] [master DEV] [type TYPE]
       ip link help [ TYPE ]


2.1 ip link add

ip link add 多用于对现有的网卡进行额外的操作,例如基于当前网卡创建一个配对的虚机网卡;而下文的ip link set是对当前的网卡进行配置,多是当前网卡的属性;

ip link add help查看可用的命令:

Usage: ip link add [link DEV] [ name ] NAME
                   [ txqueuelen PACKETS ]
                   [ address LLADDR ]
                   [ broadcast LLADDR ]
                   [ mtu MTU ]
                   [ numtxqueues QUEUE_COUNT ]
                   [ numrxqueues QUEUE_COUNT ]
                   type TYPE [ ARGS ]   'type是必须的参数,ARGS 依赖type'
TYPE := { vlan | veth | vcan | dummy | ifb | macvlan | macvtap |
          bridge | bond | ipoib | ip6tnl | ipip | sit | vxlan |
          gre | gretap | ip6gre | ip6gretap | vti | nlmon |
          bond_slave | geneve | bridge_slave | macsec }                   

option:

  • link DEVICE:指定要操作的目标物理设备 ,如果要指定在某个具体的设备上新增子项,则指定相应的设备,否则为空
  • name NAME:指定新虚拟设备的名称 ,但是 name 可以省略,直接 带上Name即可
  • type TYPE:指定新设备的类型,type是必须的参数,ARGS 依赖type
    • bridge - Ethernet Bridge device 以太网桥
    • bond - Bonding device
    • dummy - Dummy network interface
    • ifb - Intermediate Functional Block device
    • ipoib - IP over Infiniband device
    • macvlan - Virtual interface base on link layer address (MAC)
    • macvtap - Virtual interface based on link layer address (MAC) and TAP.
    • vcan - Virtual Controller Area Network interface
    • veth - Virtual ethernet interface 虚拟网卡,成对出现,如果没指定 peer,也会自动补足
    • vlan - 802.1q tagged virtual LAN interface
    • vxlan - Virtual eXtended LAN
    • ip6tnl - Virtual tunnel interface IPv4|IPv6 over IPv6
    • ipip - Virtual tunnel interface IPv4 over IPv4
    • sit - Virtual tunnel interface IPv6 over IPv4
    • gre - Virtual tunnel interface GRE over IPv4
    • gretap - Virtual L2 tunnel interface GRE over IPv4
    • ip6gre - Virtual tunnel interface GRE over IPv6
    • ip6gretap - Virtual L2 tunnel interface GRE over IPv6
    • vti - Virtual tunnel interface
    • nlmon - Netlink monitoring device
    • geneve - GEneric NEtwork Virtualization Encapsulation
    • macsec - Interface for IEEE 802.1AE MAC Security (MACsec)
  • numtxqueues QUEUE_COUNT:指定新设备的传输队列数
  • numrxqueues QUEUE_COUNT:指定新设备的接收队列数

type 是必须指定的,ARGS 依赖type,VLAN为例。

VLAN类型的链路,支持以下附加参数:ip link add link DEVICE name NAME type vlan [ protocol VLAN_PROTO ] id VLANID [ reorder_hdr { on | off } ] [ gvrp { on | off } ] [ mvrp { on | off } ] [ loose_binding { on | off } ] [ ingress-qos-map QOS-MAP ] [ egress-qos-map QOS-MAP ]

  • protocol VLAN_PROTO :802.1Q或802.1ad
  • id VLANID:指定要使用的VLAN标识符。请注意,带前导“0”或“0x”的数字分别被解释为八进制或十六进制
  • reorder_hdr { on | off }:指定以太网报头是否重新排序
  • gvrp { on | off } :指定是否应使用GARP VLAN注册协议注册此VLAN
  • mvrp{on | off}:指定是否应使用多个VLAN注册协议注册此VLAN
  • loose_binding {on | off}:指定VLAN设备状态是否绑定到物理设备状态
  • ingress-qos-map QOS-MAP:定义传入帧上优先级代码点之间的映射。格式为从:到由空格分隔的多个映射
  • egress-qos-map QOS-MAP:与入口qos映射相同,但用于输出帧

如果想查看其它的type类型的ARGS参数,可以通过 ip link add type VLAN helpip link add type veth help即可:

[root@localhost test]# ip link add  type veth help
Usage: ip link <options> type veth [peer <options>]
To get <options> type 'ip link add help'
[root@localhost test]#

2.1.1 添加网卡

只能是虚拟网卡 :

ip link add name veth0 type veth peer name veth1 创建虚拟网卡,成对出现 veth0 veth1

name 标签可以省略:
ip link add veth0 type veth peer name veth1

更详细的信息参见 【计算机网络】Linux虚拟网络设备之veth(arp incomplete)

2.1.2 添加VLAN 设备

ip link add link eth0 name eth0.10 type vlan id 10

这条命令将在 eth0 接口上创建一个 VLAN 设备,ID 为 10,设备名称为 eth0.10。

使用 ip link show type vlan 进行查看:
在这里插入图片描述

2.1.3 添加网桥

ip link add name bridge_name type bridge
也可以简化 ip link add bridge_name type bridge

和网桥相关的一组参数

# ip link add name bridge_name type bridge 也可以简化 ip link add bridge_name type bridge
# ip link set bridge_name up

想要添加Interface到网桥上,interface状态必须是Up
# ip link set eth0 up
添加eth0 interface到网桥上
# ip link set eth0 master bridge_name
从网桥解绑eth0
# ip link set eth0 nomaster
eth0 可以关闭的
# ip link set eth0 down
删除网桥可以用
# ip link delete bridge_name type bridge
也可以简化为
# ip link del bridge_name

2.2 ip link set

该命令用于更改设备属性。ip link set是对当前的网卡进行配置,多是当前网卡的属性,例如网卡的启动状态,网卡的ip地址和子网掩码、广播地址;

如果请求多个参数更改,则任何更改失败后,ip会立即中止。 这是ip可以将系统移至不可预测状态的唯一情况。 解决方案是避免通过一个ip链接集调用更改多个参数,即单一的命令仅完成单一的功能。

       ip link set { DEVICE | dev DEVICE | group DEVGROUP }
                          [ { up | down } ]
                          [ type TYPE ARGS ]
                          [ arp { on | off } ]
                          [ dynamic { on | off } ]
                          [ multicast { on | off } ]
                          [ allmulticast { on | off } ]
                          [ promisc { on | off } ]
                          [ trailers { on | off } ]
                          [ carrier { on | off } ]
                          [ txqueuelen PACKETS ]
                          [ name NEWNAME ]
                          [ address LLADDR ]
                          [ broadcast LLADDR ]
                          [ mtu MTU ]
                          [ netns { PID | NAME } ]
                          [ link-netnsid ID ]
                          [ alias NAME ]
                          [ vf NUM [ mac LLADDR ]
                                   [ vlan VLANID [ qos VLAN-QOS ] [ proto VLAN-PROTO ] ]
                                   [ rate TXRATE ]
                                   [ max_tx_rate TXRATE ]
                                   [ min_tx_rate TXRATE ]
                                   [ spoofchk { on | off} ]
                                   [ query_rss { on | off} ]
                                   [ state { auto | enable | disable} ] ]
                                   [ trust { on | off} ] ]
                                   [ node_guid { eui64 } ]
                                   [ port_guid { eui64 } ]
                          [ xdp { off |
                                  object FILE [ section NAME ] [ verbose ] |
                                  pinned FILE } ]
                          [ master DEVICE ][ vrf NAME ]
                          [ nomaster ]
                          [ addrgenmode { eui64 | none | stable_secret | random } ]
                          [ protodown { on | off } ]

option:

  • dev DEVICE:指定要操作的网络设备。 在配置SR-IOV虚拟功能(VF)设备时,此关键字应指定关联的物理功能(PF)设备
  • group GROUP:GROUP具有双重作用:如果同时存在group和dev,则将设备移至指定的组。 如果仅指定了一个组,则该命令将在该组中的所有设备上运行
  • up and down:将设备的状态更改为UP或DOWN
  • arp on or arp off:开启或关闭arp
  • multicast on or multicast off:更改设备上的多播标志
  • protodown on or protodown off:更改设备上的PROTODOWN状态。 表示已在端口上检测到协议错误。 交换机驱动程序可以通过对交换机端口进行物理检查来对此错误做出反应
  • dynamic on or dynamic off:更改设备上的DYNAMIC标志
  • name NAME:更改设备的名称。 如果设备正在运行或已经配置了某些地址,则不建议执行此操作
  • txqueuelen NUMBER / txqlen NUMBER:更改设备的传输队列长度
  • mtu NUMBER:更改设备的MTU
  • address LLADDRESS:更改接口地址
  • peer LLADDRESS:当接口为点对点时,更改链路层广播地址或对等地址
  • netns NETNSNAME | PID:将设备移至与名称NETNSNAME关联的网络名称空间或处理PID
  • alias NAME:为设备提供一个符号名称,以便于参考
  • vf NUM:vf NUM指定要配置的虚拟功能设备。必须使用dev参数指定关联的PF设备
    • mac LLADDRESS: 更改指定VF的站地址。必须指定vf参数
    • vlan VLANID:更改为指定VF分配的VLAN。 指定后,将从VF发送的所有流量标记为指定的VLAN ID。 传入的流量将针对指定的VLAN ID进行过滤,并在将所有VLAN标记传递给VF之前将其剥离。 将此参数设置为0将禁用VLAN标记和过滤。 必须指定vf参数
    • qos VLAN-QOS:为VLAN标记分配VLAN QOS(优先级)位。指定时,VF传输的所有VLAN标记将在VLAN标记中包含指定的优先级位。如果未指定,则假定该值为0。必须同时指定vf和vlan参数。将vlan和qos都设置为0将禁用VF的vlan标记和筛选
    • rate TXRATE:更改指定VF的允许传输带宽(以Mbps为单位)。 将此参数设置为0将禁用速率限制。 必须指定vf参数。 请改用新的API max_tx_rate选项
    • max_tx_rate TXRATE:更改指定VF允许的最大传输带宽(以Mbps为单位)。必须指定vf参数
    • min_tx_rate TXRATE:更改指定VF的允许的最小传输带宽(以Mbps为单位)。 最小TXRATE应始终<=最大TXRATE。 必须指定vf参数
    • spoofchk on|off:打开或关闭指定VF的数据包欺骗检查
    • query_rss on|off:切换查询特定VF的RSS配置的功能。 VF RSS信息(例如RSS哈希键)在某些设备上可能被认为是敏感的,这些设备在VF和PF之间共享,因此默认情况下可能禁止其查询
    • state auto|enable|disable:将虚拟链接状态设置为指定的VF所看到的状态。设置为auto表示PF-link状态的反映,enable允许VF与该主机上的其他VF通信,即使PF-link状态为down,disable也会导致HW丢弃VF发送的任何数据包
    • trust on|off:信任指定的VF用户。这使得VF用户可以设置可能影响安全性和/或性能的特定特性。(例如VF多播混杂模式)
  • master DEVICE:设置设备的主设备
  • nomaster:取消设置设备的主设备
  • addrgenmode eui64 or addrgenmode none:设置IPv6地址生成模式
  • link-netnsid:为跨网络接口设置对等网络标识
  • type ETYPE TYPE_ARGS:

2.2.1 设置网卡

ip link set eth0 up 或:ifconfig eth0 up 开启eth0网卡
ip link set eth0 down 或:ifconfig eth0 down 关闭eth0网卡
ip link set eth0 promisc on 开启网卡的混合模式
ip link set eth0 promisc offi 关闭网卡的混合模式
ip link set eth0 txqueuelen 1200 设置网卡队列长度
ip link set eth0 mtu 1400 设置网卡最大传输单元

ip link set eth0 master bridge_name 添加eth0 interface到网桥上
ip link set eth0 nomaster 从网桥解绑eth0

ip link set veth199 netns netns199 把网卡veth199 添加到 netns199网络空间下

2.2.2 设置网桥

ip link set bridge_name up 启动网桥
ip link set bridge_name down 关闭网桥

brctl 和ip link 操作网桥(Bridge)网卡

2.3 ip link show

ifconfig仅显示up状态的设备,ip link显示全部设备,不管状态如何 ,详情参见ip addr、ip link、ifconfig

ip link show 命令用于查看当前的网卡信息;例如前面的ip link set 修改了属性后,可以使用ip link show 进行查看;

show可省略, ip link 等价于 ip link show

option:

  • dev NAME (default):名称指定要显示的网络设备。如果省略此参数,则会列出默认组中的所有设备
  • group GROUP:指定要显示的设备组
  • up:仅显示正在运行的接口
  • master DEVICE:显示主设备
  • type TYPE:指定要显示的设备类型

ip link show 显示网络接口信息,显示全部
ip link show eht0 显示eth0网卡的网络接口信息
ip link show type vlan 显示vlan类型设备,其实就是对类型进行过滤

2.4 ip link delete

语法:
ip link delete { DEVICE | dev DEVICE | group DEVGROUP } type TYPE [ ARGS ]

用于删除目标设备

option:

  • dev DEVICE:指定要操作的虚拟设备 , dev 可以省略 ,直接指定 DEVICE 名称即可
  • group GROUP:指定要删除的虚拟链接组。不允许删除组0,因为它是默认组
  • type TYPE:指定设备的类型

ip link delete dev eth0.10 删除设备,dev可以省略

ip link delete veth0 自动成对删除

ip link delete veth0 type veth peer veth1 也可以删除,不知道type veth有啥用,加不加没有啥影响,后面的args peer veth1好像也没影响

参考

ip命令详解

  • 5
    点赞
  • 46
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要在Linux上临时配置网络IP,你可以使用ifconfig或者ip命令。下面是使用这两个命令进行临时网络IP配置的方法: 使用ifconfig命令: 1. 打开终端。 2. 输入以下命令来查看当前网络接口的信息: ``` ifconfig ``` 3. 找到你想要配置IP的网络接口,通常是以eth、enp或wlan开头的接口名。 4. 输入以下命令来配置网络IP: ``` sudo ifconfig <interface_name> <ip_address> netmask <netmask> ``` 其中,<interface_name>是网络接口名,<ip_address>是要分配给该接口的IP地址,<netmask>是子网掩码。 例如: ``` sudo ifconfig eth0 192.168.1.100 netmask 255.255.255.0 ``` 这将把eth0接口的IP地址设置为192.168.1.100,子网掩码为255.255.255.0。 5. 输入以下命令来启用网络接口: ``` sudo ifconfig <interface_name> up ``` 例如: ``` sudo ifconfig eth0 up ``` 使用ip命令: 1. 打开终端。 2. 输入以下命令来查看当前网络接口的信息: ``` ip addr show ``` 3. 找到你想要配置IP的网络接口,通常是以eth、enp或wlan开头的接口名。 4. 输入以下命令来配置网络IP: ``` sudo ip addr add <ip_address>/<netmask> dev <interface_name> ``` 其中,<ip_address>是要分配给该接口的IP地址,<netmask>是子网掩码,<interface_name>是网络接口名。 例如: ``` sudo ip addr add 192.168.1.100/24 dev eth0 ``` 这将把eth0接口的IP地址设置为192.168.1.100,子网掩码为24。 5. 输入以下命令来启用网络接口: ``` sudo ip link set <interface_name> up ``` 例如: ``` sudo ip link set eth0 up ``` 请注意,上述的IP配置都是临时的,重启后会恢复为默认配置。如果你想要永久配置网络IP,请参考操作系统的文档或配置文件。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值