前言
本章不仅包含网络信息部分,还囊括了日期与时间、用户组权限及管道的知识嗷。
小tips
每次登陆xshell我们都要用ssh登陆一遍,很麻烦,用新建会话的方法可以解决这个问题。
点击下面红圈勾中的地方:
出现下面页面,输入新建会话的名称和主机位置:
点击确定之后,我们只需要再登录一次,那么以后的连接就会直接进来,而不用再用ssh登录啦。
主机名称
我们可以通过以下命令进行主机名称的修改
临时修改,只在这一次登录时生效
hostname school
长久修改,改配置文件
vi /etc/hostname
DNS解析
域名解析服务
可以将域名转换为IP地址
DNS域名劫持
window --> C:\Windows\System32\drivers\etc\hosts
123.56.138.186 www.baidu.com
123.56.138.186 www.taodao.com
修改主机域名
vi /etc/hosts
将来我们需要把所有的虚拟机都配置hosts文件
192.168.31.101 bd1601
192.168.31.102 bd1602
网络相关命令
ifconfig
查看当前网卡的配置信息
这个命令属于 net-tools中的一个命令,但是Centos7中minimal版并没有集成这个包
所以7的时候需要自己手动安装,安装命令:yum install net-tools -y
如果没有ifconfig ,可以使用ip addr 临时代替
netstat
查看当前网络的状态信息
一个机器默认有65536个端口号[0,65535]
这是一个逻辑的概念,将来我们需要使用程序监听指定的端口,等待别人的访问
一个端口只能被一个程序所监听, 端口已经被占用
netstat -anp
netstat -r 核心路由表 == route
ping
查看与目标IP地址是否能够连通
telnet
查看与目标IP的指定端口是否能够连通
使用该命令前也需要先安装:yum install telnet -y
telnet 192.168.31.44 22
curl
restful风格的命令, 我们所有的资源在网络上中都有唯一的定位
那么我们可以通过这个唯一定位标识指定的资源
比如我们可以使用下面命令去得到百度搜索页面的源码静态资源
curl -X GET http://www.baidu.com
防火墙
防火墙技术是通过有机结合各类用于安全管理与筛选的软件和硬件设备,帮助计算机网络于其内、外网之间构建一道相对隔绝的保护屏障,以保护用户资料与信息安全性的一种技术。
在centOS7+中 使用firewalld代替以前的 iptables ;
常用命令如下:
开启一个端口的正确操作:
加密算法(感觉对于后端来说不太重要)
总共有三种
不可逆加密算法
可以通过数据计算加密后的结果,但是通过结果无法回推出被加密了的数据
应用场景
Hash算法常用在不可还原的密码存储、信息完整性校验。
文档、音视频文件、软件安装包等用新老摘要对比是否一样(接收到的文件是否被修改)
用户名或者密码加密后数据库存储(数据库大多数不会存储关键信息的明文,就像很多登录功
能的忘记密码不能找回,只能重置)
案例
123456
e10adc3949ba59abbe56e057f20f883e
md5(md5(123456))-----md5(654321)
对称加密算法
Symmetric Key Encryption
代表性算法叫做 DES、3DES、Blowfish、IDEA、RC4、RC5、RC6和AES
特点
加密和解密使用相同的秘钥
优点
生成密钥的算法公开、计算量小、加密速度快、加密效率高、密钥较短
缺点
双方共同的密钥,有一方密钥被窃取,双方都影响
如果为每个客户都生成不同密钥,则密钥数量巨大,密钥管理有压力
应用场景
登录信息用户名和密码加密、传输加密、指令加密
案例:
原文:今晚八点学校小树林见
密钥: love
7gjM6FhIc89ACoel+jJ3VM26XGAdSlaHTj5NYg4VkKA=
非对称加密算法
Asymmetric Key Encryption
非对称加密算法需要一对密钥(两个密钥):
公开密钥(publickey)和私有密钥(privatekey)(简称公钥,私钥)。
公开密钥与私有密钥生成时是一对
用公钥加密只能是对应的私钥解密,同理用私钥加密只能用对应的公钥解密。
代表性算法叫做 RSA、ECC、Diffie-Hellman、El Gamal、DSA(数字签名用)
优点:
安全高(几乎很难破解)
缺点
加解密相对速度慢、密钥长、计算量大、效率低
应用场景
HTTPS(ssl)证书里制作、CRS请求证书、金融通信加密、蓝牙等硬件信息加密配对传输、关键
的登录信息验证。
http://tool.chacuo.net/cryptrsaprikey
主机间的相互免秘钥
这个操作我们只需要完成一步,就是主机a若想和主机b相互免秘钥通信,则只要将主机a自己的公钥给主机b,主机b将其存起来即可。
可以通过ssh命令免秘钥连接到其他的主机
如果是第一次建立连接,需要输入yes
在 ~/.ssh/known_hosts 文件记录了以前访问地址(ip hostname)的信息
在访问地址的时候如果没有收录到known_hosts文件中,就需要输入yes
如果以前收录到known_hosts中,直接输入密码即可
需要输入密码
生成秘钥:将下面那一段命令输入即可
上图中的Your identification has…就是私钥,而Your public…那一段就是你的公钥。
如果你想免秘钥登录谁,只需要把自己的公钥传递给对方主机即可
这个秘钥要放在 ~/.ssh/authorized_keys
主机名与Host校验
每回都要出现让我们选择yes或no可能会打断我们的一些操作,而错误原因是:Cannot determine realm for numeric host
对此解决方案如下:
解决方案1–本次
ssh -v -o GSSAPIAuthentication=no root@192.168.189.201
解决方案2–所有
修改/etc/ssh/ssh_config文件的配置,以后则不会再出现此问题
最后面添加:
StrictHostKeyChecking no
UserKnownHostsFile /dev/null
日期与时间
时间命令
查看时区命令如下:
ll /etc/localtime
/etc/localtime -> …/usr/share/zoneinfo/America/Los_Angeles
ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
常用指令如下:
date
查看当前系统时间
cal 查看日历
cal 2020
修改时间
date -s 11:11:11
date -s 2019-11-11
date -s ‘2019-11-11 11:11:11’
演示效果:
日期自动同步
在开发中,面对成千上万的服务器我们都需要设置这些服务器的日期时间相同,显然不能向上面一样手动设置,那么我们现在就需要日期自动同步的策略来替我们实现这件事情。
策略是这样的,我们会需要一台基准服务器,用这台服务器的日期来规范下面所有子服务器的日期。这台基准服务器有人帮我们做好了,我们直接对应的拿来用就好了。首先要安装ntp:yum install ntp -y
然后使用ntpdate cn.ntp.org.cn的命令来进行时间自动同步,其中cn.ntp.org.cn是下面这玩意儿:
IP池中就是对应的各个地区的基准服务器。
如果没有外网的情况下,也可以开启本地服务器的日期同步功能。
客户端同步时间
ntpdate 192.168.188.100
用户-组-权限(相关命令)
用户
用户的意思就是你以什么样的身份来登录这个系统,一般情况下不同的人有不同的身份。
新增用户
useradd luckyboy
会创建同名的组和家目录
设置密码
passwd luckyboy
删除用户
userdel -r luckyboy
级联删除家目录和组
示例:我们创建一个新用户libai
用libai身份登录:
对于每一个新创建的用户,Linux都会创建同名的组和家目录。
管理员的家目录在/root下:
而普通用户的家目录在/home目录下:
注意:删除和添加用户只有管理员才能做。
组
创建组
groupadd lucky
删除组
groupdel lucky
修改组名字
groupmod -n school lucky
查看用户对应的组
groups
groups schoolboy
----当我们创建用户的时候,会默认创建一个同名的主组
修改用户的组
usermod -g lucky schoolboy (主组)
usermod -G lucky schoolls (附属组)
示例:
上面的命令操作完就是tang是libai的驻足,而song是李白的附属组。
权限
什么是权限?我们随便打开一个文件就可以看见前面有这么一行红圈圈中的信息:
这一串是有意义的,“drwxr-xr-x”中的第一个字母d代表目录,我们之前有提到过,然后后面的“rwxr-xr-x”三个字母为一组,是一组权限指令,各个字母、各个组对应下图的意思:
注意:打了“-”则意味着没有对应的权限,另外后面的第一个root对应着所属用户,第二个root则对应着所属组。
因为有时候我们的某个用户会需要对某个我们没有对应权限的文件进行操作,所以这个时候我们就需要修改这个文件的权限,如下指令就可以做到:
权限赋予
我们可以将管理用的权限分配给普通用户
文件位置在 vim /etc/sudoers
但是修改这个文件需要使用命令
visudo
修改 Line 99
n1 ALL=(root) /sbin/useradd
n1 ALL=(root) /sbin/*
如何使用
su n1
sudo chkconfig iptables off
管道与重定向
重定向
示例:
一般情况下我们查看某些文件的数据都会默认打印在命令行输出,我们直接就能看见,而重定向的意思就是我们现在可以用一些指令让其打印在我们指定的文件中而非命令行中:
如上图意思就是我们本来是要打印/opt下的目录信息的,但是现在我们将其存打印到了test文件夹中。
另外>和>>是有区别的,>是替换覆盖,而>>是追加数据。
而且重定向时我们使用数字1作为正确信息表示,数字2作为错误信息标识。