linux 服务器网络配置
本章主要讲解Linux系统下关于网络的一些基础知识和系统出现网络问题时的应对策略,详细讲述了Linux系统下网卡的安装与配置方法;以及常见网卡故障的排除思路和解决方案
网卡驱动的安装
Linux操作系统作为服务器在使用过程中,出现问题最多的就是网络问题,而与网络对应的就是操作系统中网卡安装、配置的问题。
网卡驱动安装的一般思路
我们在安装Linux系统的时候,如果出现网卡配置的界面,一般说明系统识别到了网卡,或者说系统光盘中含有网卡的驱动程序。不同的版本,不同的系统内核,所含的网卡驱动程序不尽相同,自从最新内核3.10版本以后,Linux自带的网卡驱动陈旭已经很完善了,许多著名厂商(如 inter Realtek VIA等)都默认支持网卡芯片。但是由于Linux发行版很多,硬件更新又很快,可能仍有部分较新的网卡芯片在Linux下不被支持,此时就需要手动安装网卡驱动程序。
对于网卡安装和使用过程中出现的故障,我们需要有一套完整的故障排除思路和解决方法
1. 首先从硬件入手,检查网卡本身故障
2. 检查网卡芯片型号
3. 查看系统是否包含对应型号的网卡驱动
4. 检查网卡驱动是否加载
配置linux网络
不同Linux发行版的网络配置文件
网卡通过驱动程序激活后,接下来就要配置网络信息。网络的配置文件一般都在/etc 目录下,但是不同发行版的Linux,网络配置文件路径略有不同。
RHEL/Centos Linux下网络的配置文件路径为:
/etc/sysconfig/network-scripts/ifcfg-interfacename (interfacename 根据网卡类型和排序不同)
/etc/sysconfig/network-scripts/ifcfg-lo # 网卡回环地址
/etc/sysconfig/network # 主机名和网关配置文件
/etc/resolv.conf #DNS 配置文件
/etc/hosts #设置主机和IP绑定信息
Debin/Ubuntu Linux下网络配置文件路径为:
/etc/network/interfaces # IP 地址、子网掩码等配置文件
/etc/resolv.conf #DNS配置文件
/etc/hostname #全局主机名配置文件
/etc/hosts #设置主机和IP绑定信息
开启Linux代理转发功能
修改/proc下内核参数
[root@localhost ~]# cat /proc/sys/net/ipv4/ip_forward 0
0:表示静止IP转发
1:开启IP转发功能
[root@localhost ~]# echo "1" > /proc/sys/net/ipv4/ip_forward
修改/etc/sysctl.conf文件
默认sysctl.conf文件中有一个变量是:
net.ipv4.ip_forward = 0
将后面的值改为1,然后保存文件。因为每次系统启动时初始化脚本/etc/rc.d/rc.sysint会读取/etc/sysctl.conf文件的内容,所以修改此文件后每次系统重启时都会开启IP转发功能,但只是修改sysctl文件不会马上生效,如果要修改的马上生效的话,可以执行此命令
[root@localhost ~]# sysctl -p
路由的概念与配置
路由的概念
计算机与计算机之间的数据传输必须经由路由网络,而网络可以通过直接连接两台计算机的方式,或者由一个或一个以上的节点来构成。数据传输到另一网络节点,另一个网络节点再将数据传输到下个节点,依次类推,最终把数据传输到目标主机。这就是数据传送的一个完整过程,而每个网络几点就是一个路由,”约定“就是路由规则,数据传输就是根据路由规则依次传输下去的。
路由的分类
路由分为静态路由和动态路由。
静态路由:
Linux上配置的路由都属于静态路由。静态路由的产生,是由于系统管理员使用route命令所加入的静态路由规则,也就是由手动输入的方式来加入的路由规则。
动态路由:
动态路由就是无需手动输入路由规则,其路由规则是本机与不同及其彼此经路由程序(routing daemon)相互交换路由规则而来的。如果网络发生了变化,路由软件就重新计算路由并发出新的路由更新信息。这些信息更新到网络,是路由器重新计算并对路由表做相应的改变。
路由的配置
在Linux下可以通过route命令配置静态路由信息
(1) route 命令
功能描述:
配置系统静态路由:
语法格式:
route [-n | ee] route add [-net|-host] [网络或主机] \ netmask [mask] [gw|dev] route del [-net|-host] [网络或主机] \ netmask [mask] [gw|dev]
选项:
-n 不适用通信协议或主机名,直接使用IP地址 -ee 显示更详细的路由信息 add 表示添加路由信息 del 表示删除路由信息 -net 表示添加一个网络,也就是后面接的是一个网络号地址 -host 表示后面接的为连接到单独主机的路由 netmask 表示后面接的是子网掩码信息,子网掩码可以限制网络的大小 gw 网关IP信息,gateway的缩写 dev 指定由那个网络设备联机出去,后面接网络设备名。
示例:
[root@localhost ~]# route -n Kernel IP routing table Destination Gateway Genmask Flags Metric Ref Use Iface 0.0.0.0 172.16.59.1 0.0.0.0 UG 100 0 0 ens33 172.16.59.0 0.0.0.0 255.255.255.0 U 100 0 0 ens33 [root@localhost ~]# route Kernel IP routing table Destination Gateway Genmask Flags Metric Ref Use Iface default gateway 0.0.0.0 UG 100 0 0 ens33 172.16.59.0 0.0.0.0 255.255.255.0 U 100 0 0 ens33
(2) route 命令输出的含义:
Destination:
表示网络号,也就是network的意思
Gateway:
连出网关地址,也就是说,该网络是通过这个IP地址连接出去的。如果显示0:0:0:0,则表示该路由直接由本机传送出去。如果有IP显示,表示本条路由必须经过这个IP的转接才能连接出去。
Genmask:
表示子网掩码地址,也就是netmask。Destination和Genmask组合成一个完整的网络
Flags:
路由标记信息,有几种不同的标记:
- U(route is up):表示路由是启动的。
- H(target is a host):目标路由是一部主机(IP)而非网络
- R(reinstate route for daemon or redirect):使用动态路由时,恢复路由信息标记。
- G(use gateway): 表示需要通过外部的主机(gateway)来转接、转递数据。
- M(modified from routing daemon or redirect): 表示路由已经被修改了。
- D(dynamically installed by daemon or redirect):已经由服务设定为动态路由。
- !(reject route):这个路由将不会被接受(用来抵挡不安全的网络)。
Metric:
需要经过几个网络节点(hop)才能到达路由的目标网络地址。
Ref:
参考到此路由规则的数目。
Use:
有几个转送数据包参考到此路由规则。
Iface:
路由对应的网络设备接口。