ip命令基本使用
ip 命令是linux中常用的网络配置命令
ip命令是iproute2包中的命令
安装
一般发行版再带ip命令
# macos
brew install iproute2mac
# ubuntu
apt install iproute2
# centos
yum install iproute2
设备(device)
主要是配置OSI模型中的第二层数据链路层
查看设备
# 显示所有
ip link show
详细显示
ip -s link show
操作设备
# 开启网卡
ip link set ens33 up
# 关闭网卡
ip link set ens33 down
# 开启网卡的混合模式
ip link set ens33 promisc on
# 关闭网卡的混个模式
ip link set ens33 promisc offi
# 设置网卡队列长度
ip link set ens33 txqueuelen 1200
# 设置网卡最大传输单元
ip link set ens33 mtu 1400
# 修改名字
ip link set ens33 name eth0
# 修改网卡的MAC地址
ip link set ens33 address aa:aa:aa:aa:aa:aa
# 将 ens33 连接到vbr0网桥
ip link set ens33 master vbr0
IP相关配置
查看IP
# 显示所有IP地址
ip address
# 简写
ip addr
# 显示指定网卡的IP
ip addr ens
# 详细显示指定网卡的IP
ip -s addr ens33
2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
link/ether 00:0c:29:d9:89:c8 brd ff:ff:ff:ff:ff:ff
inet 192.168.32.132/24 brd 192.168.32.255 scope global noprefixroute ens33
valid_lft forever preferred_lft forever
inet6 fe80::20c:29ff:fed9:89c8/64 scope link
valid_lft forever preferred_lft forever
- broadcast:设定广播位址,如果设定值是 + 表示让系统自动计算;
- label:该设备的别名,例如eth0:0;
- scope:这个设备的领域,默认global,通常是以下几个大类:
- global:允许来自所有来源的连线;
- site:仅支持IPv6 ,仅允许本主机的连接;
- link:仅允许本设备自我连接;
- host:仅允许本主机内部的连接;
增加IP
# 设置ens33网卡IP地址192.168.1.1
ip addr add 192.168.1.1/24 dev ens33
删除IP
# 删除ens33网卡IP地址
ip addr del 192.168.1.1/24 dev ens33
路由相关配置
查看路由
# 显示系统路由
ip route show
# 简写
ip r
default via 192.168.32.2 dev ens33 proto static metric 100
169.254.0.0/16 dev ens33 scope link metric 1000
172.16.1.0/24 dev docker0 proto kernel scope link src 172.16.1.1
192.168.32.0/24 dev ens33 proto kernel scope link src 192.168.32.132 metric 100
192.168.49.0/24 dev br-e6a94a27c143 proto kernel scope link src 192.168.49.1
192.168.122.0/24 dev virbr0 proto kernel scope link src 192.168.122.1 linkdown
# 显示vip这个路由表的路由
ip route show table vip
# 查看某个地址走那条路由
ip route get 114.114.114.114
- proto:此路由的路由协定,主要有redirect,kernel,boot,static,ra等,其中kernel是直接由核心判断自动设定。
- scope:路由的范围,主要是link,是与本设备有关的直接连接。
增加/修改路由
# 设置192.168.1.0网段的网关为192.168.1.1数据走eth0接口
ip route add 192.168.1.0/24 via 192.168.1.1 dev eth0
# 设置默认网关为192.168.1.1
ip route add default via 192.168.1.1 dev eth0
删除路由
# 删除192.168.1.0网段的网关
ip route del 192.168.1.0/24
# 删除默认路由
ip route del default
# 删除路由
ip route delete 192.168.1.0/24 dev eth0
网络命名空间
查看
ip netns
ip netns show
增加
# 增加一个叫test的网络命名空间
ip netns add test
删除
# 删除一个叫test的网络命名空间
ip netns del test
操作
# 在 test ns 下执行ip addr
ip netns exec test ip addr
参考资料
https://wangchujiang.com/linux-command/c/ip.html
https://www.jianshu.com/p/7466862382c4