简介

  • ip命令

linux ip命令 详解

ip 命令是 Linux 中用于配置网络接口和路由表的强大工具。它是 ifconfigroute 命令的继任者,提供了更多的功能和灵活性。以下是关于 ip 命令的详细解释:

语法:

1
ip [选项] OBJECT COMMAND

OBJECT 可以是 link(网络接口)、address(IP 地址和路由表)、route(路由)、neighbor(ARP 缓存)、rule(路由策略)等。

常用选项:

  • -s--stats:显示详细的统计信息。
  • -d--details:显示更多的详细信息。
  • -f--family:指定地址族,如 inet(IPv4) 或 inet6(IPv6)。
  • -4-6:指定使用 IPv4 或 IPv6 地址。

示例用法:

  1. 显示网络接口信息:
    1
    
    ip link show
    

    1
    
    ip link
    

    显示当前系统上的网络接口。

  2. 显示指定接口的详细信息:
    1
    
    ip link show eth0
    

    显示名为 eth0 的网络接口的详细信息。

  3. 启用或禁用网络接口:
    1
    
    ip link set eth0 up
    

    1
    
    ip link set eth0 down
    

    启用或禁用名为 eth0 的网络接口。

  4. 显示 IP 地址信息:
    1
    
    ip address show
    

    1
    
    ip a
    

    显示当前系统上的 IP 地址信息。

  5. 为网络接口分配 IP 地址:
    1
    
    ip address add 192.168.1.2/24 dev eth0
    

    为名为 eth0 的网络接口分配 IP 地址。

  6. 删除网络接口上的 IP 地址:
    1
    
    ip address del 192.168.1.2/24 dev eth0
    

    从名为 eth0 的网络接口上删除指定的 IP 地址。

  7. 添加静态路由:
    1
    
    ip route add 192.168.2.0/24 via 192.168.1.1
    

    添加到网络 192.168.2.0/24 的静态路由。

  8. 显示路由表:
    1
    
    ip route show
    

    1
    
    ip r
    

    显示当前系统上的路由表。

  9. 删除路由:
    1
    
    ip route del 192.168.2.0/24
    

    从路由表中删除到网络 192.168.2.0/24 的路由。

  10. 显示 ARP 缓存:
    1
    
    ip neigh show
    

    1
    
    ip n
    

    显示当前系统上的 ARP 缓存。

  11. 添加静态 ARP 条目:
    1
    
    ip neigh add 192.168.1.2 lladdr 00:11:22:33:44:55 dev eth0
    

    添加到 IP 地址 192.168.1.2 的静态 ARP 条目。

这些示例演示了一些常见的 ip 命令用法,但 ip 命令支持的功能非常丰富,可用于更高级的网络配置和管理任务。

linux ip命令 常用技巧

以下是一些在使用 ip 命令时的常用技巧:

  1. 查看详细信息:
    1
    
    ip -s -d link show eth0
    

    使用 -s--stats)和 -d--details)选项,显示更详细的网络接口信息。

  2. 使用 ip 替代 ifconfig
    1
    
    ip addr show
    

    ip 命令可以替代 ifconfig 来显示网络接口和 IP 地址信息,是一个更现代化的工具。

  3. 显示指定地址族的信息:
    1
    
    ip -4 addr show
    

    1
    
    ip -6 addr show
    

    使用 -4-6 选项,只显示 IPv4 或 IPv6 地址信息。

  4. 动态调整 MTU(最大传输单元):
    1
    
    ip link set eth0 mtu 1400
    

    使用 mtu 选项,可以动态调整网络接口的最大传输单元。

  5. 显示指定网络接口的广播地址:
    1
    
    ip addr show eth0 | grep inet | awk '{print $6}'
    

    使用 grepawk 来提取并显示广播地址。

  6. 启用反向路径过滤(RP Filter):
    1
    
    ip rpfilter show
    

    rpfilter 是一种网络安全功能,可以使用 ip rpfilter 命令查看和配置。

  7. 使用 ip 设置默认网关:
    1
    
    ip route add default via 192.168.1.1
    

    使用 ip route 命令可以设置默认网关,替代传统的 route add default gw

  8. 显示连接状态:
    1
    
    ip -s link
    

    使用 -s 选项,显示连接状态和统计信息。

  9. 显示指定端口的监听状态:
    1
    
    ss -ltnp | grep :80
    

    使用 ss 命令查看指定端口的监听状态。

  10. 使用 ip 添加 VLAN:
    1
    
    ip link add link eth0 name eth0.100 type vlan id 100
    

    使用 ip 命令可以方便地添加 VLAN。

  11. ip 命令中使用正则表达式过滤输出:
    1
    
    ip address show | grep -E 'inet (192\.168\.|10\.)'
    

    使用 grep 和正则表达式,过滤并显示指定网段的 IP 地址。

这些技巧可以帮助你更灵活地使用 ip 命令,进行更复杂的网络配置和监控任务。

linux ip命令 高级技巧

以下是一些在使用 ip 命令时的高级技巧,适用于更复杂的网络配置和管理任务:

  1. 创建虚拟以太网接口(veth pair):
    1
    
    ip link add veth0 type veth peer name veth1
    

    创建一对虚拟以太网接口 veth0veth1,它们被连接在一起。

  2. 使用 ip 设置源地址验证(Source Validation):
    1
    
    ip rpfilter add dev eth0
    

    启用源地址验证,对于从指定网络接口出去的数据包进行检查。

  3. 更改网络接口的 MAC 地址:
    1
    
    ip link set dev eth0 address 00:11:22:33:44:55
    

    更改网络接口 eth0 的 MAC 地址。

  4. 创建 Linux 桥接设备:
    1
    2
    3
    4
    
    ip link add name br0 type bridge
    ip link set dev eth0 master br0
    ip link set dev eth1 master br0
    ip link set dev br0 up
    

    创建一个 Linux 桥接设备,将 eth0eth1 添加到桥接设备,并启用桥接设备。

  5. 创建隧道接口(Tunnel Interface):
    1
    2
    
    ip tunnel add tun0 mode gre remote 203.0.113.1 local 203.0.113.2
    ip link set tun0 up
    

    创建一个 GRE 隧道接口 tun0,指定远程和本地地址。

  6. 配置网络命名空间(Network Namespace):
    1
    2
    3
    4
    5
    
    ip netns add ns1
    ip link add veth0 type veth peer name veth1
    ip link set veth1 netns ns1
    ip netns exec ns1 ip link set dev lo up
    ip netns exec ns1 ip link set dev veth1 up
    

    创建一个网络命名空间 ns1,并将虚拟以太网接口 veth1 移动到该命名空间。

  7. 使用 ip 命令配置 IPset:
    1
    2
    
    ipset create myset hash:ip
    ipset add myset 192.168.1.1
    

    使用 ipset 命令创建和配置 IPset,用于管理 IP 地址集合。

  8. 启用多路径路由(Multipath Routing):
    1
    
    ip route add default nexthop via 192.168.1.1 nexthop via 192.168.1.2
    

    启用多路径路由,使用多个下一跳地址。

  9. 使用 ip 命令进行策略路由:
    1
    2
    
    ip rule add from 192.168.1.1/32 table 1
    ip route add default via 192.168.1.254 table 1
    

    使用 ip ruleip route 命令实现策略路由。

  10. 配置 TCP BBR 拥塞控制算法:
    1
    
    ip route change default via 192.168.1.1 dev eth0 initcwnd 10
    

    使用 ip route 命令配置 TCP BBR 拥塞控制算法的参数。

这些高级技巧展示了 ip 命令的强大功能,适用于更复杂的网络配置和管理场景。在实际应用中,理解这些高级技巧可以帮助你更好地调整和优化网络环境。

ip

  • ip命令与ifconfig命令类似,但是比ifconfig命令更加强大,主要功能是用于显示或者设置网络设备,ip命令是Linux加强版的网络配置工具,用于代替ifconfig命令
  • 语法:ip [options] object { command | help}
    • object为常用对象,值可以是:{ link | addr | addrlabel | route | rule | neigh | ntable | tunnel | maddr | mroute | mrule | monitor | xfrm | token}
    • 常用对象的取值含义:
      • link:网络设备
      • address:设备上的协议(IP或IPv6)地址
      • addrlabel:协议地址选择的标签设置
      • route:路由表条目
      • rule:路由策略数据库中的规则
    • options为常用选项,值可以是:{-V[version] | -s[tatistics] | -d[details] | -r[resolve] | -h[human-readable] -iec | -f[family] {inet6 | ipx | dnet | link } | -o[oneline] | -t[timestamp] | -b[batch] [filename] | -rc[rcvbuf] [size]}
    • 常用选项的取值含义:
      • -V:显示命令的版本信息;
      • -s:输出更详细的信息;
      • -f:强制使用指定的协议族
      • -4:指定使用的网络层协议是IPv4协议;
      • -6:指定使用的网络层协议是IPv6协议
      • -r:显示主机时,不使用IP地址,而使用主机的域名
  • 示例:
    • ip link show # 显示网络接口信息
    • ip link set eth0 up # 开启网卡
    • ip link set eth0 down # 关闭网卡
    • 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 addr show # 显示网卡IP信息
    • ip addr add 192.168.0.1/24 dev eth0 # 设置eth0网卡IP地址192.168.0.1
    • ip addr del 192.168.0.1/24 dev eth0 # 删除eth0网卡IP地址
    • ip route show # 显示系统路由
    • ip route add default via 192.168.1.254 # 设置系统默认路由
    • ip route list # 查看路由信息
    • ip route add 192.168.4.0/24 via 192.168.0.254 dev eth0 # 设置192.168.4.0网段的网关为192.168.0.254,数据走eth0接口
    • ip route add default via 192.168.0.254 dev eth0 # 设置默认网关为192.168.0.254
    • ip route del 192.168.4.0/24 # 删除192.168.4.0网段的网关
    • ip route delete 192.168.1.0/24 dev eth0 # 删除路由

在Linux中,ip命令是一个强大的网络工具,用于管理网络接口、路由表、地址配置等网络相关的操作。它取代了过时的ifconfig命令,并提供更多功能和灵活性。

以下是ip命令的一般语法:

1
ip [options] object command

其中,options是可选的一些选项,用于配置ip命令的行为,object表示要操作的网络对象(如接口、路由表、地址等),command表示要执行的具体命令。

以下是一些常见的ip命令选项和用法:

  1. 查看网络接口信息:
    1
    
    ip link show
    

    此命令将显示系统上所有网络接口的详细信息,包括名称、状态、MAC地址等。

  2. 查看路由表信息:
    1
    
    ip route show
    

    此命令将显示系统的路由表信息,包括目标网络、下一跳地址、接口等。

  3. 配置网络接口IP地址:
    1
    
    ip address add 192.168.1.10/24 dev eth0
    

    此命令将为eth0接口添加IP地址192.168.1.10/24

  4. 启用或禁用网络接口:
    1
    2
    
    ip link set eth0 up
    ip link set eth0 down
    

    第一个命令将启用eth0接口,使其可用;第二个命令将禁用eth0接口,使其不可用。

ip命令还支持其他许多选项和功能,如配置VLAN、设定路由、设置策略路由等。

使用ip命令可以方便地管理和配置网络相关的操作,从而实现网络接口、路由表和地址的管理和调整。它是Linux系统中网络管理的主要工具之一。