325学习笔记linux命令配置IP.docx
- 文档编号:5705484
- 上传时间:2023-05-09
- 格式:DOCX
- 页数:13
- 大小:24.11KB
325学习笔记linux命令配置IP.docx
《325学习笔记linux命令配置IP.docx》由会员分享,可在线阅读,更多相关《325学习笔记linux命令配置IP.docx(13页珍藏版)》请在冰点文库上搜索。
325学习笔记linux命令配置IP
在Linux下配置TCP/IP
关键文件和脚本
网络接口初始化的实际过程(有时也称做“启动接口”)是由一组配置文件和脚本控制的,这些文件和脚本大多数在/etc目录下。
这些配置文件告诉Linux它的IP地址、主机名和域名;脚本则负责网络接口的初始化。
不同分发版(distribution)中文件位置和命名约定至今还没有统一的标准。
涉及初始化和配置网络接口的关键文件有:
/etc/hosts(将主机名映射到IP地址)
/etc/networks(将域名映射到网络地址)
/etc/sysconfig/network(打开或关闭联网,设置主机名和网关)
/etc/resolv.conf(设置名称服务器或DNS服务器的IP地址)
/etc/rc.d/rc3.d/S10network(在引导时激活已配置的以太网接口,由运行级别目录/etc/rc.d/rcN.d/中的符号链接调用)
/etc/sysconfig/network-scripts中一些文件的集合。
这些文件包括用于网络连接的主要配置,以及提供接口状态和控制功能的符号链接。
/etc/hosts
/etc/hosts是将IP地址和主机名联系起来的简单文本文件。
TCP/IP网络中的每台计算机都必须有唯一的IP地址。
hosts文件只允许用户将主机名与IP地址联系起来,以便当访问计算机时使用该名称,而不用输入一长串数字。
/etc/hosts中的每一项都依次包含一个IP地址、空白和主机名和/或别名。
井号(#)表示注释开始。
例如:
#/etc/hosts
#lastupdated12/3/2000
127.0.0.1loopbacklocalhost#loopback(lo0)name/address
192.168.1.5janus
192.168.1.6thumper
192.168.1.7donovan
192.168.1.8raidserver
192.168.1.20phoenix
192.168.1.15hydras
在上面显示的Hosts文件中,IP地址192.168.1.5映射到主机,并且分配给它一个备用主机名(或别名)janus。
尽管DNS已经取代了这个主机文件,但出于以下原因仍然使用它:
大多数系统都有一个包含本地网络上的关键主机的名称和地址信息的小主机表。
当DNS未运行时,例如,在最初系统启动期间,则使用该表。
即便本地DNS服务器正在运行,在每个系统上也应该有一个小hosts文件,该文件包含一个主机本身项、一个localhost项以及局域网上任何主要的网关和服务器项。
未连接到因特网或其他网络的小网络不需要DNS服务。
然而,这些网络上的主机也需要知道如何定位同一网络上的其它主机。
/etc/networks
就如主机有名称和地址一样,为方便起见,也可以为网络和子网命名。
/etc/networks文件在布局上与/etc/hosts很相似,只不过名称和地址互换了一下。
#/etc/networksfor
localnet127.0.0.0#loopback
syroid-C1192.168.1#development,classC
syroid-C2192.168.2#support,classC
在上面的示例中,可将网络名称syroid-C1用于脚本或任何命令行实用程序中来引用192.168.1这个C类网。
/etc/sysconfig/network
将/etc/sysconfig/network(注意与/etc/networks文件不同,这个network是单数而不是复数)用于指定所期望的网络配置信息;在引导时,有几个脚本要使用它。
该文件可以包含下列所示的一个或多个关键字/值对:
NETWORKING=YES|NO--YES表示需要配置网络;NO表示不需要配置网络。
HOSTNAME=hostname—主机的全限定域名;为与较老的程序兼容,这应该与在/etc/hosts中的主机项相匹配。
GATEWAY=gw-ip—网络网关的IP地址。
GATEWAYDEV=gw-dev—网关设备的名称(例如eth0)。
NISDOMAIN=dom-name—表示NIS域,如果有的话。
下面是/etc/sysconfig/network最小配置的示例:
NETWORKING=yes
HOSTNAME=
GATEWAY=192.168.1.1
/etc/resolv.conf和/etc/rc.d/rc3.d/S10network
/etc/resolv.conf
是网络用来确定主机解析的关键文件之一。
在此可以标识最多三个名称服务器;如果列在第一位的服务器未对查询做出响应,则后面两个起到备用的作用。
domain项定义缺省域名。
解析器(顺便提一下,该解析器不是一个单独的进程,而是由网络进程调用的例程库)将这里所列出的域名附加在任何不包含句点的主机查询上。
#/etc/resolv.conf
#domainnameresolverconfigfile
domain
nameserver192.168.1.7
nameserver192.168.1.10
nameserver165.142.268.19
在上面所显示的示例中,如果提交给解析器的查询是想要查询找主机phoenix(注意,没有点),则将该域附加到这个请求之后,这会将该查询扩展为。
若需要了解更多详细信息和可以使用的选项,请输入manresolv.conf。
/etc/rc.d/rc3.d/S10network是指向/etc/rc.d/init.d/network脚本的符号链接。
当系统达到运行级别3时,它负责初始化所有已配置的网络接口。
在这里我们不想花时间来详细讨论该文件后面的逻辑,因为该文件主要是调用本节中所提到的其它脚本和程序。
但是,如果您对S10network中初始化各种网络组件和服务的顺序感兴趣的话,则可以使用less/etc/rc.d/rc3.d/S10network命令来仔细研读它。
/etc/sysconfig/network-scripts/
最后,通常可在/etc/sysconfig/network-scripts/目录中查找到下列文件:
/etc/sysconfig/network-scripts/ifup
/etc/sysconfig/network-scripts/ifdown
/etc/sysconfig/network-scripts/network-functions
/etc/sysconfig/network-scripts/ifcfg-interface-name
/etc/sysconfig/network-scripts/ifcfg-interface-name:
clone-name
/etc/sysconfig/network-scripts/chat-interface-name
/etc/sysconfig/network-scripts/dip-interface-name
/etc/sysconfig/network-scripts/ifup-post
……/network-scripts/,第一部分
/etc/sysconfig/network-scripts中的ifup和ifdown项实际是分别指向/sbin/ifup和/sbin/ifdown的符号链接。
这两个脚本是在该目录下唯一应该直接调用的脚本,并且它们按需要调用所有其它脚本。
ifup和ifdown通常只带一个参数:
设备名(例如eth0)。
系统在引导过程期间用参数“boot”调用它们,以便于不激活没有被配置成在系统启动时初始化的设备(请参阅下面关于interface-name描述中的ONBOOT=no)。
network-function不是公共文件。
它包含这个目录中的几个脚本所需的函数。
具体地说,它包含了用于处理替代接口配置的大多数代码。
……/network-scripts/,第二部分
配置文件ifcfg-interface-name和ifcfg-interface-name:
clone-name包含了初始化接口所需的大部分详细信息。
第一个文件定义接口,而第二个文件仅包含与“别名”(或替代)接口相关的部分定义。
例如,网络地址或许不同,但其它可能会一样。
在ifcfg文件中定义的各项目取决于接口类型;下列值很常见:
DEVICE=name,其中name是物理设备名
IPADDR=addr,其中addr是IP地址
NETMASK=mask,其中mask是网络掩码值
NETWORK=addr,其中addr是网络地址
BROADCAST=addr,其中addr是广播地址
GATEWAY=addr,其中addr是网关地址
ONBOOT=answer,其中answer是“yes”(引导时激活设备)或“no”
USERCTL=answer,其中answer是“yes”(非root用户可以控制该设备)或“no”
BOOTPROTO=proto,其中proto取下列值之一:
“none”(引导时不使用协议)“bootp”(使用BOOTP协议)或“dhcp”(使用DHCP协议)
此外,下列值对所有的SLIP(串行线IP)文件是公共的:
PERSIST=answer,其中answer是“yes”(即使调制解调器已经挂断连接,也保持设备处于激活状态)或“no”(不保持激活状态)
MODEMPORT=port,其中port是调制解调器端口的设备名(例如,/dev/modem)
LINESPEED=baud,其中baud是调制解调器的线路速度
DEFABORT=answer,其中answer是“yes”(当创建/编辑该接口的脚本时,插入缺省的异常终止字符串)或“no”(不插入缺省的异常终止字符串)
……/network-scripts/,第三部分
chat-interface-name文件是用于SLIP连接的交谈脚本(chatscript)。
它的功能是启动SLIP连接。
对于SLIP设备,DIP脚本是根据这个交谈脚本编写的。
chat-interface-name是只写脚本,它由程序netcfg根据交谈脚本创建的。
不要修改该文件。
当初始化任何网络设备(除了SLIP设备)时,调用/etc/sysconfig/network-scripts/ifup-post。
它调用/etc/sysconfig/network-scripts/ifup-routes以启动依赖于该设备的静态路由,它还启动为该设备配置的任何别名,并且,如果还没有设置主机名,则设置主机名—这样找到与该设备IP地址匹配的主机名。
最后,ifup-post给请求通知网络事件的任何程序发送信号(SIGIO)。
配置网络接口和路由
ifconfig程序
ifconfig命令设置、检查或监控网络接口的配置值。
它还可以用于设置接口的“状态”—即“up”(启动)或“down”(关闭)。
一个对ifconfig简单的调用是:
ifconfiginterface-nameip-addressup|down
这会激活指定的接口并将所提供的IP地址分配给它。
ifconfig有许多个可用的选项(metric、mtu以及pointtopoint等等;有关详细信息,请参阅帮助页)用于显式地设置唯一的接口参数,但一般来说,提供接口名称(例如,eth0)、IP地址和网络掩码就足够了。
例如:
ifconfigeth0192.168.1.5netmask255.255.255.0up
分配给接口eth0的IP为192.168.1.5,网络掩码为255.255.255.0并“启动该接口”或将其初始化。
类似的,若将接口“关闭”,则输入ifconfigeth0down;不需要指定IP和网络掩码。
使用ifconfig检查接口
运行不带参数的ifconfig会使该程序显示所有网络接口的状态。
若要检查特定接口的状态,则在ifconfig后附加这个接口的名称。
例如:
[tom@phoenixtom]$/sbin/ifconfigeth0
eth0Linkencap:
EthernetHWaddr00:
10:
5A:
00:
87:
22
inetaddr:
192.168.1.20Bcast:
192.168.1.255Mask:
255.255.255.0
UPBROADCASTRUNNINGMULTICASTMTU:
1500Metric:
1
RXpackets:
9625272errors:
0dropped:
0overruns:
0frame:
0
TXpackets:
6997276errors:
0dropped:
0overruns:
0carrier:
0
collisions:
0txqueuelen:
100
Interrupt:
19Baseaddress:
0xc800
以上输出显示MAC地址(Hwaddr)、所分配的IP地址(inetaddr)、广播地址(Bcast)和网络掩码(Mask)。
另外可以看出该接口处于UP状态,其MTU为1500并且Metric为1。
接下来的两行给出有关接收到(RX)和已发送的(TX)信息包数,以及错误、丢弃和溢出信息包数的统计。
最后两行显示冲突信息包的数目、发送队列大小(txqueuelen)和IRQ以及这块卡的基址。
配置路由
让我们通过查看尚未配置网关的网络接口来看一下如何配置路由。
正如您所见,使用不带参数的route命令将显示内核路由表。
[root@phoenixtom]#/sbin/route
KernelIProutingtable
DestinationGatewayGenmaskFlagsMetricRefUseIface
127.0.0.0127.0.0.1255.0.0.0U000lo
192.168.1.0192.168.1.5255.255.255.0U000eth0
第一项是到localhost的回送路由,它是在配置lo时自动创建的。
第二项是通过接口eth0到网络192.168.1.0的路由。
地址192.168.1.5不是远程网关地址。
它是分配给phoenixeth0的地址。
注意每项的标志。
它们都设置了U(启动)标志,这表示准备使用它们,但它们都未设置G(网关)标志。
不设置G标志是因为这两个路由都是通过本地接口,而不是通过外部网关的直接路由。
上述示例仅包含一个网络路由192.168.1.0。
因而phoenix仅可以与位于192.168.1.0网络中的主机进行通信。
添加静态路由
最小的路由表仅允许在同一网络中的主机互相通信。
要与远程主机通信,必须将通过外部网关的路由添加到路由表中。
达到该目的的一种方法是通过使用/sbin/route命令。
拿上页中的例子来说,我们现在就将路由192.168.1.1添加到网络配置中。
[root@phoenixtom]#/sbin/routeadddefault192.168.1.11
在上面这个示例中,route命令后的第一个参数是关键字add。
在route命令上的第一个关键字要么是add要么是del(删除路由)。
下一个值是目的地地址,它是通过该路由到达的地址。
如果关键字default用于目的地地址,则创建缺省路由。
只要没有到目的地的特定路由时,就使用缺省路由;通常,这就是您在路由表中唯一需要的项。
如果网络中只有一个网关,则使用缺省路由引导所有要到远程网络的数据流量通过那个网关。
这个命令行的下一个参数是网关地址。
该地址必须是直接连接本机所在网络的网关地址。
在到远程目的地的网络路径中,TCP/IP路由要指定下一跳(next-hop)。
这个下一中继必须是本机可直接访问的;因而,它必须是在直接连接在本机所在的网络中。
注:
因为大多数的路由都是在系统启动过程早期时添加的,所以建议用数字的IP地址替代主机名。
这样做就可以确保路由配置不依赖于名称服务器的状态。
而且要确保总是使用完整的数字地址(共4个字节);如果不用完整的IP地址,则路由只能猜想部分IP地址,这样可能会导致不正确的配置。
route命令中,最后一个参数是数字1,称之为路由度量(routingmetric)。
当删除路由时是不需要此metric参数的,但是在添加路由时许多系统都需要它。
尽管需要度量,route仅使用它来确定路由是通过直接连接的接口还是通过外部的网关。
如果metric是0,建立的这条路由是通过本机接口且不设置G标志;如果metric值比0大,则建立的这条路由带G标志且网关地址被认为是外部的。
静态路由不使用其它metric值。
需要真正用到多个metric值的是动态路由。
要显示新的路由表,输入/sbin/route或使用netstat-rn命令(我们将再下一节讨论该命令):
[root@phoenixtom]#netstat-rn
KernelIProutingtable
DestinationGatewayGenmaskFlagsMSSWindowirttIface
192.168.1.00.0.0.0255.255.255.0U000eth0
127.0.0.00.0.0.0255.0.0.0U000lo
0.0.0.0192.168.1.10.0.0.0UG000eth0
最后做一个测试来证明一切都如同我们讲到的那样运行,ping另一个网络上的主机;应该可以接收到响应。
如果没有接收到响应,则重新检查您的配置。
要熟悉route其它的选项和参数,请输入manroute。
netstat程序
如果管理任意规模的TCP/IP网络,则netstat程序是一个相当有价值的工具。
它可以显示内核路由表,活动网络连接的状态和每个已安装网络接口的一些有用的统计信息。
象大多数Linux管理命令行程序一样,netstat可以通过其后面的附加选项或标志来选择所显示信息的细节数量和/或信息的范围。
一些常用选项有:
-a—显示所有连接的信息,包括那些正在侦听的
-i—显示所有已配置网络设备的统计信息
-c—持续更新网络状态(每秒一次)直至被人为中止(^C)
-r—显示内核路由表
-n—以数字(原始)格式而不是已解析的名称显示远程和本地地址
-t—仅显示TCP套接字信息(不包括任何UCP套接字信息)
-v—显示netstat的版本信息
输入mannetstat可获得所有可用标志的完整列表和详细说明每个标志的用途。
请注意还可以组合这些标志,所以输入netstat-rn将以原始的IP地址格式显示关于本地和远程主机(n)的系统路由表(r)。
显示活动的网络连接
netstat支持一组显示活动或非活动的套接字的选项:
-t、-u、-w和-x分别显示活动的TCP、UDP、RAW或UNIX套接字连接。
如果加上-a标志,还会显示等待连接的(换句话说,就是侦听)套接字。
这将为您显示现在正在系统上运行的所有服务器。
例如:
在主机phoenix上输入netstat-ta会显示下列内容:
[tom@phoenixtom]$netstat-ta
ActiveInternetconnections(serversandestablished)
ProtoRecv-QSend-QLocalAddressForeignAddressState
tcp040phoenix.syroidmanor:
ssh192.168.1.5:
1132ESTABLISHED
tcp00*:
ssh*:
*LISTEN
tcp00phoenix.syroidmano:
1028hydras.syro:
netbios-ssnESTABLISHED
tcp00phoenix.syroidmano:
1027raidserver:
netbios-ssnESTABLISHED
tcp00*:
printer*:
*LISTEN
tcp00*:
auth*:
*LISTEN
tcp00*:
1024*:
*LISTEN
tcp00*:
sunrpc*:
*LISTEN
上述输出显示大多数的服务器仅仅在等待到来的连接(LISTEN)。
但是,第一行显示主机phoenix和IP地址为192.168.1.5之间的连接;第三和第四行显示两个netbios连接(SambaSMB共享)。
用netstat查看路由表
当使用-r标志时,netstat显示内核中的路由表,这类似于输入/sbin/route:
[tom@phoenixtom]$netstat-nr
KernelIProutingtable
DestinationGatewayGenmaskFlagsMSSWindowirttIface
192.168.1.00.0.0.0255.255.255.0U000eth0
127.0.0.00.0.0.0255.0.0.0U000lo
0.0.0.0192.168.1.10.0.0.0UG000eth0
-n选项强制netstat以点分四组IP数字的形式,而不是主机和网络名称的形式输出地址。
当您不想通过网络(例如,用DNS或NIS服务器)进行地址查询时,这个选项特别有用。
第二列显示路由项中所指向的网关。
如果没有使用网关,就会显示星号。
第三列是路由的网络掩码。
内核在将信息包的IP地址与路由的目的地IP地址进行比较之前,将Genmask值与信息包的IP地址逐位进行“与”操作,从而使路由“通用化”。
第四列显示路由的标志:
U表示处于活动状态,H表示主机,G表示网关,D表示动态路由,而M表示已经修改过。
[tom@phoenixtom]$netstat-nr
KernelIProutingtable
DestinationGate
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 325 学习 笔记 linux 命令 配置 IP