---------------------------------------------------------------------------------------------------------------------------------------------
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