CentOS8 网络配置管理
- nmtui 命令配置网络
- 创建网络会话
- nmcli 命令管理Network Manager服务
- 查看网络会话
- 查看网卡状态
- 配置公司中的网络会话
- 配置家中的网络会话
- 查看所有网络会话
- 启用公司中的网络会话配置
- 绑定两块网卡
- 将两块网卡进行初始设置
- 初始设置第一块从属网卡
- 初始设置第二块从属网卡
- 配置绑定后的设备(bond0)
- 配置网卡绑定驱动模式
- 重启网络服务
- 远程控制服务
- 配置sshd服务
- ssh命令
- 配置sshd服务
- 安全密钥验证
- scp 远程传输命令
- 不间断会话服务
- 实践总结
nmtui 命令配置网络
含义: 配置linux系统网络,查看网络信息并管理网络会话服务。
for example
[root@MyCentOS ~]# nmtui
通过以上命令可以进行网络配置,网络配置是以图形化的方式进行的,所以并不是很难。如果网卡没有默认激活,则需要使用 vim 编辑 /etc/sysconfig/network-scrips将其中的 ONBOOT参数修改成 yes
配置好网络后,使用systemctl restart network-online.target
即可立即生效。
创建网络会话
Centos默认使用Network Manager
提供网络服务。Network Manager
是动态管理网络配置的守护进程,能够让网络设备保持连接状态。
centos系统支持网络会话功能,类似于firewalld
防火墙的区域技术,允许用户在多个配置文件中快速切换,实现在不同工作场景下使用不同的网络配置。
nmcli 命令管理Network Manager服务
格式: nmcli connection add con-name type ifname
查看网络会话
[root@MyCentOS ~]# nmcli connection show
NAME UUID TYPE DEVICE
ens33 772108b9-f68b-4fb6-b00f-3401fbe6f95f ethernet ens33
virbr0 d9f42a52-f042-47d8-822a-5da229553811 bridge virbr0
查看网卡状态
[root@MyCentOS ~]# nmcli con show ens33
connection.id: ens33
connection.uuid: 772108b9-f68b-4fb6-b00f-3401fbe6f95f
connection.stable-id: --
connection.type: 802-3-ethernet
connection.interface-name: ens33
..............省略输出
配置公司中的网络会话
[root@MyCentOS ~]# nmcli connection add con-name company ifname ens33 autoconnect no type ethernet ip4 192.168.10.10/24 gw4 192.168.10.1
连接 "company" (de8266c9-608e-405c-99a9-b19a604894e0) 已成功添加。
参数解释:
-
company
是用户自己指定的某场景下配置网络的名称 -
ens33
是本机上的网卡名称 -
autoconnection no
表示手动连接 -
type ethernet
表示网络类型为以太网 -
ip4 192.168.10.10/24
表示使用IPV4协议中的网络段 -
gw4
表示在公司场景下的网关地址
配置家中的网络会话
[root@MyCentOS ~]# nmcli connection add con-name house type ethernet ifname ens33
连接 "house" (c42775b6-1af7-4cd4-b59e-9eba6f0691a9) 已成功添加。
其中的含义与配置公司网络会话相似。
查看所有网络会话
[root@MyCentOS ~]# nmcli connection show
NAME UUID TYPE DEVICE
ens33 772108b9-f68b-4fb6-b00f-3401fbe6f95f ethernet ens33
virbr0 d9f42a52-f042-47d8-822a-5da229553811 bridge virbr0
company de8266c9-608e-405c-99a9-b19a604894e0 ethernet --
house c42775b6-1af7-4cd4-b59e-9eba6f0691a9 ethernet --
启用公司中的网络会话配置
[root@MyCentOS ~]# nmcli connection up company
连接已成功激活(D-Bus 活动路径:/org/freedesktop/NetworkManager/ActiveConnection/5)
绑定两块网卡
使用网卡绑定技术,可以提高网络传输速度,保证网络连接的稳定性。
- 确保两块网卡在同一个网络中
查看当下网卡状态
[root@MyCentOS ~]# nmcli
ens33: 已连接 到 house
"Intel 82545EM"
ethernet (e1000), 00:0C:29:E6:75:0B, 硬件, mtu 1500
inet4 192.168.226.128/24
route4 192.168.226.0/24
inet6 fe80::19dc:544a:cbb3:6414/64
route6 fe80::/64
route6 ff00::/8
virbr0: 已连接 到 virbr0
"virbr0"
bridge, 52:54:00:F9:CF:22, 软件, mtu 1500
inet4 192.168.122.1/24
route4 192.168.122.0/24
ens37: 已断开
"Intel 82545EM"
ethernet (e1000), 00:0C:29:E6:75:15, 硬件, mtu 1500
可以看到除了之前配置的第一块网卡ens33,还有一块网卡ens37。现将两块网卡进行绑定。
将两块网卡进行初始设置
这两块独立的网卡设备需要被配置成为一块从属网卡,服务于主网卡。例如,本例中,ens33和ens37就是两块独立的网卡,需要配置成从属网卡,主网卡则是两块网卡绑定后的整体(bond0)。
初始设置第一块从属网卡
[root@MyCentOS network-scripts]# vim /etc/sysconfig/network-scripts/ifcfg-ens33
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=ens33
#UUID=772108b9-f68b-4fb6-b00f-3401fbe6f95f
DEVICE=ens33
ONBOOT=yes
#IPADDR=192.168.10.10
#PREFIX=24
USERCTL=no
MASTER=bond0
SLAVE=yes
初始设置第二块从属网卡
[root@MyCentOS network-scripts]# vim /etc/sysconfig/network-scripts/ifcfg-ens37
TYPE= Ethernet
BOOTPROTO=none
ONBOOT=yes
USERCTL=no
DEVICE=ens37
MASTER=bond0
SLAVE=yes
配置绑定后的设备(bond0)
[root@MyCentOS network-scripts]# vim /etc/sysconfig/network-scripts/ifcfg-bond0
TYPE=Ethernet
BOOTPROTO=none
ONBOOT=yes
USERCTL=no
DEVICE=bond0
IPADDR=192.168.10.10
PREFIX=24
DNS=192.168.10.1
NM_CONTROLLED=no
配置网卡绑定驱动模式
让linux内核支持网卡绑定驱动,常见网卡绑定驱动有三种模式
- mode0(负载均衡模式):两块网卡同时工作,自动备援,需要本地交换机上使用端口聚合技术
- mode1(自动备援模式):只有一块网卡工作,故障之后另一网卡自动顶替
- mode6(负载均衡模式):两块网卡同时工作,自动备援,但无需交换机提供辅助支持
在完成网卡的初始设置之后需要创建并配置网卡绑定的驱动文件
[root@MyCentOS modprobe.d]# vim /etc/modprobe.d/bond.conf
alias bond0 bonding
options bond0 miimon=100 mode=6
驱动文件释义:
-
alias bond0 bonding
表示将bond0
进行关联绑定 -
options bond0
表示将设置bond0的选项参数 -
miimon=100
表示在发生故障时100ms后自动切换 -
mode=6
表示使用mode6
负载均衡模式
重启网络服务
[root@MyCentOS modprobe.d]# systemctl restart network
配置失败,只出现两块独立网卡的网络地址,没出现bond0的网卡信息
再议再议
远程控制服务
配置sshd服务
再ssh之前是使用FTP或Telnet来进行远程登入的,这两种登入方式会以明文的方式在网络中传输十分不安全。**SSH(Secure Shell)**是一种能够以安全的方式提供远程登录协议。
sshd是基于SSH协议开发的一款远程管理服务程序,提供两种安全验证方法
- 基于口令的验证---------用账户和密码进行验证登录
- 基于密钥的验证---------需要在本地生成密钥对,然后把密钥对中的公钥上传至服务器,并与服务器中的公钥进行比较,相对更安全。
ssh命令
格式: ssh [参数] 主机IP地址
退出: exit
配置sshd服务
直接在/etc/ssh/sshd_config
中编辑即可
---------------------------------------sshd服务配置文件中包含的参数以及作用--------------------------------------
参数 | 作用 |
Port 22 | 默认的sshd服务端口 |
ListenAddress 0.0.0.0 | 设定sshd服务器监听的IP地址 |
Protocol 2 | SSH协议的版本号 |
HostKey /etc/ssh/ssh_host_key | SSH协议版本为1时,DES私钥存放位置 |
HostKey /etc/ssh/ssh_host_rsa_key | SSH协议版本为2时,RSA私钥存放位置 |
HostKey /etc/ssh/ssh_host_dsa_key | SSH协议版本为2时,DSA私钥存放位置 |
PermitRootLogin yes | 设定是否允许root管理员直接登录 |
StrictModes yes | 当远程用户的私钥改变时直接拒绝连接 |
MaxAuthTries 6 | 最大密码登入尝试次数 |
MaxSessions 10 | 最大终端数 |
Password Authentication yes | 是否允许密码验证 |
PermitEmptyPasswords no | 是否允许空密码登录 |
配置好sshd服务之后并不会立即生效,应当重启相应的程序,最好再加入到开机自启项中。
重启
[root@MyCentOS ~] systemctl restart sshd
开机自启
[root@MyCentOS ~] systemctl enable sshd
安全密钥验证
使用安全密钥验证相对更加安全,安全密钥分为公钥和私钥。用户通过在本地生成密钥对,同时将公钥上传至远程服务器中,在本地保留私钥,同时禁止密码登录来保证安全性。
- 生成密钥对
---------命令:ssh-keygen
创建过程是交互式的 - 上传公钥至远程服务器
--------命令:ssh-copy-id 远程主机IP
交互式创建 - 配置服务器中的sshd服务,设置为禁止密码验证登入,开启密钥验证登录
PasswordAuthentication no
4.重启sshd服务
至此在远程不需要使用密码就可以直接登入ssh ip地址
scp 远程传输命令
scp是一种基于ssh协议在网络之间安全传输的命令,能通过网络传输并且数据都进行加密处理。
--------------------------------------------------------scp参数及作用------------------------------------------------------------
参数 | 作用 |
-v | 显示详细的连接进度 |
-P | 指定远程主机的sshd端口号 |
-r | 用于传输文件夹 |
-6 | 使用IPV6协议 |
上传格式: scp [参数] 本地文件 远程账户@远程IP地址:远程目录
上传示例
[root@MyCentOS ~]scp /root/readme.txt 192.168.10.20:/home
下载格式: scp [参数] 远程用户@远程IP地址:远程文件 本地目录
下载示例
[root@MyCentOS ~] scp 192.168.10.20:/home/readme.txt /root
不间断会话服务
当远程主机的会话被关闭时,在远程主机上允许的命令也会随之中断。为了不丢失对远程系统的控制可以使用screen程序。
screen功能
- 会话恢复 即便网络中断,也可以让会话岁时恢复,确保用户不会对远程会话失去控制。
- 多窗口 每个会话都是独立运行的,拥有各自独立的输入输出终端窗口,终端窗口内显示过的信息也将被分开隔离保存,以便下次使用时依然能开到之前的操作记录。
- 会话共享 当多个用过户同时登录到远程服务器时,便可以使用会话共享功能让用户之间的输入输出信息共享。
使用yum install screen
安装screen软件
---------------------------------------------screen常用参数----------------------------------------------------------------------
参数 | 作用 |
-S | 创建会话窗口 |
-d | 指定会话进行离线处理 |
-r | 恢复指定会话 |
-x | 一次性恢复所有会话 |
-ls | 显示当前已有会话 |
-wipe | 把目前无法使用的会话删除 |
在实际使用中,可以直接使用screen cmd
来执行要执行的命令。
实践总结
在实际配置过程中,可能会出现连接不到网络(也就是说系统没有网络连接的图标),或者使用命令行模式时出现 Connection ‘ens33’ is not available on device ens33 because device is strictly unmanaged 或者出现Failed to restart networl.service: Unit networl.service not found.
- 使用
nmcli connection show
命令查看网卡状态时,可以发现网卡和网关都没有被托管。 - 使用
nmcli n on ens33
重新托管网卡。 - 使用
systemctl restart NetworkManager.service
重启网络。
- 在centOS8系统中,统一使用
systemctl
命令进行系统管理,而不再使用诸如ifup
、service
或者chkconfig
之类的命令。 - 在CentOS8中,重启网络时,使用的时
systemctl restart network-online.target
命令,而不再是《linux就该这么学》中的systemctl restart network
- 在配置ssh服务的时候一不小心把
sshd_config
配置文件删了,以下是重新找回原始的配置文件
命令
rpm -qa openssh*
yum list |grep openssh
- 因为sshd的配置文件修改过,所以之前设置的密钥登入就失效了。所以还需修改配置文件。
- 首先将默认sshd服务端口打开,服务监听打开
- 将
PasswordAuthentication
修改为yes
,也就是修改为允许密码登入 - 将
PermitRootLogin
修改为yes
,允许root用户登录 - 然后生成密钥对发送给服务器。
- 在修改密钥时先将
~/.ssh/know_hosts
中的相关信息删除 - 或者在重新生成密钥对时直接使用
ssh-keygen -R IP
命令即可。 - 当其他用户登入服务器时,ssh即使设置了密钥登录还是会要求输入密码,而不会直接登录。还没找到方法,权限问题全都试过了不起作用。