/etc/networks 文件的实际用法

/etc/networks 文件的实际用法

文件的实际用途是什么/etc/networks?据我了解,人们可以在此文件中为网络命名。例如:

root@fw-test:~# cat /etc/networks
default         0.0.0.0
loopback        127.0.0.0
link-local      169.254.0.0
google-dns      8.8.4.4
root@fw-test:~# 

但是,如果我尝试在ip实用程序中使用此网络名称,则它不起作用:

root@fw-test:~# ip route add google-dns via 104.236.63.1 dev eth0
Error: an inet prefix is expected rather than "google-dns".
root@fw-test:~# ip route add 8.8.4.4 via 104.236.64.1 dev eth0
root@fw-test:~#

文件的实际用途是什么/etc/networks

答案1

正如写在手册页,该/etc/networks文件用于描述网络的符号名称。对于网络来说,它是指.0末尾带有尾部的网络地址。仅支持简单的 A、B 或 C 类网络。

在您的示例中,google-dns输入是错误的。它不是 A、B 或 C 网络。这是一个 ip-address-hostname-relationship,因此它属于/etc/hosts.实际上default条目也不符合要求。

假设您有一个192.168.1.5来自公司网络的 IP 地址。的条目/etc/network可以是:

corpname 192.168.1.0

当使用诸如route或 之类的实用程序时netstat,这些网络将被转换(如果您不使用该-n标志抑制解析)。路由表可能如下所示:

Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
default         192.168.1.1     0.0.0.0         UG    0      0        0 eth0
corpname        *               255.255.255.0   U     0      0        0 eth0

答案2

ip命令也从不使用主机名进行输入,因此您的示例几乎不相关。此外,您还输入了主机名/etc/networks,而不是网络名称!

来自的条目/etc/networks由尝试将数字转换为名称的工具使用,例如(已弃用的)route命令。如果没有合适的条目,它会显示:

# route
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
default         192.168.1.254   0.0.0.0         UG    0      0        0 eth0
192.168.0.0     *               255.255.254.0   U     0      0        0 eth0

如果我现在添加一行mylocalnet 192.168.0.0/etc/networks

# route
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
default         192.168.1.254   0.0.0.0         UG    0      0        0 eth0
mylocalnet      *               255.255.254.0   U     0      0        0 eth0

在实践中它从未被真正使用过。

相关内容