Skip to content

Instantly share code, notes, and snippets.

@Linuxpizi
Last active May 9, 2020 19:27
Show Gist options
  • Save Linuxpizi/d6c5877e76f4c047f3448906b326fc61 to your computer and use it in GitHub Desktop.
Save Linuxpizi/d6c5877e76f4c047f3448906b326fc61 to your computer and use it in GitHub Desktop.
linux ip 命令

linux ip 命令操作

原文地址

IP 命令是如何工作的

使用 ip 命令你可以调整 Linux 系统的 ip 地址, 控制网卡和路由。修改是立即生效的,你不需要重启系统。 ip 命令可以做的不仅如此,但是这篇文章我们就关注最主要的功能。

IP 命令还有很多子命令,每一个子命令都是工作在一个对象上的,例如 IP 地址个路由。而且还有很多选项如此多的功能供你选择

我们关注的对象有:

  • IP 地址
  • 连接(Link)
  • 路由(Route)

使用 IP 操作地址

显然,首先你需要知道你要做什么,查找你的电脑有哪些 IP 你使用 IP 命令操作相应的对象,默认行为是 show 它可以显示 IP 列表。 你可以省略 show 或者 地址(address) 的缩写 addr 甚至 a。

下面的命令是等价的

ip address show
ip addr show
ip addr
ip a

只显示IPv4或者IPv6 地址

如果你想限制只显示IPv4输出,你可以使用 -4 选项

ip -4 addr

同理,你可以使用 -6 选项,只输出 IPv6 信息

ip -6 addr

只显示一个网卡信息

如果你只想显示指定网卡的信息,你可以使用 show 和 dev 选项,并且指定网卡名称,如下所示

ip show dev eth0
ip show dev enp0s3

当然你也可以使用 -4 或者 -6 标志 过滤输出你感兴趣的信息 如果你想查看在网卡 enp0s3 上的 IPv4 信息,你可以输入 下面的命令

ip -4 addr show dev enp0s3

添加一个 IP 地址

你可以使用 add 和 dev 选项添加一个 IP 到指定的网卡,你需要告知 IP 命令哪一个 IP 需要添加到哪一个网卡

例如我们添加 IP 地址 192.168.178.2 到 网卡 enp0s3。我们必须要提供 CIDR 子网掩码。 我们可以使用下面的命令

ip addr add 192.168.178.2/24 dev enp0s3

我们可以使用下面的命令查看操作是否成功

ip -4 addr show dev enp0s3

新的 IP 已经添加到了指定的网卡,我们可以登陆到另一台主机,然后使用下面的命令验证

ping 192.168.178.2

删除 IP 地址

删除 IP 地址,命令和添加 IP 地址很像,你只需要使用 del 替换 add,例如下面:

ip addr del 192.168.178/24 dev enp0s3

同样的,你可以使用下面的命令校验

ip -4 addr show dev enp0s3

使用 IP 操作路由(Route)

使用 route 对象,你可以查看和操作路由。路由定义了网路如何经过不同的网卡分发到不同的 IP 地址。

如果目的主机和设备在同一个网络,可以直接发包

如果在不同的网络就需要经过网关和路由

查看你主机的路由信息,使用下面的命令

ip route

或者

ip ro

查看指定路由

如果你关注指定的路由的详细信息,你可以使用 list 选项和 IP 地址范围命令如下:

ip route list 192.168.178.2/24

添加一个路由

我们添加一个网卡,可以使用下面的命令:

ip link show

我们添加一个新的路由到这个新的网卡,首先,使用下面的命令绑定 IP:

ip addr add 192.168.178.2/24 dev enp0s3

一个默认的路由已经添加了到新的网卡,我们使用 delete 选项,就像下面,去删除默认的路由

ip route delete default via 192.168.178.2 dev enp0s3

现在我们就可以使用 add 选项添加一个新的路由。新的网卡就会处理 192.168.178.2/24 IP 范围的网络分发。 我们给他 metric 100;因为它是仅有的路由。命令如下:

ip route add 192.168.178.2/24 dev enp0s3 metric 100

现在,我们可以使用下面的命令进行验证:

ip route

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment