ip addr 和 ifconfig 之间的区别?

ip addr 和 ifconfig 之间的区别?

如果是子网,那么它应该有 254 个主机。但它告诉我这是我的 Linux 虚拟机的私有 IP 地址,但它看起来像子网。如果我使用 ip addr 命令,它显示我的 ip10.0.1.178/24如下所示,但如果我使用 ifconfig 命令,它显示我的 ipaddres10.0.1.178如下所示

输出ip addr

eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 9001 qdisc fq_codel state UP group default qlen 1000
    link/ether 02:e4:6b:7e:e5:ea brd ff:ff:ff:ff:ff:ff
    inet 10.0.1.178/24 brd 10.0.1.255 scope global dynamic eth0
       valid_lft 1928sec preferred_lft 1928sec
    inet6 fe80::e4:6bff:fe7e:e5ea/64 scope link 
       valid_lft forever preferred_lft forever

输出ifconfig

eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 9001
        inet 10.0.1.178  netmask 255.255.255.0  broadcast 10.0.1.255
        inet6 fe80::e4:6bff:fe7e:e5ea  prefixlen 64  scopeid 0x20<link>
        ether 02:e4:6b:7e:e5:ea  txqueuelen 1000  (Ethernet)
        RX packets 782364  bytes 646522004 (646.5 MB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 363184  bytes 42400501 (42.4 MB)

答案1

ip addr和的输出ifconfig是相同的 IP 地址和网络掩码的等效但略有不同的表示法。

概念

10.0.1.178/24

表示您的 IP 地址是10.0.1.178,并且您的网络的网络掩码由该地址的前 24 位组成。这与声明相同

inet 10.0.1.178 netmask 255.255.255.0

输出的ifconfig内容,仅以更紧凑的表示法表示,并且意味着就内核路由表而言,您的 IP 地址被视为属于可以托管最多 254 台不同计算机的子网,其地址范围可以从10.0.1.110.0.1.254

当尝试确定是否可以到达要打开连接的给定远程地址时,网络掩码信息与内核相关。诸如eg 之类的地址10.0.1.25可以立即访问,因为它与您自己的计算机属于同一子网,但为了到达,10.0.2.105必须配置适当的路由。

您可能想看看这篇维基百科文章或者这篇关于路由的文章供进一步阅读。

答案2

正斜杠之后的第二部分是您的子网掩码——换句话说,您的专用网络上的可用地址数量。如果您的情况是 256。请查看此子网备忘单:https://www.aelius.com/njh/subnet_sheet.html

答案3

ip(8) 是原生 Linux 网络操作实用程序,属于 iproute2 项目。它可以用来与内核NETLINK套接字交互来控制Linux网络事物。

ifconfig(8) 是一个 BSD 兼容的网络操作实用程序,它只是 iproute2 的包装。

简而言之:ifconfig(8) 是 if ip(8) 的子集,我们保留它是为了兼容性。

提示:如果可能,请使用 ip(8) 而不是 ifconfig(8)。

相关内容