这里介绍一下Linux下的网络设置文件,这是网络计算机服务器的前提条件。
1.网络的基本设置
我们在设置网络环境的时候,提前要弄清楚以下的相关信息。
IP | IP地址 |
Netmak | 子网掩码 |
Gateway | 默认网关 |
HostName | 主机名称 |
DomainName | 域名 |
DNS | DNS的IP |
2.网络设置文件
无论是通过网络配置命令(下文将提到)来配置网络,还是通过图形化的配置界面,最终的配置信息都将写入到某某的文件中,也就是说一旦我们知道了这些信息都写到了什么文件中或哪儿个文件中,我们就可以通过直接的修改某某文件来直接进行配置,下面就说明一下网络设置将要涉及到的几个主要的文件。不光是CentOS,其他的UNIX系的OS都可以通过这个方法来配置网络,不过系统的不同定义也不同,比如说有些系统会说到通过直接修改文件的方法配置网络信息会导致网络环境的不稳定,提倡使用图形界面或配置命令的形式来配置网络,这里要特别的注意。
(1)文件 /etc/sysconfig/network
这个/etc/sysconfig/network文件是定义hostname和是否利用网络的不接触网络设备的对系统全体定义的文件。
设定形式:设定值=值
/etc/sysconfig/network的设定项目如下:
NETWORKING | 是否利用网络 | |
GATEWAY | 默认网关 | |
IPGATEWAYDEV | 默认网关的接口名 | |
HOSTNAME | 主机名 | |
DOMAIN | [td] | 域名[/td] |
(2)文件 /etc/sysconfig/network-scripts/ifcfg-eth0
/etc/sysconfig/network-scripts在这个目录下面,存放的是网络接口(网卡)的制御脚本文件(控制文件),ifcfg- eth0是默认的第一个网络接口,如果机器中有多个网络接口,那么名字就将依此类推ifcfg-eth1,ifcfg-eth2,ifcfg- eth3......(这里面的文件是相当重要的,涉及到网络能否正常工作)
设定形式:设定值=值
设定项目项目如下:
DEVICE | 接口名(设备,网卡) |
BOOTPROTO | IP的配置方法(static:固定IP, dhcpHCP, none:手动) |
HWADDR | MAC地址 |
ONBOOT | 系统启动的时候网络接口是否有效(yes/no) |
TYPE | 网络类型(通常是Ethemet) |
NETMASK | 网络掩码 |
IPADDR | IP地址 |
IPV6INIT | IPV6是否有效(yes/no) |
GATEWAY | 默认网关IP地址 |
这里有一个例子:(我自己的,上图HostB)
复制内容到剪贴板
(3)文件 /etc/resolv.conf代码:
[root@linux ~]# cat -n /etc/sysconfig/network-scripts/ifcfg-eth0
1 DEVICE=eth0
2 BOOTPROTO=static
3 BROADCAST=192.168.1.255
4 HWADDR=00:0C:2x:6x:0x:xx
5 IPADDR=192.168.1.23
6 NETMASK=255.255.255.0
7 NETWORK=192.168.1.0
8 ONBOOT=yes
9 TYPE=Ethernet
[root@linux ~]#
这个文件是用来配置主机将用的DNS服务器信息。在这个文件中如果不设置DNS服务器的IP地址,那么在通信的时候,将无法指定像[url=../] www.centospub.com[/url]这样的域名。(DNS是Domain Name
System的简称,中文名称域名解析服务器,主要是IP和域名转换功能)/etc/resolv.conf的设定项目:
domain ←定义本地域名
search ←定义域名和搜索列表
nameserver←定义被参照的DNS服务器的IP地址(最多可指定3个)
一般来说最重要的是第三个nameserver项目,没有这项定义,用域名将无法访问网站,并且yum等服务将无法利用
(4)文件 /etc/hosts
/etc/hosts这个文件是记载LAN内接续的各主机的对应[HostName和IP]用的。在LAN内,我们各个主机间访问通信的时候,用的是内网的IP地址进行访问(例:192.168.1.22,192.168.1.23),从而确立连接进行通信。除了通过访问IP来确立通信访问之外,我们还可以通过HostName进行访问,我们在 安装机器的时候都会给机器起一个名字,这个名字就是这台机器的HostName,通过上图可以看到,HostA的 hostname是centos1,HostB的hostname是centos2那我们怎么能不但通过IP确立连接,通过这个IP对应的 HostName进行连接访问呢?解决的办法就是这个/etc/hosts这个文件,通过把LAN内的各主机的IP地址和HostName的一一对应写入这个文件的时候,就可以解决问题。
比如说上图,我要在HostA上用ssh访问HostB的时候,在命令行下我做这样的操作:
复制内容到剪贴板
访问成功后,我
们看到hostname的地方
变化了。
代码:
[root@centos1 ~]# ssh 192.168.1.23
root@192.168.1.23's password:
Last login: Mon Dec 25 15:04:58 2006 from centos1
[root@centos2 ~]#
那 么我 们用hostname 试试看:
复制内容到剪贴板
那
么我
们编辑/etc/hosts文件,将HostB的IP和hostname的
对应关系写入
这个文件,如果主机有域名,可以将域名写在IP地址之后hostname之前,并且用空格隔开,形式如第三行127.0.0.1的设置。
代码:
[root@centos1 ~]# ssh centos2
ssh:centos2: Name or service not known ←提示错误,不知道主机
[root@centos1 ~]#
复制内容到剪贴板
然后我
们再从
复#ssh centos2的操作
代码:
[root@centos1 ~]# cat -n /etc/hosts
1 # Do not remove the following line, or various programs
2 # that require network functionality will fail.
3 127.0.0.1 localhost.localdomain localhost
4 192.168.1.23 centos2
[root@centos2 ~]#
复制内容到剪贴板
可以看到
访问成功了,
这个文件就是
这样的,倘若你要用windowsXP
访问局域网中的linux你也可以用上面的方法,只不
过在 windowsXP下面你也要修改hosts
这个文件,文件路径:C:/WINDOWS/system32/drivers/etc/hosts,在
这个文件中添加你要
访问的局域网中的主机的IP和hostname,就能通
过主机名
访问主机了。
代码:
[root@centos1 ~]# ssh centos2
root@centos2's password:
Last login: Mon Dec 25 15:05:07 2006 from centos1
[root@centos2 ~]#