1.4 Linux 的网络信息

1.4.1 主机名称

  1. hostname basenode :临时修改主机名
  2. vi /etc/hostname :进入配置文件中修改,

1.4.2 DNS 解析

  1. 作用:解析域名,可以将域名转换成IP地址
  2. 修改主机的域名:
  • vi /etc/hosts :修改配置文件中的主机IP为当前主机的名称(域名)
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.88.101 full
  • 将来我们需要把所有的虚拟机都配置hosts文件
  • 192.168.88.102 node1
  • 192.168.88.103 node2

1.4.3 网络相关命令

  1. ifconfig :查看网卡和ip地址的信息
  • ip addr :是可以替代ifconfig的命令
  • 注意:这个命令属于 net-tools中的一个命令,但是Centos7中minimal版并没有集成这个包
    所以7的时候需要自己手动安装
  • 安装(先查询,再安装)
search yum ifconfig
输出
====================== Matched: ifconfig ======================
net-tools.x86_64 : Basic networking tools

安装:
yum install net-tools -y
  1. netstat :查看当前网络的状态信息
  2. telnet :查看与目标IP的指定端口是否能够连通
  • yum install telnet -y
  • telnet 192.168.88.101 22 :访问full的22号端口
  1. curl : restful 我们所有的资源在网络上中都有唯一的定位

1.4.4防火墙

  1. 介绍:防火墙技术是通过有机结合各类用于安全管理与筛选的软件和硬件设备,帮助计算机网络于其内、外网之间构建一道相对隔绝的保护屏障,以保护用户资料与信息安全性的一种技术
  2. 常用指令
#查看防火墙状态
systemctl status firewalld.service

#临时停止firewall
systemctl stop firewalld.service

#禁止firewall开机启动
systemctl disable firewalld.service

##查看防火墙状态,是否是running
firewall-cmd --state 

##重新载入配置,比如添加规则之后,需要执行此命令
firewall-cmd --reload 

##列出支持的zone
firewall-cmd --get-zones 

##列出支持的服务,在列表中的服务是放行的
firewall-cmd --get-services

##查看ftp服务是否支持,返回yes或者no
firewall-cmd --query-service  ftp 

##临时开放ftp服务
firewall-cmd --add-service=ftp 

##永久开放ftp服务
firewall-cmd --add-service=ftp --permanent

##永久移除ftp服务
firewall-cmd --remove-service=ftp --permanent 

##永久添加80端口
firewall-cmd --add-port=80/tcp --permanent

##永久添加80端口
firewall-cmd --add-port=80/tcp --permanent
  1. 开启一个端口的正确操作
# 添加
firewall-cmd --zone=public --add-port=80/tcp --permanent
#重新载入
firewall-cmd --reload
#查看
firewall-cmd --zone=public --query-port=80/tcp
#删除
firewall-cmd --zone=public --remove-port=80/tcp --permanent

1.4.5 加密算法

1. 不可逆加密算法(MD5)
  • [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-nPSEq9RQ-1654957182557)(大数据开发.assets/1654951177510.png)]可以通过数据计算加密后的结果,但是通过结果无法计算出加密数据
  • 应用场景
  • Hash算法常用在不可还原的密码存储、信息完整性校验。
  • 文档、音视频文件、软件安装包等用新老摘要对比是否一样(接收到的文件是否被修改)
  • 用户名或者密码加密后数据库存储(数据库大多数不会存储关键信息的明文,就像很多登录功能的忘记密码不能找回,只能重置)
  • 案例
    123456
    e10adc3949ba59abbe56e057f20f883e
    md5(md5(123456))-----md5(654321)
2.对称加密算法

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-OOGL1aMh-1654957182559)(大数据开发.assets/1654951237883.png)]

  • 代表性算法叫做 DES、3DES、Blowfish、IDEA、RC4、RC5、RC6和AES
  • 特点
    加密和解密使用相同的秘钥
  • 优点
    生成密钥的算法公开、计算量小、加密速度快、加密效率高、密钥较短
  • 缺点
    双方共同的密钥,有一方密钥被窃取,双方都影响
    如果为每个客户都生成不同密钥,则密钥数量巨大,密钥管理有压力
  • 应用场景
    登录信息用户名和密码加密、传输加密、指令加密
  • 案例:
    原文:今晚八点学校小树林见
    密钥: love
    7gjM6FhIc89ACoel+jJ3VM26XGAdSlaHTj5NYg4VkKA=
3.非对称加密算法

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-I81btukA-1654957182560)(大数据开发.assets/1654951359300.png)]

  • Asymmetric Key Encryption
  • 非对称加密算法需要一对密钥(两个密钥):
    公开密钥(publickey)和私有密钥(privatekey)(简称公钥,私钥)。
    公开密钥与私有密钥生成时是一对
    用公钥加密只能是对应的私钥解密,同理用私钥加密只能用对应的公钥解密。
  • 代表性算法叫做 RSA、ECC、Diffie-Hellman、El Gamal、DSA(数字签名用)
  • 优点:
    安全高(几乎很难破解)
  • 缺点
    加解密相对速度慢、密钥长、计算量大、效率低
  • 应用场景
    HTTPS(ssl)证书里制作、CRS请求证书、金融通信加密、蓝牙等硬件信息加密配对传输、关键
    的登录信息验证。
4.主机间的相互免秘钥
  • 可以通过ssh命令免秘钥连接到其他的主机
  • 如果是第一次建立连接,需要输入yes
  • 在 ~/.ssh/known_hosts 文件记录了以前访问地址(ip hostname)的信息
  • 在访问地址的时候如果没有收录到known_hosts文件中,就需要输入yes
  • 如果以前收录到known_hosts中,直接输入密码即可
  • 需要输入密码
  • 生成秘钥
    ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa
  • 如果你想免秘钥登录谁,只需要把自己的公钥传递给对方主机即可
  • 这个秘钥要放在 ~/.ssh/authorized_keys
  • ssh-copy-id -i ~/.ssh/id_rsa.pub root@192.168.88.101
5.主机名与Host校验

每次连接出现确认的解决办法

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-FbBh4DDH-1654957182561)(大数据开发.assets/1654951634184.png)]

  • 修改/etc/ssh/ssh_config文件的配置,以后则不会再出现此问题
  • 最后面添加:
StrictHostKeyChecking no
UserKnownHostsFile /dev/null

1.5 日期与时间

1.5.1 时间命令

  1. 查看时区
  • ll /etc/localtime
  • /etc/localtime -> …/usr/share/zoneinfo/America/Los_Angeles
  • ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
  1. date
    查看当前系统时间
  2. cal 查看日历
    cal 2020
  3. 修改时间
  • date -s 11:11:11
  • date -s 2019-11-11
  • date -s ‘2019-11-11 11:11:11’

1.5.2 日期自动同步

  1. 安装时间同步的服务
    yum install ntp -y
  2. 自动同步网络时间中心
    ntpdate
  3. 没有网络的局域网下,通过自动同步网络时间中心到本地的NTP服务的主机,然后下面的机器再同步本地的主机,达到所有的无网络的主机和一台NTP的主机网路一致
  • 修改配置文件
    vi /etc/ntp.conf
#========权限控制============
restrict default kod nomodify notrap nopeer noquery 拒绝IPV4用户
restrict -6 default kod nomodify notrap nopeer noquery 拒绝IPV6用户
restrict 210.72.145.44 授权国家授时中心服务器访问本地NTP
restrict 133.100.11.8 授权133.100.11.8访问本地NTP
restrict 127.0.0.1
restrict -6 ::1
restrict 192.168.88.2 mask 255.255.255.0 nomodify 本地网段授权访问
#=========源服务器===========
server  prefer 指定上级更新时间服务器,优先使用这个地址
#=========差异分析===========
driftfile /var/lib/ntp/drift
keys /etc/ntp/keys
  • 开启本地的NTP服务器
    systemctl start ntpd.service
  • 同步时间
    ntpdate 192.168.88.100

1.6 用户-组-权限

1.6.1 用户(增、删、改、切换用户)

  1. 新增用户
  • useradd spring
  • 会创建同名的组和家目录
  • 为新增的用户设置密码
  • passwd spring
  1. 删除用户
  • userdel -r spring
  • 级联删除家目录和组
  1. 修改用户信息
  • usermod -l springmvc spring 修改用户名
  • 家目录和组名称是不会被修改的
  • usermod -L spring 锁定用户名
  • usermod -U spring 解锁用户名
  1. 常用文件
  • cat /etc/shadow
  • 用户名和密码
  • cat /etc/passwd
  • 用户名,编号,组编号,家目录,命令,目录
  • 6.5系统0-499 普通 500+
  • 7.6系统0-999 普通 1000+
  • 查看当前有多少用户
    ll /home
  1. 切换账户 su
  • su spring

1.6.2 组(增、删、改、查)

  1. 创建组
    groupadd lucky
  2. 删除组
    groupdel lucky
  3. 修改组名字
    groupmod -n bdp lucky
  4. 查看用户对应的组
    groups
    groups bdpboy
    当我们创建用户的时候,会默认创建一个同名的主组
  5. 修改用户的组
    usermod -g lucky bdpboy (主组)
    usermod -G lucky bdpls (附属组)
  • 注意:G是追加附属组,g是直接替换为一个主组

1.6.3 权限

springboot接口重定向到外部url_网络

  1. 查看文件的权限
  • 三组权限,每组3个字母
  • r :读取权限
  • w :写入权限
  • x :执行权限
  • -: 没有权限
  • root :所属用户(属主)
  • root:所属的组(属组)
  1. 权限的UGO模型
  • 三组权限
  • 属主的权限:属组的权限:其他的权限
  • 所以说:将来修改文件的权限 可以从rwx和ugo两个方面进行修改
  1. 修改文件的权限
  • 修改文件所属
  • chown n1 /var/lucky1
  • chown n1:m1 /var/lucky2
    修改文件夹时,让子目录迭代修改
  • chown -R n1:m1 bdp
  • chgrp m2 lucky3
    当用户的组被修改之后,需要重新登录才能获取新组的权限
  • 注意:修改用户与文件关系的两个方法:1是修改文件所属用户以达到权限修改问题,同时要注意你修改的用户要有你想要的那个权限,否则不能够达到权限修改用户与文件之间的关系
  • 修改文件的rwx
  • chmod o+w lucky4
  • chmod ug+rw lucky4
  • chmod ugo-rw lucky4
    (权限RWX分别对应数字 4 2 1 ,5= 4+0+1 ,r-x)
  • chmod 664 lucky4 ->(rw- rw-r–)
  1. 权限赋予
    我们可以将管理用的权限分配给普通用户
  • 文件位置在 vim /etc/sudoers,但是修改这个文件需要使用命令 :visudo
修改 Line 99
root ALL=(ALL) ALL
spring ALL=(root) /sbin/useradd ##给spring用户赋予增加用户的权限

1.7 管道与重定向

1.7.1 管道

  • 作用:将前面命令的结果作为参数传递给后面的命令
  • grep :用来查找文件里符合条件的字符串
  • 主要用于查找文件中符合条件的字符串、统计文件中符合条件的字符串行数
  • cat profile | grep if :通过查看profile文件作为参数,用来查其中if关键字
  • 常用参数:
  • -c:统计符合字符串条件的行数
  • -v:显示不包括文本的所有信息

1.7.2 重定向

  1. 作用:重定向实现了帮助我们保存命令执行的结果到文件里,也就是改变数据输出的位置,方向
  2. >和 >> :是重定向到一个文件,将本来在屏幕上的输出重定向保存到文件里
  • > : 替换,
  • ll /home >test2.txt :将原来的输出到屏幕上的所有登录信息都重定向保存到test2.txt文件中,并替换原来已有的文件
  • >> : 追加,
  • ll /home >>test2.txt :将原来原来输出到屏幕上的信息重定向追加到test2.txt中,在原来的文件内容基础上追加内容
  1. 1>、1>>、2>、2>>:当我们需要把一个文件正确的输出,和错误的输出分开保存的时候就能用到他们
  • 标准输出1>、1>>
  • 默认是标准的正确的输出
  • 只能写标准输出的命令
  • 错误输出 2>、2>>
  • 2>: 错误的输出重定向,就是命令执行出错看到的输出内容重定向到指定文件中
  • ls /ho 2> f.txt :将/ho目录下的内容重定向到 f.txt的文件中,但是不存在/ho目录,所以这是一个错误输出,会将报错内容(ls: cannot access /ho: No such file or directory)重定向到 f.txt 文件中
  • 只能写错误输出的命令
  1. &>、&>>2>&1、2>>&1 :正确和错误的信息的重定向
  • 不管是标准输出还是错误输出,都可以用这两个命令
  • 注意这两个命令的位置有差异建议第一种较为简便
ls /j &> e.txt 
ls /home &>>e.txt

ls /j >> e.txt 2>&1
ls /home >> e.txt 2>&1
  • 总结:ls /home &>>e.txt
  1. 信息黑洞 :当我们想保存正确的结果,错误的结果直接丢向垃圾站,既不保存为文件,也不在标准输出打印时使用
  • /dev/null :这个是重定向的地址,黑洞地址
  • ls /ho &>> /dev/null :将错误输出重定向到黑洞地址中

1.8 Linux的系统进程

1.8.1 进程信息

  1. ps -ef :查看所有的进程
  • 对部分进程参数的解释 UID PID PPID C STIME TTY TIME CMD

UID

PID

PPID

所属用户

当前进程编号

当前进程编号的父进程编号

  • ps -ef | grep 进程名 :查询指定的进程信息
  • ps(Process Status)
  1. ps -aux :查询进程的所有信息
  • ps -aux | grep 进程名 :查询指定的进程信息
  1. top : 查看内存中进程的动态信息

1.8.2 后台进程

  1. jobs -l :查看当前的后台进程,但是只有当前用户界面可以获取到
  2. 开启后台进程:在命令的后面添加一个 & 符号
  • ping www.baidu.com >> baidu &
  1. 杀死进程:
  • kill -9 PID :杀死指定进程号的进程