linux中,一个主机要想上网就必须先为其配置好网络服务,然后才能通过该主机上网,但我们如何去配置它的网络服务呢?下面就教大家如何在linux的主机上一步步配置网络服务。

 
我们知道,一个主机想上网访问某个网站,首先该主机必须有自己的 IP 地址才行,有了 IP 还不一定能上网,还必须有其他的地址,那么一个主机要想接入网络需要配置哪些信息呢?首先,一个主机要想接入网络,必须配置如下信息:
 
IP ,即主机的 IP 地址;
NETMASK ,即子网掩码;
GATEWAY ,即网关;
HOSTNAME ,主机名;
DNS( 可能有多个备用的 ) ,即域名服务器,用来解析域名。

其中IP地址和DNS地址既可以手动指定,也可以由DHCP动态分配。DHCPDynamic Host Configuration Protocol,动态主机配置协议。

 

linux中,网络属于内核的功能,我们要想为linux主机配置地址,这个地址属于内核而不是某个网卡。一台主机可以有多个网卡,当我们为每个网卡配置好地址后,我们对其中一个网卡使用ping命令,不管该地址是不是该网卡的都可以ping通,因为,这个地址属于内核,它不管你是从哪个网卡ping进来的,都会响应。

下面我们以 Redhat5 为例,为各位介绍如何配置其网络服务使其能够上网。

Redhat5中,其网络配置文件是通过/etc/modprocbe.conf来定义的,而在Redhat6中,是通过/etc/udev/rules.d/70-persisitent-net.rules定义的。先介绍个我们经常使用的命令ifconfig。该命令可以实现查看并安装网络接口的地址。其使用格式为# ifconfig [ethX] ,其中X表示是哪个接口,具体执行时需换成数字。我们先来查看下本主机的网络配置信息,命令及执行结果如下:

 
  
  1. # ifconfig 

假如我只想查看接口eth0的配置信息,可以使用如下命令:

 
  
  1. # ifconfig eth0 

其执行结果如下图所示:

上面介绍了两个查看配置信息的命令,下面我们就先通过一个配置命令,去配置下自己的主机,然后用上边两个命令查看一下吧。其使用格式为# ifconfig ethX  IP/MASK  [up|down] 想配置接口eth1IP地址及子网掩码为10.10.10.10/8,可使用如下命令:

 
  
  1. # ifconfig eth1 10.10.10.10/8  

 执行结果如下所示:

可以看到上边的 IP 地址和子网掩码都已修改。
通过 ifconfig 命令我们还可以启用或停用某个网络接口,我们刚为接口 eth1 配置了地址,查看并可以使用,现在我们停用该接口,命令如下:
 
  
  1. # ifconfig eth1 down 
其执行结果如下图所示:

从上图我们可以看到,当我们把接口 eth1 停用后,再用 ifconfig 命令查看网络配置信息,已不再显示该接口的信息,下面我们再去启用该接口,重新查看下。命令如下:
 
  
  1. # ifconfig eth1 up  
其执行结果如下所示:

可以看到当我们启用了该接口的网络服务后,用 ifconfig 命令查看配置信息,该接口的配置信息又可以显示出来了。

我们还可以为其起个别名,命令如下:

 
  
  1. # ifconfig eth1:0 110.110.110.110/8  

我们在用ifconfig命令查看下执行效果吧。

从上图看到,我们添加的别名已经成功,并可以使用。
上边介绍的这些命令会立即生效,但当重启网络服务或主机后,所有这些配置都会失效,这是为何呢?其实我们对个接口的修改并没有写入其配置文件,所以,当重启网络服务或主机后,这些配置当然会失效了,要想永久有效,必须在其配置文件中修改。

各种网络服务其实是通过脚本实现的,在RHEL5中,该网络服务的配置文件在/etc/init.d/network文件中,而在RHEL6中,该网络服务的配置文件在/etc/init.d/NetworkManager中,但对于RHEL6,该版本默认使用该配置文件,该配置文件功能还不完善,尤其在服务器集群方面无法使用此功能管理脚本,最好禁用此功能。还使用原来的配置文件。

下面再去介绍个配置网关的命令: route

# route add:表示添加路由,其中包含两名选项

-host :表示配置主机路由
-net :表示配置网络路由
    -net 0.0.0.0 :表示添加默认路由
其使用格式为 # route add -net|-host DEST gw NEXTHOP
              # route add default gw NEXTHOP :添加默认路由
如:我们为 192.168.5.0/24 网络添加一条网络路由其下一条为 172.16.0.1 ;命令及执行结果如下所示:
 
  
  1. # route add –net 192.168.5.0/24 gw 172.16.0.1   

有添加同样一定会有删除的命令,该命令如下:

# route del :表示删除路由,同样该命令也有两个选项,

-host :删除主机路由
-net :删除网络路由
其使用格式如下:
   # route del -net|-host DEST
   # route del default :添加默认路由
如:我们把刚添加的路由删除掉,其命令及执行结果如下所示:
 
  
  1. # route del –net 192.168.5.0/24 
route 命令中有一个选项可以查看相关的路由信息,命令如下:
 
  
  1. # route –n 
其执行结果如下所示:

同样,我们以上所作出的改动均会立即生效,但每当重启网络服务或主机后,均会失效。想要上边的设置永久有效,必须修改其配置文件,其网络配置文件为 /etc/sysconfig/network-scripts ,具体格式如下: /etc/sysconfig/network-scripts/ifcfg-INTERFACE_NAME

DEVICE=: 关联的设备名称,要与文件名的后半部“INTERFACE_NAME”保持一致;

BOOTPROTO={static|none|dhcp|bootp}:引导协议,要使用静态地址,使用staticnonedhcp表示使用DHCP服务器获取地址

IPADDR=IP地址

NETMASK=: 子网掩码

GAYEWAY=: 设定默认网关

ONBOOT=: 开机时是否自动激活此网络接口

HWADDR=:硬件地址,要与硬件中的地址保持一致;可省

USERCTL={yes|no}:是否允许普通用户控制此接口

PEERDNS={yes|no}:是否在BOOTROTOdhcp时接受由DHCP服务器指定的DNS地址

 
如: 我们配置下 eth1 的接口的信息,使用 vim /etc/sysconfig/network-scripts/ifcfg-eth1 编辑该文件,并输入如下信息
 
 
  
  1. DEVICE=eth1 
  2. BOOTPROTO=static 
  3. IPADDR=172.16.200.222 
  4. NETMASK=255.255.0.0 
  5. ONBOOT=yes 
输入上述命令,重启网络服务,查看执行结果。其执行结果如下:

我们修改配置文件,不会立即生效,但重启网络服务或主机后都会生效,且是永久有效。因此,要查看效果必须重启网络服务。
下面我们介绍如何通过配置文件修改路由信息。修改路由配置信息,需在该文件中进行: /etc/sysconfig/network-scripts/ ,必须在此路径下创建该 route-ethX 文件,重启网络服务然后才能生效。其格式为:
添加格式一:

DEST(目标)    via   NEXTHOP

添加格式二:
ADDRESS0= :表示添加网络地址
NETMASK0= :添加子网掩码
GATEWAY0= :表示添加网关
 

如:我们为eth1添加一条路由信息,到目的网络110.0.0.0/8的信息通过172.160.0.1转发。具体做法为:在/etc/sysconfig/network-scripts/目录下创建文件route-eth1,编辑内容,添加如下内容:

 
  
  1. 110.0.0.0/8   via  172.16.0.1 

执行结果如下所示:

可以看到,多了一条路由信息。
 
接下来教大家如何在配置文件中修改主机名。先来说修改主机名的命令吧。
# hostname :可以查看本主机名;
# hostname NAME :修改主机名
我们先用 hostname 查看下本主机名,然后再将其修改为我的博客地址名,执行下该命令,效果如下所示:
 
  
  1. # hostname 
  2. # hostname lq2419 

从上图可以看到, hostname 不仅可以查看主机名,还可以修改主机名,但同样,这些修改会立即生效,但重启主机后均会失效。这里我们就不在演示重启主机后的效果,有兴趣的话可以自行验证下。下面介绍一种永久有效的修改方法,那就是修改配置文件。我们打开 /etc/sysconfig/network 文件,修改 HOSTNAME 选项为 lq2419 。重新执行该命令,其效果如下:

上面提到了DNS,下面我们就去通过修改配置文件来设置DNS。打开/etc/resolv.conf文件,编辑添加如下内容:

 
  
  1. nameserver 172.16.0.1 
  2. nameserver 202.102.224.68 

下面介绍指定本地解析。打开文件/etc/hosts,输入如下内容:

 
  
  1. 172.16.0.1     www.magedu.com    www 
各选项的含义为:主机 IP 地址 、主机名、 主机别名
我们通过 ping 命令去看一下效果。

从上图我们可以看到,当我们去 ping www 时,系统会自动转化为www.magedu.com。
最后介绍一个比较好用的软件包: iproute2 ,我们主要用其提供的 ip 命令。下面介绍下该命令。

# ip link:配置网络接口属性,该命令有如下几个选项:

    show:显示

        如:# ip link show:显示统计信息

            # ip -s link show :显示详细统计信息
    set :设定网络接口的属性信息

        如: # ip link set DEV {up|down}

              # ip link set eth1 down :禁用 eth1 接口
#ip addr :协议地址
    add :添加

       使用格式为:# ip addr add ADDRESS dev DEV

    del:删除

         使用格式为:# ip addr del ADDRESS dev DEV

    show:显示

         使用格式为:# ip addr show dev DEV  to PREFIX

    flush:清除

         使用格式为: # ip addr flush dev DEV to PREFIX

#ip route:路由

    add :添加

        如: # ip route add to 10.0..0/8 dev eth1 via 172.16.0.1

    del :删除
    flush :清除

        如:# ip route flush to 192.168.120/24                 

    show :显示路由信息

        如: # ip route show

             # ip route -net 10.0.1.0/24 dev eth1 via 192.168.100.6     

 
我们挑两个命令去执行下,并看下效果吧。
 
  
  1. # ip link show 
  2. # ip –s link show 
 
 
  
  1. # ip addr add 192.168.120.1/24 dev eth1 

其实我们还可以为网络设备设备别名。现在直接介绍如何使其永久有效的方法。我们去修改配置文件。打开 /etc/sysconfig/network-scripts/ 目录,并在其目录下创建 ifcfg-ethX:X 的文件,如ifcfg-eth1:1,输入如下格式的内容:
DEVICE=ethX:X
BOOTPROTO={static|none|dhcp|bootp} 引导协议,要使用静态地址,使用staticnonedhcp表示使用DHCP服务器获取地址
IPADDR= IP地址
NETMASK= : 子网掩码
GAYEWAY= : 设定默认网关
ONBOOT= : 开机时是否自动激活此网络接口
HWADDR=: 硬件地址,要与硬件中的地址保持一致;可省
USERCTL={yes|no} :是否允许普通用户控制此接口
PEERDNS={yes|no} :是否在BOOTROTOdhcp时接受由DHCP服务器指定的DNS地址

因为是网络设备的别名,所以我们不能使用DHCP动态获取。只能设置成静态的。如:我们在/etc/sysconfig/network-scripts/目录下编辑文件ifcfg-eth1:1,并输入如下内容

 
  
  1. DEVICE=eth1:1 
  2. BOOTPROTO=static 
  3. IPADDR=110.120.130.140 
  4. NETMASK=255.0.0.0 
重启网络服务后,查看下效果:

到这里我们就介绍完了。以上从配置 IP 地址,到最后配置 DNS 以及路由的配置都教给各位,大家可以再自己的 linux 上试试,一定要动手尝试。假如你正常使用一个接口登录并连接到网络,记住不要修改此接口的 IP ,可以添加多个接口作为测试用。否则,如果你修改了你正在使用的接口的 IP ,你可能会上不了网哦!