10.2. 网络配置和信息

10.2.1. 网络接口配置

所有大型、用户友好的 Linux 发行版都带有各种图形工具,可以轻松设置计算机在本地网络中、连接到 Internet 服务提供商或进行无线访问。这些工具可以从命令行或菜单启动。

您的系统文档提供了关于工具的可用性和使用的大量建议和信息。

您需要提供的信息

10.2.2. 网络配置文件

图形辅助工具编辑一组特定的网络配置文件,使用几个基本命令。配置文件的确切名称及其在文件系统中的位置在很大程度上取决于您的 Linux 发行版和版本。但是,一些网络配置文件在所有 UNIX 系统上都是通用的。

10.2.2.1. /etc/hosts

这个/etc/hosts文件始终包含 localhost IP 地址 127.0.0.1,用于进程间通信。永远不要删除这一行!有时包含其他主机的地址,这些主机可以在不使用外部命名服务(如 DNS(域名服务器))的情况下进行联系。

一个示例hosts用于小型家庭网络的文件

# Do not remove the following line, or various programs
# that require network functionality will fail.
127.0.0.1       localhost.localdomain   localhost
192.168.52.10	tux.mylan.com		tux
192.168.52.11	winxp.mylan.com		winxp

阅读 man hosts 以了解更多信息。

10.2.2.2. /etc/resolv.conf

这个/etc/resolv.conf文件配置对 DNS 服务器的访问,请参阅 第 10.3.7 节。此文件包含您的域名和要联系的名称服务器。

search mylan.com
nameserver 193.134.20.4

阅读resolv.conf手册页以了解更多信息。

10.2.2.3. /etc/nsswitch.conf

这个/etc/nsswitch.conf文件定义了联系不同名称服务的顺序。对于互联网使用,重要的是 dns 出现在 "hosts" 行中。

[bob@tux ~] grep hosts /etc/nsswitch.conf
hosts:	files dns

这指示您的计算机首先在/etc/hosts文件中查找主机名和 IP 地址,如果给定的主机未出现在本地hosts文件中,则联系 DNS 服务器。其他可能联系的名称服务是 LDAP、NIS 和 NIS+。

更多信息请参阅 man nsswitch.conf

10.2.3. 网络配置命令

10.2.3.1. ip 命令

特定于发行版的脚本和图形工具是 ip(或旧系统上的 ifconfigroute)的前端,用于显示和配置内核的网络配置。

ip 命令用于为接口分配 IP 地址、设置到互联网和其他网络的路由、显示 TCP/IP 配置等等。

以下命令显示 IP 地址和路由信息

benny@home benny> ip addr show
1: lo: <LOOPBACK,UP> mtu 16436 qdisc noqueue 
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 brd 127.255.255.255 scope host lo
    inet6 ::1/128 scope host 
2: eth0: <BROADCAST,MULTICAST,UP> mtu 1500 qdisc pfifo_fast qlen 100
    link/ether 00:50:bf:7e:54:9a brd ff:ff:ff:ff:ff:ff
    inet 192.168.42.15/24 brd 192.168.42.255 scope global eth0
    inet6 fe80::250:bfff:fe7e:549a/10 scope link 

benny@home benny> ip route show
192.168.42.0/24 dev eth0  scope link 
127.0.0.0/8 dev lo  scope link 
default via 192.168.42.1 dev eth0 

需要注意的事项

  • 两个网络接口,即使在只有一个网卡的系统上:"lo" 是本地环回,用于内部网络通信;"eth0"真实接口的常用名称。永远不要更改本地环回配置,否则您的机器将开始发生故障!无线接口通常定义为 "wlan0";调制解调器接口为 "ppp0",但也可能存在其他名称。

  • IP 地址,用 "inet" 标记:本地环回始终为 127.0.0.1,物理接口可以有任何其他组合。

  • 您的接口的硬件地址,可能需要作为连接到网络的身份验证过程的一部分,用 "ether" 标记。本地环回有 6 对全零,物理环回有 6 对十六进制字符,其中前 3 对是供应商特定的。

10.2.3.2. ifconfig 命令

虽然 ip 是配置 Linux 系统最新颖的方式,但 ifconfig 仍然非常流行。不带选项使用它来显示网络接口信息

els@asus:~$ /sbin/ifconfig
eth0      Link encap:Ethernet  HWaddr 00:50:70:31:2C:14
          inet addr:60.138.67.31  Bcast:66.255.255.255  Mask:255.255.255.192
          inet6 addr: fe80::250:70ff:fe31:2c14/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:31977764 errors:0 dropped:0 overruns:0 frame:0
          TX packets:51896866 errors:0 dropped:0 overruns:0 carrier:0
          collisions:802207 txqueuelen:1000
          RX bytes:2806974916 (2.6 GiB)  TX bytes:2874632613 (2.6 GiB)
          Interrupt:11 Base address:0xec00
										lo        Link encap:Local Loopback
	  inet addr:127.0.0.1  Mask:255.0.0.0
	  inet6 addr: ::1/128 Scope:Host
	  UP LOOPBACK RUNNING  MTU:16436  Metric:1
	  RX packets:765762 errors:0 dropped:0 overruns:0 frame:0
	  TX packets:765762 errors:0 dropped:0 overruns:0 carrier:0
	  collisions:0 txqueuelen:0
	  RX bytes:624214573 (595.2 MiB)  TX bytes:624214573 (595.2 MiB)

在这里,我们也注意到接口配置的最重要方面

  • IP 地址用 "inet addr" 标记。

  • 硬件地址跟在 "HWaddr" 标签之后。

ifconfigip 都显示更详细的配置信息和每个接口的许多统计信息,也许最重要的是,它是否 "UP""RUNNING"

10.2.3.3. PCMCIA 命令

在您的笔记本电脑上,您通常使用板载以太网连接连接到公司网络,但现在您需要将其配置为在家中或酒店拨号上网,您可能需要激活 PCMCIA 卡。这可以使用 cardctl 控制实用程序或较新发行版上的 pccardctl 完成。

一个使用示例

cardctlinsert

现在可以配置卡,可以使用图形界面或命令行界面。在取出卡之前,请使用此命令

cardctleject

但是,一个好的发行版应该在网络配置工具中提供 PCMCIA 支持,从而避免用户必须手动执行 PCMCIA 命令。

10.2.3.4. 更多信息

进一步讨论网络配置超出了本文档的范围。您获取额外信息的主要来源是您要设置的服务的手册页。附加阅读

  • Modem-HOWTO:帮助选择、连接、配置、排除故障和理解用于 PC 的模拟调制解调器。

  • LDP HOWTO 索引,第 4.4 节:关于通用网络、协议、拨号、DNS、VPN、桥接、路由、安全等的分类 HOWTO 列表。

  • 大多数系统都有一个版本的ip-cref文件(使用 locate 命令找到它);此文件的 PS 格式可以使用例如 gv 查看。

10.2.4. 网络接口名称

在 Linux 机器上,设备名称 lo本地环回与内部 127.0.0.1 地址关联。如果此设备不存在,计算机将很难使您的应用程序工作;它始终存在,即使在未联网的计算机上也是如此。

第一个以太网设备,在标准网卡的情况下为 eth0,指向您的本地 LAN IP 地址。正常的客户端机器只有一个网卡。连接网络的路由器,每个网络都对应一个网络设备。

如果您使用调制解调器连接到互联网,您的网络设备可能会被命名为 ppp0

还有许多其他名称,例如用于虚拟专用网络接口 (VPN) 的名称,并且可以同时激活多个接口,因此当不使用任何选项时,ifconfigip 命令的输出可能会变得非常广泛。甚至相同类型的多个接口也可以处于活动状态。在这种情况下,它们按顺序编号:第一个将获得数字 0,第二个将获得后缀 1,第三个将获得 2,依此类推。这种情况发生在许多应用服务器、具有故障转移配置的机器、路由器、防火墙以及更多设备上。

10.2.5. 使用 netstat 检查主机配置

除了用于显示网络配置的 ip 命令外,还有一个通用的 netstat 命令,它有很多选项,并且通常在任何 UNIX 系统上都很有用。

路由信息可以使用-nr选项显示在 netstat 命令中

bob:~> netstat -nr
Kernel IP routing table
Destination  Gateway      Genmask       Flags MSS Window irtt Iface
192.168.42.0 0.0.0.0      255.255.255.0 U      40 0         0 eth0
127.0.0.0    0.0.0.0      255.0.0.0     U      40 0         0 lo
0.0.0.0      192.168.42.1 0.0.0.0       UG     40 0         0 eth0

这是一台 IP 网络中的典型客户端机器。它只有一个网络设备 eth0lo 接口是本地环回。

Note现代方法
 

从您的系统中获取此信息的新颖方法是使用 ip 命令

iproute show

当这台机器尝试联系位于与其自身网络不同的网络上的主机时(由以 0.0.0.0 开头的行指示),它会将连接请求发送到 IP 地址为 192.168.42.1 的机器(路由器),并且它将使用其主接口 eth0 来执行此操作。

位于同一网络上的主机(以 192.168.42.0 开头的行)也将通过主网络接口联系,但不需要路由器,数据只需放在网络上即可。

机器可以具有比这更复杂的路由表,其中包含许多不同的 "目标-网关" 对,用于连接到不同的网络。如果您有机会连接到应用服务器,例如在工作中,检查路由信息是最有教育意义的。

10.2.6. 其他主机

大量工具专注于 Linux 机器的网络管理和远程管理。您的本地 Linux 软件镜像将提供大量这些工具。在本文档中讨论它们会使我们偏离主题太远,因此请参阅特定于程序的文档。

在本节中,我们将仅讨论一些常见的 UNIX/Linux 文本工具。

10.2.6.1. host 命令

要显示有关主机或域的信息,请使用 host 命令

[emmy@pc10 emmy]$ host www.eunet.be
www.eunet.be. has address 193.74.208.177

[emmy@pc10 emmy]$ host -t any eunet.be
eunet.be. SOA dns.eunet.be. hostmaster.Belgium.EU.net. 
  2002021300 28800 7200 604800 86400
eunet.be. mail is handled by 50 pophost.eunet.be.
eunet.be. name server ns.EU.net.
eunet.be. name server dns.eunet.be.

可以使用 dig 命令显示类似的信息,该命令提供了有关记录如何在名称服务器中存储的附加信息。

10.2.6.2. ping 命令

要检查主机是否存活,请使用 ping。如果您的系统配置为发送多个数据包,请使用 Ctrl+C 组合键中断 ping

[emmy@pc10 emmy]$ ping a.host.be 
PING a.host.be (1.2.8.3) from 80.20.84.26: 56(84) bytes of data.
64 bytes from a.host.be(1.2.8.3):icmp_seq=0 ttl=244 time=99.977msec
--- a.host.be ping statistics ---
1 packets transmitted, 1 packets received, 0% packet loss
round-trip min/avg/max/mdev = 99.977/99.977/99.977/0.000 ms

10.2.6.3. traceroute 命令

要检查数据包到达网络主机的路由,请使用 traceroute 命令

[emmy@pc10 emmy]$ /usr/sbin/traceroute www.eunet.be
traceroute to www.eunet.be(193.74.208.177),30 hops max,38b packets
1 blob (10.0.0.1)  
       0.297ms  0.257ms  0.174ms
2 adsl-65.myprovider.be (217.136.111.1) 
       12.120ms 13.058ms 13.009ms
3 194.78.255.177 (194.78.255.177)  
       13.845ms 14.308ms 12.756ms
4 gigabitethernet2-2.intl2.gam.brussels.skynet.be (195.238.2.226)
       13.123ms 13.164ms 12.527ms
5 pecbru2.car.belbone.be (194.78.255.118) 
       16.336ms 13.889ms 13.028ms
6 ser-2-1-110-ias-be-vil-ar01.kpnbelgium.be (194.119.224.9)
       14.602ms 15.546ms 15.959ms
7 unknown-195-207-939.eunet.be (195.207.93.49) 
       16.514ms 17.661ms 18.889ms
8 S0-1-0.Leuven.Belgium.EU.net (195.207.129.1) 
       22.714ms 19.193ms 18.432ms
9 dukat.Belgium.EU.net (193.74.208.178) 22.758ms * 25.263ms

在某些系统上,traceroute 已重命名为 tracepath

10.2.6.4. whois 命令

可以使用 whois 命令查询特定的域名信息,正如许多 whois 服务器所解释的那样,如下所示

[emmy@pc10 emmy]$ whois cnn.com
[whois.crsnic.net]

Whois Server Version 1.3

	$<--snap server message-->

   Domain Name: CNN.COM
   Registrar: NETWORK SOLUTIONS, INC.
   Whois Server: whois.networksolutions.com
   Referral URL: http://www.networksolutions.com
   Name Server: TWDNS-01.NS.AOL.COM
   Name Server: TWDNS-02.NS.AOL.COM
   Name Server: TWDNS-03.NS.AOL.COM
   Name Server: TWDNS-04.NS.AOL.COM
   Updated Date: 12-mar-2002
>>> Last update of whois database: Fri, 5 Apr 2002 05:04:55 EST <<<

The Registry database contains ONLY .COM, .NET, .ORG, .EDU domains
and Registrars.

[whois.networksolutions.com]

        $<--snap server message-->

Registrant:
Turner Broadcasting (CNN-DOM)
   1 CNN Center
   Atlanta, GA 30303

   Domain Name: CNN.COM

   Administrative Contact:
        $<--snap contactinfo-->   
   Technical Contact:
        $<--snap contactinfo-->   
   Billing Contact:
	$<--snap contactinfo-->
   Record last updated on 12-Mar-2002.
   Record expires on 23-Sep-2009.
   Record created on 22-Sep-1993.
   Database last updated on 4-Apr-2002 20:10:00 EST.

   Domain servers in listed order:

   TWDNS-01.NS.AOL.COM		149.174.213.151
   TWDNS-02.NS.AOL.COM		152.163.239.216
   TWDNS-03.NS.AOL.COM		205.188.146.88
   TWDNS-04.NS.AOL.COM		64.12.147.120

对于 .com、.net、.org 和 .edu 以外的其他域名,您可能需要指定 whois 服务器,例如 .be 域名的服务器

whoisdomain.be@whois.dns.be