服务器搭建学习笔记

使用硬件是操作系统的基本功能,linux操作系统对硬件的操控是通过驱动程序实现的。linux内核采用可加载的模块化设计,平时只能
将最基本的核心代码模块编译进内核,同时允许动态的将硬件信息通过驱动程序加载进内核,因此,网卡驱动程序可以动态的从内核加载
和卸载。
1.modprobe 加载指定的模块到内核,或者载入一组相互依赖的模块。
   -r 卸载指定的模块
   -l 显示所有可用模块
   -n 仅显示要执行的操作 而不实际执行
   -a 加载一组匹配的模块
2.depmod 分析载入模块的相关性,以供modprobe载入模块到内核时使用
  -a 分析所有可用模块
  -v 执行时显示详细信息
编译安装网卡
  1.rpm/source rpm 驱动安装方式
 从IBM官网下载对应服务器型号的网卡驱动程序,可以利用u盘等工具传到linux服务器上,接着进行编译
 rpm -ivh bnx2-<version>.src.rpm
 因为是root用户编译的,所以进入 /root/rpmbulid 路径进行编译
 cd /root/rpmbuild
  rpmbuild -bb SPECS/bnx2.spec   rpm文件默认会安装在 /root/rpmbuild/RPMS 目录下
  2.安装编译好的驱动包
  cd /root/rpmbuild/RPMS/x86-64
  rpm -vih  bnx2-<version>.src.rpm
  安装完毕 驱动会被安装到如下路径
 /lib/modules/<kernel-version>/kernel/drivers/net/bnx2.ko
  此时复制生成的模块文件到   /lib/modules/<kernel-version>/kernel/drivers/net/bnx2.ko 目录即可
 3.加载驱动程序
 insmod \
 > /lib/modules/<kernel-version>/kernel/drivers/net/bnx2.ko
 也饿可以用到以下命令  modprobe bnx2
 4.查看驱动模块是否加载
  lsmod |grep bnx2
 如果命令输出包含bnx2模块,表明网卡驱动编译成功
 5.激活网卡 查看网卡状态
 ifconfig eth0 up(网卡设备名,这里以eth0为例)
 ifconfig -a
 (在编译模块时,因为驱动程序需要配合内核来进行编译,所以会用到 kernel source 或者kernel header等程序包 此外也需要编译器
   compiler的帮助,因此用此方式进行安装前,要确保自己的Linux系统中包含 kernel-source kernel kernel-devel kernel-headers
  gcc  make)

源代码驱动包安装方式
   1.  从官网上下载源代码包,传到linux系统上,创建一个目录,把源代码包解压到此目录下。一般情况下,在下载的源码文件中都有
 readme文件,此文件介绍了安装的方式。这里下载的源代码包为 r8168-8.aaa.bb.tar.bz2
   mkdir /temp
   cd /temp
   tar jxvf  r8168-8.aaa.bb.tar.bz2
   2.编译安装源码
  接着上面的操作,切换到解压的目录,执行如下操作
 cd r8168-8.aaa.bb
   编译并在当前src目录下生成模块文件r8168.ko 执行如下操作
   make clean modules
  安装模块文件到 /lib/modules/<kernel_version>/kernel/drivers/net 目录 由于下载的驱动包名不相同,标准的驱动程序包会在
 执行 “make install”时将模块文件直接安装到对应的驱动目录下,有些驱动包则不行。因此,如果某些安装程序没有将模块文件
安装到对应的驱动目录下,就要手动复制模块文件到此目录下。
  make install
  检查模块之间的依赖关系
  depmod -a
  加载 r8168模块
  insmod ./src/r8168.ko
  检查r8168模块是否加载
  lsmod |grep r8168
  如果看到r8168模块已经加载,证明编译成功
  激活网卡设备,查看网卡的状态。




   配置linux网络
 网络的配置文件一般在/etc 目录下,但是在不同发行版的linux 网络配置文件路径略有不同。
  Centos Linux 下网络的配置路径为:
  /etc/sysconfig/network-scripts/ifcfg-lo  #网卡环回地址
  /etc/sysconfig/network  #主机名和网关配置文件
  /etc/resolv.conf  #dns配置文件
  /etc/hosts   # 设置主机和ip绑定信息
  Ubuntu Linux下网络配置文件路径为
  /etc/network/interfaces  #ip地址、子网掩码等配置文件
  /etc/resolv.conf  # DNS配置文件
  /etc/hostname  #全局主机名配置文件
  /etc/hosts  #设置主机和ip的绑定信息
 
  网络配置文件详解
  (1)CentOS 6.5版本中网络配置文件
  网卡配置文件 /etc/sysconfig/network-scripts/ifcfg-eth0 内容如下
  DEVICE=eth0                     表示网卡的设备名称
  ONBOOT=yes                      配置在开机的时候自动启动网卡eth0
  BOOTPROTO=static                指出eth0接口具有一个静态(static)ip配置,如果网络环境为动态获取IP地址,改为 dncp
  BROADCAST=                        广播地址
  IPADDR=                         静态IP地址
  NETMASK=                        子网掩码
  NETWORK=                        网络号
  GATEWAY=                        网关
  HWADDR=00:1E:0E:CF:1A:E4    显示eth0接口的MAC地址
  TYPE=Ethernet                   指定网卡的类型为以太网
  配置完成后使用 service network restart 命令使网络设置生效
 
  本地回环配置文件 /etc/sysconfig/network-scripts/ifcfg-lo
  DEVICE=lo       指出网络设备名
  IPADDR=         lo接口的IP地址
  NETMASK=        子网掩码
  NETWORK=         网络号
  BROADCAST=       lo接口的广播地址
  ONBOOT=yes       开机启动lo接口
  NAME=loopback    将lo接口设备设置为本地回环(loopback)地址

  主机名和网关配置文件 /etc/sysconfig/network
  NETWORKING=yes         表示配置网络是否正常运行
  NETWORKING_IPV6=no     表示IPv6网络是否正常
  HOSTNAME=WEBServer     表示Linux的主机名
  GATEWAY=             指出网关地址

  DNS配置文件/etc/resolv.conf
  nameserver  221.11.1.67
  这里设置两个DNS 服务器地址 nameserver 表示域名服务器,后面的IP地址就是dns服务器。
  当用户在Linux下访问互联网某个域名时,就是靠指定的这些dns服务器进行解析的
 
  设置主机和IP绑定配置文件 /etc/hosts
  主机和IP绑定,也叫本地解析。类似于Windows下的hosts文件,如果设置了主机和IP绑定,那么当访问绑定主机时,系统就会从hosts
  中查找对应的IP地址,而不从 /etc/resolv.conf 中寻找dns服务器进行IP解析
 
  下面是/etc/hosts 中的内容
  127.0.0.1  localhost.localdomain   localhost.
  192.168.60.133   www.ixdba.net
  hosts文件中每行内容为一个主机  每行由三部分组成  也可以是两部分,即IP地址和主机名。
  第一部分表示网络IP地址
  第二部分表示主机名.域名   注意主机名和域名之间有一个半角的句点   比如 localhost.localdomain
  第三部分表示主机名(主机名别名)
  将192.168.60.133 和  www.ixdba.net 绑定。 这样当访问www.ixdba.net 主机时,系统将会解析到192.168.60.133 机器进行访问


   CentOS 版本中网络配置文件
    TYPE=Ethernet
    BOOTPROTO=static             启用静态IP地址
    DNS=223.5.5.5                
    DEFROUTE=yes
    IPV4_FAILURE_FATAL=yes
    IPv6INIT=no
    NAME=eth0                    与网卡配置文件名对应的一个标签,无实际意义
    UUID=                         网卡唯一设备标识,系统自动生成
    DEVICE=enp0s3                网卡设备名
    ONBOOT=yes
    IPADDR0=                   标识IP地址  CentOS 7.0 版本后的新功能 可以一个网卡配置文件中配置多个IP地址
    PREFIX0=24                 设置子网掩码
    GATEWAY=                   设置网关地址

   
   CentOS 7.0之后的版本  所有网络和管理都统一由NetworkManager服务来维护。相对于/etc/init.d/network脚本管理方式,NetworkManager
  是动态的、事件驱动的网络管理服务。NetworkManager导致常用的一些网络命令发生了一些变化,与NetworkManager服务相对应的
  管理工具是nmtui。nmtui命令比较复杂,对于新手有一定的难度,建议初学者通过修改配置文件方法来配置网络,等到对系统整体有了
  完整的认识后,在学习nmtui
 
  2)主机名配置文件/etc/sysconfig/network
  7.x版本中 主机名存放在一个专门的配置文件中,要修改系统的主机名,只需要将主机名添加到此文件中即可
  3)网关配置文件 /etc/sysconfig/network
   这个配置文件中,可以配置系统默认的网关
   GATEWAY=192.168.66.254
   这个配置方法,当网卡配置文件已经配置了网关地址时,此文件中的网关配置自动失效。相反,如果没有在网卡配置文件中设置网关
   地址时,系统会默认从这个文件中读取网关配置。


  Linux的网络应用
  Linux下可以在一个网络设备接口虚拟出多个接口。比如 eth0:0 接口其实就是设备eth0虚拟出来的设备,这样一个网卡设备就拥有了
  多个IP地址。一块网卡具有多个IP地址的功能成为IP别名,也就是一块网卡可以绑定多个IP地址。
  1.CentOS 6.x以及之前的版本中网卡绑定多个IP地址
  Linux的网络设备配置文件存放在 /etc/sysconfig/network-scripts 目录中。
  对于以太网的第一个网络设备,配置文件名一般为 ifcfg-eth0 如果需要为第一个网络设备再绑定一个IP地址,只需要在目录下创建
  一个名为ifcfg-eth0:0的文件,然后配置相应的IP信息即可。
   DEVICE="eth0:0"
   BOOTPROTO=static
   IPADDR="192.168.66.168"
   NETMASK="255.255.255.0"
   ONBOOT="yes"
   NETWORK=192.168.60.0
   BROADCAST=192.168.60.255
  CentOS Linux 下可以支持255个IP别名
  其实可以通过ifconfig命令来虚拟一个网络接口,并且可以立即进行连接。但是当重启网卡或者系统后,该虚拟网络接口就会被取消。
  设置永久生效的办法就是通过增加配置文件。
  ifconfig [device] [IP]  netmask  [netmask IP]  [up|down]
  ifconfig  eth0:1 192.168.66.131  netmask 255.255.255.0 up


  开启Linux 代理转发功能
  1.修改/proc 下内核参数文件内容
   直接修改内核参数ip_forward 在/proc 下对应文件 /proc/sys/net/ipv4/ip_forward 用下面的命令查看ip_forward文件内容
   cat /proc/sys/net/ipv4/ip_forward
   该文件中的默认值0表示禁止IP转发,修改为1即开启转发功能。修改后马上生效,即内核已经打开IP转发功能。如果系统重启后
   又恢复默认值0 要永久打开IP转发功能,就需要修改 etc/sysctl.conf 文件内容来实现
  2.修改 /etcsysctl.conf 文件
   默认sysctl.conf文件中有一个变量是
  net.ipv4.ip_forward=0
  将后面的值改为1,然后保存文件。如果想要立即生效 需要执行命令  systl -p

  路由的分类
  路由分为静态路由和动态路由。
  Linux上配置的路由都属于静态路由,静态路由的产生是由于系统管理员使用route命令所加入的静态路由规则,也就是由手动输入的
  方式来加入的路由规则。
  动态路由就是无需手动输入路由规则,其路由规则是本机与不同机器彼此经过路由程序相互交换路由规则而来的。如果网络发生了变化
, 路由如那件就会重新计算路由并发出新的路由更新信息。这些信息更新到网络,使路由器重新计算并对路由表做出相应的改变。
  route [-n|ee]
  route add[-net|-host] [网络或主机] netmask [mask] [gw|dev]
  -n 不使用通信协议或主机名称,直接使用ip地址
  -ee 显示更详细的路由信息
  add 表示添加路由信息
  -net 表示添加一个网络,也就是后面接的是一个网络地址
  -host 表示后面接的为链接到单独主机的路由
  netmask  表示后面接的是子网掩码的信息,子网掩码可以限制网络的大小
  gw 网关IP信息
  dev 指定由那个网络设备联机出去,后面接网络设备名
   gateway:连出网关地址,表示该网络是通过这个IP链接出去的,如果显示 0:0:0:0 则表示改路由直接由本机传出去。
            如果有IP显示,表示本条路由必须经过这个IP的转接才能连出去
   使用route 添加路由时,设定的路由必须与自己系统的网络接口(eth0)或者IP可以直接互通,才能添加成功
 

猜你喜欢

转载自blog.csdn.net/lzh_86/article/details/80062791