Linux网络配置篇

一、 如何把主机接入网络?

如何把一台操作系统或主机接入网络?我们大致需要配置几方面的信息:

1、主机接入网络

IP:首先配IP地址,这是必须的;NETMASK:子网掩码;GATEWAY:网关;HOSTNAME:主机名,如果要标识一台主机,就需要加主机名;DNS服务器,能够帮助我们去解析其他主机的主机名,DNS服务器至少需要两个,事实上在我们linux系统上需要配置3个DNS,需要备用,而在window系统上需要配置两个,主DNS和辅助DNS,当然我们在这里讲的是linux系统,全球的DNS地址都是连接在一起的。DNS1,DNS2:在找不到DNS1的时候用DNS2,DNS2是备用的,把最快的放上面,设置为主存储DNS。这是我们把主机接入网络时做的工作,以上工作都可以收到指定,但也可以自动获取,下面我们讲一下如何自动获取?

2、DHCP(Dynamic Host Configuration Protocol)动态主机配置协议,这是一种让dhcp为其他主机提供地址或者其他网络配置信息的服务器或server,如果把DHCP作为客户端与其他主机无法通信了,我们就使用169.254开头的地址,它会随机帮我们生成一个地址,而这个网段内的IP地址只能在本地通信,并且不需要网关。

3、对于linux而言,网络是属于内核的功能,因此我们为linux主机配置网卡的话,这个地址属于内核,而不是网卡,尽管看上去我们配置在网卡上。因此无论这个地址我们配置在哪个网卡上,只要别人ping的时候,无论从哪个网卡进来都能看得到。前提是这个主机上得有这个地址。

4、在linux上也有lo:Loopback本地回环,本地即做客户端又做服务器端,这个数据报文不用传到网络,就在自己的内存内部就可以完成。对linux而言,每一块网卡或接口,都有一个名称,它们的命名方式,本地回环:lo;以太网:ethX(0-9);如果是点对点连接:PPPX等。对于系统来讲,它所识别的每一个硬件设备的驱动程序,主要是依据主设备号、次设备号以及它所关联的驱动程序来识别的,但为了方便就有了名称的概念。下面我们来看一下RECH5和6是如何定义别名的:

cat /etc/modprobe.conf:查看别名定义

RECH5是通过alias定义的:

[root@root ~]# cat /etc/modprobe.conf

alias eth0 pcnet32

alias scsi_hostadapter mptbase

alias scsi_hostadapter1 mptspi

alias scsi_hostadapter2 ata_piix

alias net-pf-10 off

RECH6 是 通过udev来定义别名的

[root@localhost ~]# cat /etc/udev/rules.d/70-persistent-net.rules

# This file was automatically generated by the /lib/udev/write_net_rules

SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="00:0c:29:53:61:1a", ATTR{type}=="1", KERNEL=="eth*", NAME="eth0

二、命令介绍及实例

1、ifconfig:这是我们linux上非常古老的一个实现网络配置的命令,它可以直接显示当前主机上的处于活动状态的网卡信息,这种配置立即生效,但重启服务或主机都失效

ifconfig -a:显示所有接口的配置信息

ifconfig ethX IP/MASKifconfig eth1 10.1.1.1/8指定掩码自动显示出来)

clip_p_w_picpath002

ifconfig ethX IP/MASK [up/down]可以开启或禁用如:

ifconfig eth1 up(不用加IP地址)

网络服务:

RECH5:/etc/init.d/network {start|stop|restart|status}

RECH6: /etc/init.d/NetworkManager{start|stop|restart|status}(功能不是很完善)

2、如何加网关?(这些命令所做的,重启后都会失效

route:路由

-n:以数字方式显示各主机或端口等相关信息

add:添加

-host:添加主机路由

-net:添加网络路由

-net 0.0.0.0添加默认路由

route add -net|host DEST gw NEXTHOP:添加网关

route add -net 10.0.0.0/8 gw 192.168.10.1(网络路由,gw网关)

clip_p_w_picpath004

route add default gw 192.168.0.1(默认网关)

del:删除

-net:

-host:

route del -net 10.0.0.0/8

clip_p_w_picpath006

route del -net 0.0.0.0(删除默认路由)

route del default gw 192.168.0.1(删除默认网关)

3、(1)通过网络配置文件来配置

/etc/sysconfig/network :服务器总开关的位置包括主机头都在这里面

/etc/sysconfig/network

[root@server57 ~]# cat /etc/sysconfig/network

NETWORKING=yes

NETWORKING_IPV6=no

HOSTNAME=localhost.localdomain(主机名称)

(2)网络接口配置文件:严格区分大小写

/etc/sysconfig/network-scripts /ifcfg-INTERFACE_NAME

[root@localhost ~]# cat /etc/sysconfig/network-scripts/ifcfg-eth0

# Advanced Micro Devices [AMD] 79c970 [PCnet32 LANCE]

DEVICE=eth0

BOOTPROTO=dhcp

ONBOOT=yes

HWADDR=00:0c:29:7c:79:4d

TYPE=Ethernet

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

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

IPADDR=:ip地址

NETMASK=:子网掩码

GATEWAY=:设定默认网关

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

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

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

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

注意:不会立即生效,需重启网络服务或主机,但你会发现即使你重启了还是没有生效,这时你要再重新手动配置一下就可以啦,永久生效。

对配置文件进行直接配置vim ifcfg-eth1

clip_p_w_picpath008

/etc/init.b/network restart:重启网络服务

(3)通过路由:永久生效

/etc/sysconfig/network-scripts/route-etchX

添加格式有两种:

格式一:

DEST via NEXTHOP

目标(如果是网络要加掩码) 下一跳

例如:假如我们要到达192.168.10.0的网络,要通过10.10.10.254

首先我们要编辑vim route-eth1

192.168.10.0/24 via 10.10.10.254

重启网络:/etc/init.d/network restart

[root@server57 ~]# /etc/init.d/network restart

Shutting down interface eth0: [ OK ]

Shutting down interface eth1: [ OK ]

Shutting down interface eth2: [ OK ]

Shutting down loopback interface: [ OK ]

Bringing up loopback interface: [ OK ]

Bringing up interface eth0: [ OK ]

Bringing up interface eth1:

Determining IP information for eth1... don [ OK ]

检验一下:

clip_p_w_picpath010

格式二:

ADDRESS0=192.168.10.0/24

NETMASK0=255.255.255.0

GATEWAY0=10.10.10.254

如果再添一个那就写成如下,以此类推:

ADDRESS1=

NETMASK1=

GATEWAY1=

方法与格式一相同,这里不做介绍了。

4、定义DNS服务器的方法只有一种:编辑配置文件:/etc/resolv.conf ,通常DNS服务器的IP地址最多有三个:

nameserver DNS_IP_1

nameserver DNS_IP_2

[root@server57 ~]# cat /etc/resolv.conf

; generated by /sbin/dhclient-script

search example.com

nameserver 192.168.0.254

在配置文件中我们配置两个DNS,一个主的一个备用

clip_p_w_picpath012

如果我们没有DNS服务器,又想用主机名访问另一个主机,这时我们就要用到指定本地解析:编辑/etc/hosts,

主机IP 主机名 主机别名

172.16.0.1 www.magedu.com www

[root@localhost network-scripts]# vim /etc/hosts

# Do not remove the following line, or various programs

# that require network functionality will fail.

127.0.0.1 localhost.localdomain localhost

::1 localhost6.localdomain6 localhost6

172.16.0.1 www.magedu.com www

Ping www,它会自动解析为www.magedu.com

clip_p_w_picpath014

5、配置主机名:

hostname HOSTNAME:立即生效,但不是永久生效

clip_p_w_picpath016

要想永久生效,我们要修改配置文件:/etc/sysconfig/network

[root@localhost ~]# vim /etc/sysconfig/network

clip_p_w_picpath018

重启网络服务,这时你发现还是没有改过来,这时你还有手动再改一次,就可以啦!

6、在RHEL5上还可以使用:system-config-network-tui,打开图形界面,也可以使用setup,可以把上面这条命令选择出来(直接修改配置文件,不会立即生效)system-config-network-gui:文本图形界面,只能在图形界面中使用,如果在终端中打开会乱码的。上面我们详细的讲了ifconfig命令,但它却是一个老旧的命令,功能也小,因此我们还有另外一个软件包:iproute2,功能非常强大,其中它提供了一个命令叫ip,而在ip命令下也有很大的子命令,ip命令技能实训配置ip地址,还能实现配置路由、以及无线路由表的管理,功能非常强大,更重要的是,要使用策略路由也是由它来完成的。下面我们来了解一下ip命令及其子命令的用法。

ip [ OPTIONS ] OBJECT { COMMAND | help }

ip link:配置网络接口属性

ip link show:查看网络接口的地址

ip -s link show :显示额外的查看统计信息

set:{up|down}

例如:ip link set eth1 up(启用eth1)

addr:协议地址

add

ip addr add 10.2.2.2/8 dev eth1 label eth1:0 别名(eth1的辅助地址,第二地址)立即生效,但不是永久生效

ip addr show(查看)

ip addr show eth1 to 192.168.100/24(显示某些相关的地址)

del

ip addr del 10.2.2.2/8 dev eth1

ip addr show(查看)

ip addr flush eth1 to 10/8(删除多个地址)

show

ip addr show dev DEV

route:路由

ip route show :查看路由信息

ip route flush:清空

ip route flush eth1 to 10/8:可以清空多个地址,这里清空的是以10开头的。

ip route add to 10.0.1.0/24 dev eth0 via 172.16.0.1

[root@server57 ~]# route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
10.0.1.0        172.16.0.1      255.255.255.0   UG    0      0        0 eth0
192.168.0.0     0.0.0.0         255.255.255.0   U     0       0        0 eth1
192.168.0.0     0.0.0.0         255.255.255.0   U     0       0        0 eth2
169.254.0.0     0.0.0.0         255.255.0.0     U      0        0         0 eth2
172.16.0.0       0.0.0.0          255.255.0.0     U     0       0        0 eth0
0.0.0.0         192.168.0.254   0.0.0.0         UG    0        0         0 eth2

一块网卡可以使用多个地址:网络设备可以有别名:

eth0

ethx:x 如,eth0:0,eth0:1,、、、、、、、、、

ifconfig ethX:X IP/NETMASK

/etc/sysconfig/network-scripts/ifcfg-ethX:X(改配置文件可以永久生效)

DEVICE=ethX:X

注意:非主要地址不能使用dhcp自动获取

好啦就讲这么多啦,望多多指教哦!