课堂笔记(DAY27-31)

一、知识点回顾

1、网络?

   1、 传输介质

   2、 硬件

2、两台主机之间进行通信?

3、交换网络(局域网内 多台计算机之间通讯)

   交换机的原理(2层网络  数据链路层  MAC---->表)

        |----->主机-----MAC地址

   广播风暴的问题

       |--->降低 减轻 

   1、路由器的概念   

   2、子网掩码(划分)

    交换网络中的数据格式

    源信息(MAC地址)+目地信息(MAC地址)+数据内容 = 数据格式

   ARP 

4、局域网和局域网之间计算机之间的通讯(路由器  3级网络设备)

   路由器的概念

   路由器的工作原理

        |---->主机 ----IP地址

   路由表

        |---->静态  优点    大型   快    专业人士

        |---->动态  优点 小型   慢    一般

5、TCP/IP协议名词解释

   IP协议

   TCP协议

   UDP协议

   ICMP协议

   DNS协议

   ARP协议

6、OSI和TCP/IP模型

    7层    5(4)层

7.TCP/IP协议名词解释

  TCP/IP协议的报文格式

  TCP/IP协议的C/S 建立连接 3次握手的过程

  TCP/IP协议的C/S 断开连接 4次挥手的过程

  TCP/IP协议的C/S 建立连接 3次握手的过程 状态转换

  TCP/IP协议的C/S 断开连接 4次挥手的过程 状态转换

8、IP地址

   分类  A B C  D  E

      C类  面试   C类地址     192.168.0.x  x主机位

  D类  组播

   特殊的IP地址

   0.0.0.0  没有意思

   192.168.0.0 没有  -1 

   192.168.0.255 广播地址 -1

   192.168.0.254 网关地址 -1

   (网关地址 有可能是192.168.0.1 也有 192.168.0.254)

   127.0.0.1

   等

9.子网掩码

   255.255.255.0   C类

   255.255.0.0 

   255.0.0.0 

10、网络划分

   1.C类网络中  192.168.0.100  50台主机 划分网络 计算子网掩码。 2^n-3 公式

二、静态路由项目

1、网络中比较重要的协议

   1、DNS 域名解析协议

      ARP  交换机  主机-----MAC地址

       路由器  主机-----IP地址

   DNS域名 域名-----IP地址

   2、47.75.85.161 域名

      www. baidu.com

   3、购买自己的一个域名

      区块链公司  买域名   BTCVC  ZB.COM   

  根域名服务器  大多是在国外  美国居多  日本 英国等  13台

  顶级域名服务器 

      com             cn          org     edu   等

  公司商业组织    地区中国   

  万网

      .vip

  [email protected]

      阿里云为例

      A记录  WWW 网站   www.baidu.com   记录值  IP地址  47.75.80.160 

      DNS优化  阿里云加速

               百度云加速  css  js   html 预加载到服务器上 CDN 加速

2、企业真实的需求

   1、HOSTS文件

   2、内网DNS服务器

       Linux服务器 DNS

      1、本地服务器解析 www.baidu.com

  2、转发器

       |----->主路由---->DNS---->公网IP DNS---->域名  实现外网的访问。

   Windows Server 2008R2

3、常见的网络命令

3.1 ping 命令

    ping 域名 DNS问题

  ping www.baidu.com  无应答 DNS没有配置  DNS有问题

ping 公网IP   

     47.75.80.160

ping  网关

  192.168.1.1

3.2 iftop监控网络流量用的

    Linux服务器下用的 第三方的命令

yum install iftop -y

4、企业网络出现问题的排查流程

   第一步 检查硬件  网卡(灯)  网线(水晶头)_路由器(WAN LAN) 交换机

          交换法

    |--->网线

     网卡

   第二步 Ping 网关(路由)

   第三步 公网IP 

   第四步 DNS

   第五步 Ping 自己服务器地址

5、静态路由项目

  1、准备3台虚拟机

     第一台一块网卡  10.0.0.11

第二台二块网卡  10.0.0.12  192.168.0.12

第三台一块网卡  192.168.0.13

  2、在第一台主机

     从主机一10.0.0.11----->主机2---->192.168.0.12

跨网段访问

2.1 不认识

     添加一条静态的路由信息

route add -net 192.168.0.0/24 gw 10.0.0.12

route -n 查看路由表

ping 192.168.0.12 通了

     2.2 看看192.168.0.13能不能通

     10.0.0.11需要 10.0.0.12转发

192.168.0.13 需要 192.168.0.12进行转发

192.168.0.12

10.0.0.12    主机2  信息跟主机2没关系

echo “net.ipv4.ip_forward=1”>>/etc/sysctl.conf

sysctl -p

3、扩展不要求掌握

3.1 iptables 实现跨网段实现上网

       端口映射

       行为管理

3.2 买企业级路由

下午课堂笔记

一、三剑客:

grep   过滤

-E支持扩展正则===egrep

-o只显示匹配到的内容  显示grep执行过程

-v取反

-i不区分大小写  ignore case    find  /oldboy -type f -iname "*.txt"

-n显示行号 cat -n

-w按照单词进行匹配

-A9  after 显示grep找出的行及接下来的 9行

-B9  before

-C9  上下

-r-l (小写字母L)

-P ??

sed     过滤 替换 修改文件内容 增删改查

awk     过滤 取列 统计计算

三剑客

grep    sed    awk

=========================================================================

1、为什么要学习Shell编程?

Linux系统中会大量的使用Shell,工作中我们也需要自动化实现业务,

例如:自动备份、监控、自动安装服务。

Shell编程是Linux运维人员必须要会的编程语言。最简单的编程语言。

编程也是运维人员必须具备的本领:

Shell、Python是运维人员必须具备的本领

2、什么是Shell?

Shell就是一个命令解释器(翻译官),命令行的命令以及脚本都会通过shell解释,

传给操作系统,处理后在输出给用户。

[root@oldboyedu ~]# tail -1 /etc/passwd

oldgirl1:x:8889:8889::/home/oldgirl1:/bin/bash #<==创建用户时,系统指定的翻译官。

3、Shell的分类

     1. )Bourne shell

    Bourne shell又包括Bourne shell (sh)、Korn shell (ksh)、Bourne Again Shell(bash)三种类型。

   2. C shell

     C shell又包括csh、tcsh两种类型。

4、C7:默认Shell

[root@oldboyedu ~]# echo $SHELL

/bin/bash

5、什么是Shell脚本?

程序、命令放入文件里执行,这个文件称之为Shell脚本文件。

工作中最多的编程写脚本,存放在文件里。

6、Shell变量:

   a.全局变量(环境变量)

   在整个系统中生效、一般是大写、系统中默认就

   存在一些这样的变量,满足系统和程序运行的需求。

系统自带的环境变量;

[root@oldboyedu ~]# echo $PS1

[\[\e[34;1m\]\u@\[\e[0m\]\[\e[32;1m\]\H\[\e[0m\]\[\e[31;1m\] \w\[\e[0m\]]\$

b、自定义环境变量:

    方法1

    export OLDBOY="I am oldboy."

    方法2:

    OLDBOY="I am oldboy."

    export OLDBOY

    老男孩推荐以后把环境变量放入/etc/bashrc

c、.局部变量(普通变量)

是编写Shell脚本最常用的变量。

变量名=值

a=1

变量名:数字、字母、下划线,不能是数字开头。

      oldboy、 123a、_abc

= 等号:赋值符,把什么东西给谁。赋值符号两边不能有空格。

值:东西,变量内容。

    引用内容的符号:单引号、双引号、反引号、不加引号

7、表达式

a、[ 表达式 ]中括号表达式,中括号里面两端必须要有空格。

字符串要加双引号

[root@oldboyedu ~]# [ "a" = "b" ] && echo 1||echo 0

0

[ "a" = "b" ] && echo 1||echo 0

如果表达式成立,打印1,否则打印0.

b、整数表达式:

>      -gt

>=     -ge

<      -lt

<=     -le

=      -eq

不等于 -ne

1)整数表达式符 两端必须要有空格

2)中括号里面两端必须要有空格。

3)变量和比较的内容,不需要加引号。

c、字符表达式:

-z 变量内容长度为0时,为真(表达式正确)。zero

-n 变量内容长度【不】为0时,为真(表达式正确)。not zero

a == a 字符串是否相同

说明:

1)字符串要加双引号

例子:

[root@oldboyedu ~]# oldboy=""

[root@oldboyedu ~]# [ -z "$oldboy" ] && echo 1 || echo 0

1

[root@oldboyedu ~]# [ -n "$oldboy" ] && echo 1 || echo 0

0

8.shell判断句:

如果...那么。

如果[ 你是潜力股 ]

那么

     就和你谈朋友

否则

     拜拜

果如

if判断句语法:

if [ 表达式 ]

then

   命令

fi

如果[ 你是潜力股 ]

那么

     就和你谈朋友

果如

[root@oldboyedu ~]# cat test.sh

#!/bin/bash

a=10

if [ $a -gt 1 ]

then

    echo 1

fi

read命令 交互式读取用户输入

-p "提醒:"

-t "多长时间内等待输入"

[root@oldboyedu ~]# cat test.sh

#!/bin/bash

read -p "请输入你喜欢的男孩的一句话:" boy

if [ "$boy" ==  "潜力股" ]

then

    echo "先和你谈谈朋友"

elif [ "$boy" ==  "老爸是李刚" ]

then

   echo "直接嫁给你"

elif [ "$boy" ==  "二环内有套房" ]

then

   echo "立马领证"

else

    echo "白白"

fi

9.for循环

for n in 取值列表

do

   执行命令

done

========================================================================

1.diff 文本比较

     [root@oldboyedu ~]# diff /etc/passwd{,.ori}

    32c32

    < #oldgirl1:x:8889:8889::/home/oldgirl1:/bin/bash

    ---

    > oldgirl1:x:8889:8889::/home/oldgirl1:/bin/bash

      1.1   vimdiff文本图形化比较

    [root@oldboyedu ~]# diff /etc/passwd /etc/passwd.ori

    32c32

  < #oldgirl1:x:8889:8889::/home/oldgirl1:/bin/bash

   ---

    > oldgirl1:x:8889:8889::/home/oldgirl1:/bin/bash

2.   rpm命令

    全称是Red Hat Package Manager(Red Hat包管理器),几乎所有的Linux发行版本都使用这种形式的命令管理、安装、更新和卸载软件。

    概括地说,rpm命令有五种基本功能(不包括创建rpm包):安装、卸载、升级、查询和验证。

     2.1需要很多依赖。

    [root@oldboyedu /mnt/Packages]# rpm -ivh dos2unix-6.0.3-7.el7.x86_64.rpm

   Preparing...                          ################################# [100%]

    package dos2unix-6.0.3-7.el7.x86_64 is already installed

   [root@oldboyedu /mnt/Packages]# rpm -qa|grep tree

   tree-1.6.0-10.el7.x86_64

    [root@oldboyedu /mnt/Packages]# rpm -qa tree

    tree-1.6.0-10.el7.x86_64

   2.2rpm包管理器安装、卸载、升级、查询和验证

   安装

-i   安装install

-v 显示安装过程

-h 用“#”显示安装进度条

升级

-U 用“#”显示安装进度条

卸载

-e卸载软件包

--nodeps 忽略依赖

查询

-q查询

-a所有

-l显示软件包中的所有文件列表

-f 查询文件或命令属于哪个软件包

3、yum主要用于自动安装、升级rpm软件包,它能自动

查找并解决rpm包之间的依赖关系。

[root@oldboyedu ~]# yum grouplist        #<===获取组包名列表

Loaded plugins: fastestmirror

Loading mirror speeds from cached hostfile

base                                                        | 3.6 kB  00:00:00   

Available Environment Groups:       #<=====可用性环境组

   Minimal Install           #<=====最小安装

   Compute Node           #<====计算节点

   Infrastructure Server        # <=====基础架构服务器

   File and Print Server        #<======文件和打印服务器

[root@oldboyedu ~]# yum list tree    <===获取命令tree的软件包名

Loaded plugins: fastestmirror

Loading mirror speeds from cached hostfile

Installed Packages

tree.x86_64                                1.6.0-10.el7                                @base

根据命令或者配置等的路径查属于哪个包

[root@oldboyedu ~]# yum provides /etc/my.cnf

[root@oldboyedu ~]# yum provides /sbin/ifconfig

4.Linux系统如何安装软件?

1)、rpm安装

简单 快。依赖多,解决依赖困难繁琐。

2)、yum安装 *****

简单快,自动解决依赖。不能选择软件版本或软件存放路径。

3)、编译安装(源码编译)*****

慢 复杂 需要GCC编译器,可以自定义安装(版本、软件路径)

4)、将源码制作成rpm,然后放到yum仓库,实现yum自动安装。

一次性慢 复杂,安装快,可以自定义安装(版本、软件路径)

5.chattr设置文件属性

+i锁定文件

-i解锁文件

+a 只能追加不能删除文件和内容

-a解锁

chattr -i /etc/passwd  #<==解锁文件。

给重要文件上锁

[root@oldboyedu ~]# chattr +a oldboy.txt

[root@oldboyedu ~]# rm -f oldboy.txt       #<===不能删除文件

=======================================================================

一、复习第0章到第十四章的内容

      重点:1)Linux默认策略,把没有使用的内存,都会作为缓冲区或者缓存区

                 2)1.常规分区

                       /boot  1024M

                       swap  内存1.5倍   大于8G给8G

                       / 所有       或者有/home    /var      /usr

                       2.存储 数据库 备份

                           /boot  1024M

                          swap  内存1.5倍   大于8G给8G

                          / 100-200G

                         /data 所有 放数据

                        3.门户

                         /boot  1024M

                         swap  内存1.5倍   大于8G给8G

                         / 100-200G

                         剩下保留。

                3)虚拟机与xshell链接排错

                    SSH默认22端口

                    0.VM虚拟网络编辑器设置

                   1、服务端运行。

                  [root@oldboyedu /opt]# netstat -lntup|grep ssh

                  tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      6899/sshd     

                 tcp6       0      0 :::22                   :::*                    LISTEN      6899/ssh

                 [root@oldboyedu /opt]# systemctl status sshd

                ● sshd.service - OpenSSH server daemon

                 Loaded: loaded (/usr/lib/systemd/system/sshd.service; enabled; vendor preset: enabled)

                 Active: active (running) since Wed 2020-10-28 21:09:17 CST; 1 years 6 months left

                 Docs: man:sshd(8)

               2.客户端ping

               ping 10.0.0.201

              3.客户端检查服务

               [c:\~]$ telnet 10.0.0.201 22

              Connecting to 10.0.0.201:22...

              Connection established.

               To escape to local shell, press 'Ctrl+Alt+]'.

               SSH-2.0-OpenSSH_7.4

              IP端口别错,就是防火墙问题。

                4.xshell连接设置

            4)开机自启ssh

              c6:/etc/init.d/sshd restart

              service sshd restart

               c7:systemctl restart sshd

            5)磁盘体系:

              1.磁盘维护

              2.挂载

              3.文件系统

               4.分区

               5.raid知识体系

               6.内外部结构、读写原理

              6)网络部分:

              1、tcp三次握手四次挥手。

               2、11种状态

               3、tcpdump/wireshark/route

               4、不能上网如何排查。

二、iftop  监控网络流量

       -i ech0  看监控某个网卡

       ifconfig 查看设置ip

       ip查看和设置网络和IP

        ping检查网络是否通畅

        traceeoute查看到达主机的网络路由信息

         -d不做反向解析

       route查看设置网关 路由

       -host主机路由 -net网络路由 默认网关default gw

       del 删除

       add添加

=======================================================================

1、什么是集群?

简单地说,集群就是一堆机器做同一件事,

例如:www.jd.com提供卖东西服务这就是一件事,可能是几千台服务器,在背后运转支撑这个网站。

     www.baidu.com看着就是一个搜索框,背后可能是上万台服务器。

2、为什么企业要用集群?

  a.7*24服务,需要多台机器同时工作,互为实时备份。

   b.高并发访问,需要多台服务器同时提供服务。

3.集群特点

  a.数据量大、用户多

 b.7*24持续服务

  c.高并发

  d.用户分布广泛,网络情况复杂

4.形象描述集群

5基础优化

第一步规范目录

mkdir -p /server/tools   文本

mkdir -p /server/scripts  放脚本的

第二步

配置所有主机域名解析

cat >/etc/hosts<

127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4

::1         localhost localhost.localdomain localhost6 localhost6.localdomain6

172.16.1.5 lb01

172.16.1.6 lb02

172.16.1.7 web01

172.16.1.8 web02

172.16.1.9 web03

172.16.1.31 nfs01

172.16.1.41 backup

172.16.1.51 db01 db01.etiantian.org

172.16.1.61 m01

EOF

第三步

第一个:就近使用yum源地址,安装软件更快。

curl -s -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo

第二个:安装RHEL/CentOS官方源不提供的软件包

curl -s -o /etc/yum.repos.d/epel.repohttp://mirrors.aliyun.com/repo/epel-7.repo

第四步安全优化

# 1、关闭selinux

sed -i 's#SELINUX=.*#SELINUX=disabled#g'/etc/selinux/config

sed -i's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config

grep SELINUX=disabled /etc/selinux/config

setenforce 0    临时关闭selinux

getenforce     查看selinux

#2关闭防火墙               

systemctl stop firewalld    关闭

systemctl disable firewalld  

禁止开机自启

             status      查看关闭状态

第五步、设置普通用提权操作

# 提权oldboy可以利用sudo

useradd oldboy

echo 123456|passwd --stdin oldboy

\cp /etc/sudoers /etc/sudoers.ori

echo "oldboy  ALL=(ALL) NOPASSWD: ALL " >>/etc/sudoers

tail -1 /etc/sudoers

visudo -c

第六步# 设置系统中文UTF8字符集(防止中文汉字乱码)

[root@oldboyedu ~]# cat /etc/locale.conf

LANG="en_US.UTF-8"

修改命令如下:

cp /etc/locale.conf  /etc/locale.conf.ori

echo 'LANG="zh_CN.UTF-8"' >/etc/locale.conf

source /etc/locale.conf

echo $LANG

第二种修改

cp /etc/locale.conf  /etc/locale.conf.ori

localectl set-localeLANG="zh_CN.UTF-8"

cat /etc/locale.conf

第七步设置时间同步

#1yum install ntpdate -y

/usr/sbin/ntpdate ntp3.aliyun.com

#2 echo '#crond-id-001:time sync by oldboy'>>/var/spool/cron/root

echo "*/5 * * * * /usr/sbin/ntpdatentp3.aliyun.com >/dev/null 2>&1">>/var/spool/cron/root

crontab -l

第八步

history 查看使用命令过的历史记录  -c清空历史记录

                                  -d指定数字清楚

8.基础优化操作项:提升命令行操作安全性(可选优化)

# 提升命令行安全(可选配置)

echo 'export TMOUT=300'>>/etc/profile     设置会话超时300秒

echo 'export HISTSIZE=5'>>/etc/profile       历史记录保留5个

echo 'export HISTFILESIZE=5'>>/etc/profile     历史记录目录保留5个

tail -3 /etc/profile

. /etc/profile

第九步:基础优化操作项,加大文件描述符

ulimit   -n

.基础优化操作项:加大文件描述符

# 实例演示:加大文件描述

echo '*               -       nofile          65535 '>>/etc/security/limits.conf

tail -1 /etc/security/limits.conf

ulimit -SHn   65535

ulimit -n            #<==命令方式查看配置结果

第十步:优化内核

cat >>/etc/sysctl.conf<

net.ipv4.tcp_fin_timeout = 2

net.ipv4.tcp_tw_reuse = 1

net.ipv4.tcp_tw_recycle = 1

net.ipv4.tcp_syncookies = 1

net.ipv4.tcp_keepalive_time = 600

net.ipv4.ip_local_port_range = 4000    65000

net.ipv4.tcp_max_syn_backlog = 16384

net.ipv4.tcp_max_tw_buckets = 36000

net.ipv4.route.gc_timeout = 100

net.ipv4.tcp_syn_retries = 1

net.ipv4.tcp_synack_retries = 1

net.core.somaxconn = 16384

net.core.netdev_max_backlog = 16384

net.ipv4.tcp_max_orphans = 16384

#以下参数是对iptables防火墙的优化,防火墙不开会提示,可以忽略不理。

net.nf_conntrack_max = 25000000

net.netfilter.nf_conntrack_max = 25000000

net.netfilter.nf_conntrack_tcp_timeout_established= 180

net.netfilter.nf_conntrack_tcp_timeout_time_wait= 120

net.netfilter.nf_conntrack_tcp_timeout_close_wait= 60

net.netfilter.nf_conntrack_tcp_timeout_fin_wait= 120

net.core.wmem_default = 8388608

net.core.rmem_default = 8388608

net.core.wmem_max = 16777216

net.core.rmem_max = 16777216

EOF

sysctl -p

第十一步

基础优化操作项:安装系统常用软件

CentOS6

和CentOS7都要安装的企业运维常用基础工具包

yum install tree nmap dos2unix lrzsz nc lsof wget tcpdump htop iftop iotop sysstat nethogs -y

CentOS7

要安装的企业运维常用基础工具包

yum install psmisc net-tools bash-completion vim-enhanced -y

第十二步.基础优化操作项:优化SSH远程连接效率

禁止root远程连接

修改默认22端口,改为52113

监听内网服务器IP

第十三步扩展优化操作项-修改yum.conf文件配置信息

保留yum安装的软件包

将/etc/yum.conf中的keepcache=0改为keepcache=1,为日后一键安装网站集群留好rpm及依赖工具包。

第十四步. 锁定关键系统文件如/etc/passwd、/etc/shadow、/etc/group、/etc/gshadow、/etc/inittab,处理以上内容后把chattr、lsattr改名为oldboy,转移走,这样就安全多了。

第十五步. 清空/etc/issue、/etc/issue.net,去除系统及内核版本登录前的屏幕显示。

第十六步.  清除多余的系统虚拟用户账号。

第十七步.  为grub引导菜单加密码(自学)。

第十八步.  禁止主机被ping(内核参数)。

第十九步.打补丁并升级有已知漏洞的软件

   yum  update

第二十步.精简开机自启动服务

systemctl list-unit-files |grepenable|egrep -v "sshd.service|crond.service|sysstat|rsyslog|^NetworkManager.service|irqbalance.service"|awk'{print "systemctl disable",$1}'|bash

systemctl list-unit-files |grep enable

保留服务:

sshd|crond|sysstat|rsyslog|NetworkManager|irqbalance

你可能感兴趣的:(课堂笔记(DAY27-31))