简介
- ip命令
linux ip命令 详解
ip
命令是 Linux 中用于配置网络接口和路由表的强大工具。它是 ifconfig
和 route
命令的继任者,提供了更多的功能和灵活性。以下是关于 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
ip link show
或
1
ip link
显示当前系统上的网络接口。
显示指定接口的详细信息:
1
ip link show eth0
显示名为
eth0
的网络接口的详细信息。启用或禁用网络接口:
1
ip link set eth0 up
或
1
ip link set eth0 down
启用或禁用名为
eth0
的网络接口。显示 IP 地址信息:
1
ip address show
或
1
ip a
显示当前系统上的 IP 地址信息。
为网络接口分配 IP 地址:
1
ip address add 192.168.1.2/24 dev eth0
为名为
eth0
的网络接口分配 IP 地址。删除网络接口上的 IP 地址:
1
ip address del 192.168.1.2/24 dev eth0
从名为
eth0
的网络接口上删除指定的 IP 地址。添加静态路由:
1
ip route add 192.168.2.0/24 via 192.168.1.1
添加到网络
192.168.2.0/24
的静态路由。显示路由表:
1
ip route show
或
1
ip r
显示当前系统上的路由表。
删除路由:
1
ip route del 192.168.2.0/24
从路由表中删除到网络
192.168.2.0/24
的路由。显示 ARP 缓存:
1
ip neigh show
或
1
ip n
显示当前系统上的 ARP 缓存。
添加静态 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
ip -s -d link show eth0
使用
-s
(--stats
)和-d
(--details
)选项,显示更详细的网络接口信息。使用
ip
替代ifconfig
:1
ip addr show
ip
命令可以替代ifconfig
来显示网络接口和 IP 地址信息,是一个更现代化的工具。显示指定地址族的信息:
1
ip -4 addr show
或
1
ip -6 addr show
使用
-4
或-6
选项,只显示 IPv4 或 IPv6 地址信息。动态调整 MTU(最大传输单元):
1
ip link set eth0 mtu 1400
使用
mtu
选项,可以动态调整网络接口的最大传输单元。显示指定网络接口的广播地址:
1
ip addr show eth0 | grep inet | awk '{print $6}'
使用
grep
和awk
来提取并显示广播地址。启用反向路径过滤(RP Filter):
1
ip rpfilter show
rpfilter
是一种网络安全功能,可以使用ip rpfilter
命令查看和配置。使用
ip
设置默认网关:1
ip route add default via 192.168.1.1
使用
ip route
命令可以设置默认网关,替代传统的route add default gw
。显示连接状态:
1
ip -s link
使用
-s
选项,显示连接状态和统计信息。显示指定端口的监听状态:
1
ss -ltnp | grep :80
使用
ss
命令查看指定端口的监听状态。使用
ip
添加 VLAN:1
ip link add link eth0 name eth0.100 type vlan id 100
使用
ip
命令可以方便地添加 VLAN。在
ip
命令中使用正则表达式过滤输出:1
ip address show | grep -E 'inet (192\.168\.|10\.)'
使用
grep
和正则表达式,过滤并显示指定网段的 IP 地址。
这些技巧可以帮助你更灵活地使用 ip
命令,进行更复杂的网络配置和监控任务。
linux ip命令 高级技巧
以下是一些在使用 ip
命令时的高级技巧,适用于更复杂的网络配置和管理任务:
创建虚拟以太网接口(veth pair):
1
ip link add veth0 type veth peer name veth1
创建一对虚拟以太网接口
veth0
和veth1
,它们被连接在一起。使用
ip
设置源地址验证(Source Validation):1
ip rpfilter add dev eth0
启用源地址验证,对于从指定网络接口出去的数据包进行检查。
更改网络接口的 MAC 地址:
1
ip link set dev eth0 address 00:11:22:33:44:55
更改网络接口
eth0
的 MAC 地址。创建 Linux 桥接设备:
1
2
3
4ip 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 桥接设备,将
eth0
和eth1
添加到桥接设备,并启用桥接设备。创建隧道接口(Tunnel Interface):
1
2ip tunnel add tun0 mode gre remote 203.0.113.1 local 203.0.113.2
ip link set tun0 up创建一个 GRE 隧道接口
tun0
,指定远程和本地地址。配置网络命名空间(Network Namespace):
1
2
3
4
5ip 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
移动到该命名空间。使用
ip
命令配置 IPset:1
2ipset create myset hash:ip
ipset add myset 192.168.1.1使用
ipset
命令创建和配置 IPset,用于管理 IP 地址集合。启用多路径路由(Multipath Routing):
1
ip route add default nexthop via 192.168.1.1 nexthop via 192.168.1.2
启用多路径路由,使用多个下一跳地址。
使用
ip
命令进行策略路由:1
2ip rule add from 192.168.1.1/32 table 1
ip route add default via 192.168.1.254 table 1使用
ip rule
和ip route
命令实现策略路由。配置 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地址,而使用主机的域名
- object为常用对象,值可以是:
- 示例:
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
ip link show
此命令将显示系统上所有网络接口的详细信息,包括名称、状态、MAC地址等。
查看路由表信息:
1
ip route show
此命令将显示系统的路由表信息,包括目标网络、下一跳地址、接口等。
配置网络接口IP地址:
1
ip address add 192.168.1.10/24 dev eth0
此命令将为
eth0
接口添加IP地址192.168.1.10/24
。启用或禁用网络接口:
1
2ip link set eth0 up
ip link set eth0 down第一个命令将启用
eth0
接口,使其可用;第二个命令将禁用eth0
接口,使其不可用。
ip
命令还支持其他许多选项和功能,如配置VLAN、设定路由、设置策略路由等。
使用ip
命令可以方便地管理和配置网络相关的操作,从而实现网络接口、路由表和地址的管理和调整。它是Linux系统中网络管理的主要工具之一。