![ip addr 和 ifconfig 之间的区别?](https://linux22.com/image/186219/ip%20addr%20%E5%92%8C%20ifconfig%20%E4%B9%8B%E9%97%B4%E7%9A%84%E5%8C%BA%E5%88%AB%EF%BC%9F.png)
如果是子网,那么它应该有 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.1
到10.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)。