前言
身为一个三年的运维工程师,从开发转测开再转运维,都是不断学习的过程,未必开发才是最优秀的,找到适合自己的职业不断深耕,你也会在自己的行业大放光彩,本系列依照《Linux就该这么学》系列随书学习练习操作,将一些课本上不顺畅的地方,全部以最简方式免费开源展示给大家,资源大家可以自行百度,也希望大家多关注刘遄老师的第二版关于centos8的丛书,学习最前沿的Linux相关技术。
常用命令汇总
配置网络服务
配置网络参数
使用 Vim 编辑器将网卡配置文件中的 ONBOOT 参数修改成 yes,这样在系统重启后网卡就被激活了,其他配置如下所示:
[root@localhost ~]# vim /etc/sysconfig/network-scripts/ifcfg-ens33
TYPE="Ethernet"
PROXY_METHOD="none"
BROWSER_ONLY="no"
BOOTPROTO="dhcp"
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="176e0076-c74e-4c93-ba8f-aa0fd9aeca4d"
DEVICE="ens33"
ONBOOT="yes"
手动重启相应的服务,ping一下外网通不通畅
[root@
localhost
~]# systemctl restart network
[root@
localhost
~]# ping -c 4 www.baidu.com
创建网络会话
nmcli 命令
管理 Network Manager 服务。nmcli 是一款基于命令行的网络配置工具,功能丰富,参数众多。
网络连接状态的五种输出结果:
full:网络正常连接
limited:以连接网络,但无法上网
portal:以连接网络,但需要认证登录后才能上网
none:没有连网
unknown:无法识别网络
查看网卡
[root@localhost ~]# nmcli connection show
NAME UUID TYPE DEVICE
ens33 176e0076-c74e-4c93-ba8f-aa0fd9aeca4d ethernet ens33
virbr0 327534dd-633c-4e37-ae7b-ae0398d7e28d bridge virbr0
查看网卡详情
[root@localhost ~]# nmcli con show ens33
connection.id: ens33
connection.uuid: 176e0076-c74e-4c93-ba8f-aa0fd9aeca4d
...
使用 con-name 参数指定公司所使用的网络会话名称 company,然后依次用 ifname 参数指定本机的网卡名称
[root@localhost ~]# nmcli connection add con-name company type ethernet ifname ens33
Connection 'company' (4a330c0e-17bc-46b6-a5ac-5334c8057d54) successfully added.
[root@localhost ~]# nmcli connection show
NAME UUID TYPE DEVICE
ens33 176e0076-c74e-4c93-ba8f-aa0fd9aeca4d ethernet ens33
virbr0 327534dd-633c-4e37-ae7b-ae0398d7e28d bridge virbr0
company 4a330c0e-17bc-46b6-a5ac-5334c8057d54 ethernet --
启动company网卡
[root@localhost ~]# nmcli connection up company
Connection successfully activated (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/4)
两块网卡绑定
生产环境必须提供 7×24 小时的网络传输服务。借助于网卡绑定技术,不仅可以提高网络传输速度,更重要的是,还可以确保在其中一块网卡出现故障时,依然可以正 常提供网络服务。
1.添加网卡设备,虚拟机操作非常简单点两下确认一下即可,网卡类型要相同
2.vim配置网卡参数,原本独立的网卡设备此时需要被配置成为一块“从属”网卡,服务于“主”网卡, 不应该再有自己的 IP 地址等信息。
(修改时区:
[
root@localhost ~
]
# timedatectl set-timezone Asia/Shanghai
)
停掉网络管理,开始第一步
systemctl disable --now NetworkManager
先打一个备份出来以免出问题
cp /etc/sysconfig/network-scripts/ifcfg-ens33 /etc/sysconfig/network-scripts/ifcfg-ens33.bak
开始初始化设置网卡一
vim /etc/sysconfig/network-scripts/ifcfg-ens33
TYPE=Ethernet
BOOTPROTO=none
ONBOOT=yes
USERCTL=no
DEVICE=ens33
MASTER=bond0
SLAVE=yes
开始初始化设置网卡二
vim /etc/sysconfig/network-scripts/ifcfg-ens36
TYPE=Ethernet
BOOTPROTO=none
ONBOOT=yes
USERCTL=no
DEVICE=ens36
MASTER=bond0
SLAVE=yes
开始配置对外网卡(主卡)
vim /etc/sysconfig/network-scripts/ifcfg-bond0
DEVICE=bond0
TYPE=bond0
BONDING_MASTER=yes
BOOTPROTO=none
ONBOOT=yes
IPADDR=192.168.227.130
NETMASK=255.255.255.0
GATEWAY=192.168.227.2
BONDING_OPTS="mode=0 miimon=100"
BONDING_MASTER=yes
NM_CONTROLLED=no
设置相关切换配置
vim /etc/modprobe.d/bond.conf
alias bond0 binding
options bond0 miimon=100 mode=0
开启网卡混杂模式
chmod +x /etc/rc.local
vi /etc/rc.local
ip link set ens33 promisc on
ip link set ens36 promisc on
重启网络
systemctl restart network
测试
reboot
切掉一个网卡还可以正常访问网络
中间去ping外网的时候会有DUP
远程控制服务
配置 sshd 服务
sshd 服务的配置信息保存在/etc/ssh/sshd_config 文 件中。
在 RHEL 7 系统中,已经默认安装并启用了 sshd 服务程序。接下来使用 ssh 命令进行远 程连接,其格式为“ssh [参数] 主机 IP 地址”。要退出登录则执行 exit 命令
ssh 192.168.227.130
exit
禁止以 root 管理员的身份远程登录到服务器
首先使用 Vim 文本编辑器打开 sshd 服务的主配置文件,然后把 第 48 行#PermitRootLogin yes 参数前的井号(#)去掉,并把参数值 yes 改成 no,这样就不再 允许 root 管理员远程登录了。
vim /etc/ssh/sshd_config
systemctl restart sshd
systemctl enable sshd
安全密钥验证
1.客户端主机中生成“密钥对”
[root@bogon ~]# ssh-keygen
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa):
按回车
Created directory '/root/.ssh'.
Enter passphrase (empty for no passphrase):
按回车
Enter same passphrase again:
按回车
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:YDelEvJyarzCr2mxncBx0RrbghAD1S/eivvprH88MTY root@bogon
The key's randomart image is:
+---[RSA 2048]----+
|=o..... . |
|.. +o.. o |
| . ..B* + |
| o.*=o+ . |
| . +++ S |
| .+...E |
| o*.= + |
| +=+.+ |
| .=BB. . |
+----[SHA256]-----+
2.把客户端主机中生成的公钥文件传送至远程主机
[root@bogon ~]# ssh-copy-id 192.168.227.137
/usr/bin/ssh-copy-id: INFO: Source of key(s) to be installed: "/root/.ssh/id_rsa.pub"
The authenticity of host '192.168.227.137 (192.168.227.137)' can't be established.
ECDSA key fingerprint is SHA256:9nUhBRw1bSTECvS/7T8Mpa5GVE+kOTwhjzid0e1bm9k.
ECDSA key fingerprint is MD5:47:d8:06:aa:da:3a:aa:45:b8:ea:3c:3a:68:2d:99:6e.
Are you sure you want to continue connecting (yes/no)? yes
/usr/bin/ssh-copy-id: INFO: attempting to log in with the new key(s), to filter out any that are already installed
/usr/bin/ssh-copy-id: INFO: 1 key(s) remain to be installed -- if you are prompted now it is to install the new keys
root@192.168.227.137's password:
Number of key(s) added: 1
Now try logging into the machine, with: "ssh '192.168.227.137'"
and check to make sure that only the key(s) you wanted were added.
3.对服务器进行设置,使其只允许密钥验证,拒绝传统的口令验证方式
vim /etc/ssh/sshd_config
4.在客户端尝试登录到服务器,此时无须输入密码也可成功登录。
[root@bogon ~]# ssh 192.168.227.137
Last login: Mon Jun 12 18:42:33 2023 from 192.168.227.1
[root@bogon ~]# ifconfig
ens33: flags=4163 mtu 1500
inet 192.168.227.137 netmask 255.255.255.0 broadcast 192.168.227.255
inet6 fe80::a4f1:a45:b394:6872 prefixlen 64 scopeid 0x20
ether 00:0c:29:87:7f:af txqueuelen 1000 (Ethernet)
RX packets 846 bytes 93533 (91.3 KiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 565 bytes 85722 (83.7 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
lo: flags=73 mtu 65536
inet 127.0.0.1 netmask 255.0.0.0
inet6 ::1 prefixlen 128 scopeid 0x10
loop txqueuelen 1000 (Local Loopback)
RX packets 0 bytes 0 (0.0 B)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 0 bytes 0 (0.0 B)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
virbr0: flags=4099 mtu 1500
inet 192.168.122.1 netmask 255.255.255.0 broadcast 192.168.122.255
ether 52:54:00:60:3f:ed txqueuelen 1000 (Ethernet)
RX packets 0 bytes 0 (0.0 B)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 0 bytes 0 (0.0 B)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
[root@bogon ~]# exit
logout
Connection to 192.168.227.137 closed.
注意客户端和服务端的区别,是客户端发出秘钥串链接服务端,然后客户端传公钥文件到主机,然后服务端限制口令,最后客户端连服务端,我这里脑子抽了一直拿服务端连客户端导致一直报错,希望大家不会有这个问题。
远程传输命令
scp(secure copy)是一个基于 SSH 协议在网络之间进行安全传输的命令,其格式为“scp [参数] 本地文件 远程帐户@远程 IP 地址:远程目录”
由于 scp 命令是基于 SSH 协议进行文件传送的,而上边刚配好密钥验证, 因此当前在传输文件时,并不需要账户和密码。
[root@bogon ~]# echo "learn linux" > readme.txt
[root@bogon ~]# scp /root/readme.txt 192.168.227.137:/home
readme.txt 100% 12 9.1KB/s 00:00
反向传输
[root@bogon ~]# scp 192.168.227.137:/etc/redhat-release /root
redhat-release 100% 38 26.5KB/s 00:00
不间断会话服务
screen 是一款能够实现多窗口远程控制的开源服务程序,简单来说就是为了解决网络异 常中断或为了同时控制多个远程终端窗口而设计的程序。
[root@bogon ~]# yum install screen
管理远程会话
screen 命令能做的事情非常多:
用-S 参数创建会话窗口;
用-d 参数将指定会话进行 离线处理;
用-r 参数回复指定会话;
用-x 参数一次性恢复所有的会话;
用-ls 参数显示当前已 有的会话;
用-wipe 参数把目前无法使用的会话删除。
[root@bogon ~]# screen -S backup
[root@bogon ~]# screen -ls
There is a screen on:
3736.backup (Attached)
1 Socket in /var/run/screen/S-root.
[root@bogon ~]# exit
演示 screen 不间断会话服务
A窗口
screen -S linux
tail -f /var/log/messages
关闭A窗口,打开B窗口,查看不间断会话并进入
screen -ls
screen -r linux
会话共享功能
A窗口
screen -S linux
tail -f /var/log/messages
B窗口
screen -x
结语
简问简答
1.在 Linux 系统中有多种方法可以配置网络参数,请列举几种。
答:配置网卡参数可以使用 nmtui 命令、nmcli 命令或者直接编辑网卡配置文件来实现对 网卡参数的修改。
2.在 RHEL 7 系统中使用网卡会话技术的目的是什么?
答:使用 nmcli 命令来管理网卡会话的目的是为了快速切换网卡参数,以便适应不同的工 作场景。
3.请简述网卡绑定技术 mode6 模式的特点。
答:平时两块网卡均工作,且自动备援,无须交换机设备提供辅助支持。
4.在 Linux 系统中,当通过修改其配置文件中的参数来配置服务程序时,若想要让新配置的 参数生效,还需要执行什么操作?
答:需要重新启动相关的服务程序,或让服务程序重新加载配置文件,或重启系统。
5.sshd 服务的口令验证与密钥验证方式,哪个更安全?
答:一般情况下,密钥验证方式更加安全。若用户若认证有更高的安全需求,还可以再对 密钥文件进行口令加密,从而实现双重加密。
6.想要把本地文件/root/out.txt 传送到地址为 192.168.10.20 的远程主机的/home 目录下,且本 地主机与远程主机均为 Linux 系统,最为简便的传送方式是什么?
答:执行命令 scp /root/out.txt root@192.168.10.20:/home,并在进行口令验证后即可开 始传送。
7. screen 服务程序能够让用户实现远程控制的不间断会话服务,即便网络发生中断也不 丢失对远程主机的会话控制。那么,当想要恢复到一个名为 linux 的会话窗口时,应该 怎么做呢?
答:执行命令 screen -r linux 即可恢复到这个会话窗口中。