Linux 网络基础 (CentOS 7)


---------------------------------------------------------------------------------------------------------------------------------------------


1. Linux 连上 Internet 前的注意事项
---------------------------------------------------------------------------------------------------------------------------------------------
想要连上 Internet 你得要设定一组合法的 IP 参数才可以,主要是 IP, Netmask, Gateway, DNS IP 以及主机名等


1.1 Linux 的网卡
---------------------------------------------------------------------------------------------------------------------------------------------
    
    □ 认识网卡的装置代号
    -----------------------------------------------------------------------------------------------------------------------------------------
        网卡的代号 (Network Interface Card, NIC) 以模块对应设备名称来表示,默认的网络卡代号为 enp6s0f0,第二张网络卡则为
        enp6s0f1,以此类推。
                        
    □ 观察内核所捉到的网卡信息        
    -----------------------------------------------------------------------------------------------------------------------------------------    
        确认网卡是否被内核捕捉:
                
            [root@www ~]# dmesg | grep -in eth
            
            输出:
            986:[    1.994714] igb: Intel(R) Gigabit Ethernet Network Driver - version 5.4.0-k
            1029:[    2.063709] igb 0000:06:00.0: added PHC on eth0
            1030:[    2.063714] igb 0000:06:00.0: Intel(R) Gigabit Ethernet Network Connection
            1031:[    2.063718] igb 0000:06:00.0: eth0: (PCIe:5.0Gb/s:Width x4) 50:46:5d:e4:9d:34
            1032:[    2.063799] igb 0000:06:00.0: eth0: PBA No: 104900-000
            1045:[    2.134875] igb 0000:06:00.1: added PHC on eth1
            1046:[    2.134877] igb 0000:06:00.1: Intel(R) Gigabit Ethernet Network Connection
            1047:[    2.134879] igb 0000:06:00.1: eth1: (PCIe:5.0Gb/s:Width x4) 50:46:5d:e4:9d:35
            1048:[    2.135011] igb 0000:06:00.1: eth1: PBA No: 104900-000

        
        lspci 来查询相关的设备芯片数据:
                
            [root@www ~]# lspci | grep -i ethernet
            
            输出:
            06:00.0 Ethernet controller: Intel Corporation I350 Gigabit Network Connection (rev 01)
            06:00.1 Ethernet controller: Intel Corporation I350 Gigabit Network Connection (rev 01)
        
        
    □ 观察网络卡的模块
    -----------------------------------------------------------------------------------------------------------------------------------------    
        lsmod 查看内核是否顺利载入:
            
            [root@www ~]# lsmod | grep igb
            
            输出:
            igb                   205773  0
            ptp                    19231  1 igb
            dca                    15130  1 igb
            i2c_algo_bit           13413  2 ast,igb
            i2c_core               40756  7 ast,drm,igb,i2c_i801,ipmi_ssif,drm_kms_helper,i2c_algo_bit

        查看模块的相关信息:
            
            [root@www ~]# modinfo igb
            
            输出:
            filename:       /lib/modules/3.10.0-693.21.1.el7.x86_64/kernel/drivers/net/ethernet/intel/igb/igb.ko.xz
            version:        5.4.0-k
            license:        GPL
            description:    Intel(R) Gigabit Ethernet Network Driver
            author:         Intel Corporation, <[email protected]>
            retpoline:      Y
            rhelversion:    7.4
            ...
            
            输出信息重点是文件名,驱动程序文件。
        

1.2 Linux 网络相关配置文件
---------------------------------------------------------------------------------------------------------------------------------------------

    
    +===========+===============================================+===============================+
    | 网络参数    |                主要配置文件名                    |    重要参数                    |
    +-----------+-----------------------------------------------+-------------------------------+
    | IP        | /etc/sysconfig/network-scripts/ifcfg-enp6s0f0    | DEVICE=网卡的代号                |
    | Netmask     |                                                | BOOTPROTO=是否使用 dhcp        |
    | DHCP        |                                                | HWADDR=是否加入网卡卡号(MAC)    |
    | Gateway    |                                                | IPADDR=就是IP地址                |
    |            |                                                | ONBOOT=要不要默认启动此接口    |
    |            |                                                | GATEWAY=网关                    |
    |            |                                                | NM_CONTROLLED=额外的网管软件    |
    +-----------+-----------------------------------------------+-------------------------------+
    | 主机名    | /etc/sysconfig/network                        | NETWORKING=是否有网络            |
    |            |                                                | NETWORKING_IPV6=是否支持IPv6    |
    |            |                                                | HOSTNAME=主机名                |
    +-----------+-----------------------------------------------+-------------------------------+
    | DNS IP    | /etc/resolv.conf                                | nameserver DNS的IP            |
    +-----------+-----------------------------------------------+-------------------------------+
    | 私有 IP    |                                                | 私有IP 主机名 别名            |
    | 对应的    | /etc/hosts                                    |                                |
    | 主机名    |                                                |                                |
    +-----------+-----------------------------------------------+-------------------------------+
        
    其他文件:
    
    ● /etc/services :这个文件是记录架构在 TCP/IP 上的应用协议端口,包括 http, ftp, ssh, telnet 等
        
    ● /etc/protocols :这个文件定义出 IP 封包协议的相关数据,包括 ICMP/TCP/UDP 这方面的封包协议的定义等。
    
    ● /etc/init.d/network restart :重要脚本,可以重新启动全部网络参数,主动读取网络配置文件。
    
    ● ifup enp6s0f0 (ifdown enp6s0f0) :启动或关闭某个网卡,可以通过这个脚本来处理。


2. 连上 Internet 的设置
---------------------------------------------------------------------------------------------------------------------------------------------


2.1 手动设定固定 IP 参数
---------------------------------------------------------------------------------------------------------------------------------------------
所谓的固定 IP 就是指在网络参数当中,只要输入既定的 IP 参数即可。

/etc/sysconfig/network-scripts/ifcfg-enp6s0f0 修改内容:

    TYPE="Ethernet"
    PROXY_METHOD="none"
    BROWSER_ONLY="no"
    BOOTPROTO="none"
    DEFROUTE="yes"
    IPV4_FAILURE_FATAL="no"
    IPV6INIT="yes"
    IPV6_AUTOCONF="yes"
    IPV6_DEFROUTE="yes"
    IPV6_FAILURE_FATAL="no"
    IPV6_ADDR_GEN_MODE="stable-privacy"
    NAME="enp6s0f0"
    UUID="ef61481a-09c1-47db-93fd-0265f73864f9"
    DEVICE="enp6s0f0"
    ONBOOT="yes"
    IPADDR="192.168.1.10"
    PREFIX="24"
    GATEWAY="192.168.1.1"
    DNS1="202.99.96.68"
    IPV6_PRIVACY="no"

    PEERDNS="no"    # 添加这一行, 因为使用 DHCP 时,系统会主动的使用 DHCP 服务器传来的数据进行系统配置文件的修订。因此,必须告知系统,不要使用 DHCP 传来的
                    # 服务器设定值。



注意每个变量(左边的英文)都应该大写,否则 script 会出错。

    ■ DEVICE:这个值后面接的设备名称需要与文件名 (ifcfg-enp6s0f0) 那个设备名称相同才行!否则可能会造成一些设备名称找不到的困扰。

    ■ BOOTPROTO:取得IP的方式,其实关键词只有dhcp,手动可输入none 。
    
    ■ GATEWAY:表示默认网关,设置这个项目时要注意,不要有重复设置的情况发生,也就是当有 ifcfg-enp6s0f0, ifcfg-enp6s0f1.... 等多个文件时,只
                要在其中一个文件中设置就可以了。


设置完毕之后,运行:

    /etc/init.d/network restart
    
重启网络环境。

查看网络参数: ifconfig enp6s0f0


2.2 自动取得 IP 参数 (DHCP 方法)
---------------------------------------------------------------------------------------------------------------------------------------------
修改 /etc/sysconfig/network-scripts/ifcfg-enp6s0f0 内容:

    BOOTPROTO="dhcp"

重新启动网络, OK




3. 其他配置网卡服务
---------------------------------------------------------------------------------------------------------------------------------------------


3.1 其他配置网参数方法
---------------------------------------------------------------------------------------------------------------------------------------------
在RHEL 7系统中有至少5种网络的配置方法,这里使用 nmtui 命令来配置网络。

命令:
     nmtui
    
     之后按 tui 图形界面配置网络参数
    
当修改完Linux系统中的服务配置文件后,并不会对服务程序立即产生效果。要想让服务程序获取到最新的配置文件,需要手动重启相应的服务,之后就可以看到
网络畅通了:

     systemctl restart network
    
3.2 创建网络会话    
---------------------------------------------------------------------------------------------------------------------------------------------    
RHEL和CentOS系统默认使用 NetworkManager 来提供网络服务,这是一种动态管理网络配置的守护进程,能够让网络设备保持连接状态。可以使用nmcli命令来管理
Network Manager服务。nmcli是一款基于命令行的网络配置工具,功能丰富,参数众多。它可以轻松地查看网络信息或网络状态:
    
    nmcli connection show
    
    nmcli con show enp6s0f0
    
    
RHEL7系统支持网络会话功能,允许用户在多个配置文件中快速切换(非常类似于firewalld防火墙服务中的区域技术)。如果我们在公司网络中使用笔记本电脑时
需要手动指定网络的IP地址,而回到家中则是使用DHCP自动分配IP地址。这就需要麻烦地频繁修改IP地址,但是使用了网络会话功能后一切就简单多了—只需在不同
的使用环境中激活相应的网络会话,就可以实现网络配置信息的自动切换了。

可以使用nmcli命令并按照“connection add con-name type ifname”的格式来创建网络会话。假设将公司网络中的网络会话称之为company,将家庭网络中的网络会
话称之为house,现在依次创建各自的网络会话。
    
使用con-name参数指定公司所使用的网络会话名称company,然后依次用ifname参数指定本机的网卡名称(千万要以实际环境为准,不要照抄书上的eno16777736),
用autoconnect no参数设置该网络会话默认不被自动激活,以及用ip4及gw4参数手动指定网络的IP地址:

命令:
    nmcli connection add con-name company ifname eno16777736 autoconnect no type ethernet ip4 192.168.10.10/24 gw4 192.168.10.1
    
使用con-name参数指定家庭所使用的网络会话名称house。因为我们想从外部DHCP服务器自动获得IP地址,因此这里不需要进行手动指定。

命令:
    nmcli connection add con-name house type ethernet ifname eno16777736
    
在成功创建网络会话后,可以使用nmcli命令查看创建的所有网络会话:

    [root@linuxprobe ~]# nmcli connection show
    
使用nmcli命令配置过的网络会话是永久生效的,这样当我们下班回家后,顺手启用house网络会话,网卡就能自动通过DHCP获取到IP地址了。

命令:
    [root@linuxprobe ~]# nmcli connection up house
    
    
   

猜你喜欢

转载自blog.csdn.net/devalone/article/details/80547141