linux修改ip

Linux 中如何使用 IP 命令
老版本的 Linux 中都是使用 ifconfig 命令检查和配置网络接口,但是该命令目前已经没有维护了,取而代之的是 ip 命令
ip 命令和 ifconfig 命令很相似,但是 相比起来,ip命令的功能更强大,它能执行多种 ifconfig命令无法执行的任务
本文将介绍 ip 命令常用的一些操作
显示所有网络接口信息输入 ip addr 或者 ip a 命令可以显示所有的网络接口信息
[root@ecs-centos-7 ~]# ip addr1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00inet 127.0.0.1/8 scope host lovalid_lft forever preferred_lft foreverinet6 ::1/128 scope hostvalid_lft forever preferred_lft forever2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000link/ether fa:16:3e:e0:4f:b8 brd ff:ff:ff:ff:ff:ffinet 192.168.0.9/24 brd 192.168.0.255 scope global noprefixroute dynamic eth0valid_lft 74409sec preferred_lft 74409secinet6 fe80::f816:3eff:fee0:4fb8/64 scope linkvalid_lft forever preferred_lft forever[root@ecs-centos-7 ~]#
上面的输出中,可以看出系统目前的网络接口分别是 lo 和 eth0, 前者是网络环回接口,后者是常规的网络接口
输出接口信息的 字段详解
<BROADCAST,MULTICAST,UP,LOWER_UP>: BROADCAST 表示支持广播, MULTICAST 表示支持多播UP 网络接口处于开启状态LOWER_UP 表示网络电缆已插入并且已连上网络mtu 1500: 最大传输的单位1500字节qdisc pfifo_fast: 数据包排队state UP: 接口状态已开启qlen 1000: 传输队列长度link/ether fa:16:3e:e0:4f:b8 Mac地址brd ff:ff:ff:ff:ff:ff 广播地址inet 192.168.0.9/24 : IPV4scope global: 全局有效dynamic eth0: 动态分配地址valid_lft 74409sec: IPV4有效期preferred_lft 74409sec: IPV4首选生存期inet6 fe80::f816:3eff:fee0:4fb8/64IPV6scope link: 仅在此接口上生效
除了输出所有的网络接口信息外,还可以按照以下方式个性化输出网络接口信息

  • 按照是否支持 IPV4 或 IPV6输出
命令 ip -4 a 会输出只支持IPV4的接口信息
同样,命令 ip -6 a 会输出只支持IPV6的接口信息
  • 按照接口名字输出
命令 ip a show eth0会输出 eth0接口的信息
[root@ecs-centos-7 ~]# ip a show eth02: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000link/ether fa:16:3e:e0:4f:b8 brd ff:ff:ff:ff:ff:ffinet 192.168.0.9/24 brd 192.168.0.255 scope global noprefixroute dynamic eth0valid_lft 73494sec preferred_lft 73494secinet6 fe80::f816:3eff:fee0:4fb8/64 scope linkvalid_lft forever preferred_lft forever
  • 按照网络接口开启和关闭状态输出
命令 ip link ls up 会输出所有处于开启状态的网络接口信息
那么,ip link ls down就会输出所有处于关闭状态的网络接口信息
为网络接口 添加、移除 IP地址
  • 添加IP
为指定网络接口分配IP地址的命令格式: ip a add ip地址 dev 接口名字
比如:现在要为eth0 网络接口分配一个网络掩码为 20 的IP 192.168.1.10, 具体的输入请看下面的实例
[root@ecs-centos-7 ~]# ip a add 192.168.1.10/20dev eth0[root@ecs-centos-7 ~]# ip a show eth02: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000link/ether fa:16:3e:e0:4f:b8 brd ff:ff:ff:ff:ff:ffinet 192.168.0.9/24 brd 192.168.0.255 scope global noprefixroute dynamic eth0valid_lft 71787sec preferred_lft 71787secinet 192.168.1.10/20 scope global eth0valid_lft forever preferred_lft foreverinet6 fe80::f816:3eff:fee0:4fb8/64 scope linkvalid_lft forever preferred_lft forever
从上面例子的输出结果可以看出,网络接口eth0上多了一个192.168.1.10的 IP
命令 ip a add 192.168.1.10/20 dev eth0 执行成功的话,是没有任何输出,如果网络接口 eth0 不存在的话,会输出 Cannot find device "eth0" 的错误信息

推荐阅读