您可以在安装Linux时配置TCP / IP网络。但是,如果要有效管理Linux系统上的网络,则需要熟悉TCP / IP配置文件,以便在必要时编辑这些文件。(例如,如果要检查是否正确指定了名称服务器,则必须了解该/etc/resolv.conf
文件,该文件存储名称服务器的IP地址。)
下表总结了基本的TCP / IP配置文件。
这个文件 | 包含以下内容 |
/etc/hosts |
本地网络的IP地址和主机名以及经常访问的任何其他系统 |
/etc/networks |
网络的名称和IP地址 |
/etc/host.conf |
有关如何将主机名转换为IP地址的说明 |
/etc/resolv.conf |
名称服务器的IP地址 |
/etc/hosts.allow |
有关哪些系统可以访问系统上的Internet服务的说明 |
/etc/hosts.deny |
必须拒绝访问系统上的Internet服务的说明 |
/etc/nsswitch.conf |
有关如何将主机名转换为IP地址的说明 |
#
文本文件中的井号()表示注释。
该/etc/hosts
文本文件包含本地网络的IP地址和主机名列表。如果没有名称服务器,系统上的任何网络程序都会查询此文件以确定与主机名对应的IP地址。可以将其/etc/hosts
视为本地电话簿,您可以在其中查找本地主机的IP地址(而不是电话号码)。
这是/etc/hosts
来自系统的文件,显示典型LAN上其他主机的IP地址和名称:
127.0.0.1 localhost localhost.localdomain
# Other hosts on the LAN
192.168.0.100 lnbp933
192.168.0.50 lnbp600
192.168.0.200 lnbp200
192.168.0.233 lnbp233
192.168.0.40 lnbp400
如示例所示,文件中的每一行都以IP地址开头,后跟该IP地址的主机名。(你可以有任何给定的IP地址的多个主机名)在某些分布,如openSUSE的,该/etc/hosts
文件有以下几点:IP-Address
,Fully-Qualified-Hostname
,Short-Hostname
。在所有情况下,主机名(例如Short-Hostname
)之后的任何内容都被视为别名。
/etc/networks
是另一个包含网络名称和IP地址的文本文件。这些网络名称通常用在路由命令(/sbin/route
)中,以按名称而不是IP地址指定网络。
如果您的Linux PC没有该/etc/networks
文件,请不要惊慌。没有此文件,您的TCP / IP网络可以正常工作。实际上,Linux安装程序不会创建/etc/networks
文件。
Linux使用称为解析程序的特殊库(计算机代码集合)来获取与主机名对应的IP地址。该/etc/host.conf
文件指定如何解析名称(即名称如何转换为数字IP地址)。典型/etc/host.conf
文件可能包含以下行:
order hosts, bind
multi on
/etc/host.conf
文件中的条目告诉解析器要使用哪些服务(以及以何种顺序)来解析名称。
该order
选项指示服务的顺序(在最近的发行版中,nsswitch.conf
文件)。示例条目告诉解析程序首先查阅该/etc/hosts
文件,然后检查名称服务器以解析名称。
使用该multi
选项指示/etc/hosts
文件中的主机是否可以具有多个IP地址。具有多个IP地址的主机称为多宿主,因为存在多个IP地址意味着主机具有多个网络接口。(实际上,主机同时存在于多个网络中。)
该/etc/resolv.conf
文件是解析程序使用的另一个文本文件 - 确定主机名IP地址的库。这是一个示例/etc/resolv.conf
文件:
nameserver 192.168.0.1 # dhcp: eth0
search nrockv01.md.comcast.net
该nameserver
行提供域的名称服务器的IP地址。如果您有多个名称服务器,请在单独的行中列出它们。它们按照它们出现在文件中的顺序进行查询。
该search
行告诉解析器如何搜索主机名。myhost
例如,当您尝试查找主机名时,示例中的搜索指令会导致解析器首先尝试myhost.nrockv01.md.comcast.net
,然后myhost.md.comcast.net
最后尝试myhost.comcast.net
。
如果您的网络没有名称服务器,则可以安全地忽略此文件。TCP / IP仍然有效,即使您可能无法按名称引用主机(除了/ etc / hosts文件中列出的主机)。
该/etc/hosts.allow
文件指定允许哪些主机使用系统上运行的Internet服务(如Telnet和FTP)。在某些Internet服务启动之前,请参阅此文件。仅当hosts.allow文件中的条目暗示允许请求主机使用服务时,服务才会启动。
条目/etc/hosts.allow
是服务器:IP地址格式,其中服务器是指提供特定Internet服务的程序的名称,IP地址标识允许使用该服务的主机。如果您希望本地网络中的所有主机(具有网络地址192.168.0.0)访问Telnet服务(由in.telnetd
程序提供),请将以下行添加到/etc/hosts.allow
文件中(最后一个八位字节将保留,以表示其中的所有可能性)那个范围):
in.telnetd:192.168.0.
如果要让所有本地主机都可以访问所有Internet服务,可以使用该ALL
关键字并重写该行,如下所示:
ALL:192.168.0.
最后,要打开所有主机的所有Internet服务,可以使用以下命令替换IP地址ALL
:
ALL:ALL
您也可以使用主机名代替IP地址。
要查找/etc/hosts.allow
文件中条目的详细语法,请在终端窗口的shell提示符下键入man hosts.allow。
该/etc/hosts.deny
文件与之相反/etc/hosts.allow
。虽然hosts.allow
指定哪些主机可以访问系统上的Internet服务(例如Telnet和TFTP),但该hosts.deny
文件标识必须拒绝服务的主机。如果/etc/hosts.deny
文件中没有规则/etc/hosts.allow
适用于请求主机,则会查询该文件。如果hosts.deny
文件具有适用于主机的规则,则拒绝服务。
/etc/hosts.deny
文件中的条目具有与中的条目相同的格式/etc/hosts.allow file
; 它们位于服务器:IP地址格式,其中服务器是指提供特定Internet服务的程序的名称,IP地址标识不允许使用该服务的主机。
如果您已在/etc/hosts.allow
文件中设置条目以允许访问特定主机,则可以放入以下行/etc/hosts.deny
以拒绝所有其他主机访问系统上的任何服务:
ALL:ALL
要查找/etc/hosts.deny
文件中条目的详细语法,请在终端窗口中的shell提示符下键入man hosts.deny。
该/etc/nsswitch.conf
文件称为名称服务开关(NSS)文件,它指定诸如解析程序库,NIS,NIS +和本地配置文件(如/etc/hosts
和/etc/shadow
)之类的服务之间的交互方式。
NIS和NIS +是网络信息系统 - 另一种类型的名称查找服务。较新版本的Linux内核使用该/etc/nsswitch.conf
文件来确定优先级:本地配置文件,DNS(域名系统)或NIS等服务。
例如,文件中的以下hosts
条目/etc/nsswitch.conf
表示解析程序库首先尝试该/etc/hosts
文件,然后尝试NIS +,最后尝试DNS:
hosts: files nisplus dns