Linux 概述

什么是Linux

  • Linux是一套免费使用和自由传播的类似Unix操作系统,一般的WEB项目都是部署都是放在Linux操作系统上面。 Linux是一个基于POSIX和Unix的多用户、多任务、支持多线程和多CPU的操作系统。它能运行主要的Unix工具软件、应用程序和网络协议。它支持32位和64位硬件。Linux继承了Unix以网络为核心的设计思想,是一个性能稳定的多用户网络操作系统。
    Linux面试相关 - 图1

    Windows和Linux的区别

  • Windows是微软开发的操作系统,民用操作系统,可用于娱乐、影音、上网。 Windows操作系统具有强大的日志记录系统和强大的桌面应用。好处是它可以帮我们实现非常多绚丽多彩的效果,可以非常方便去进行娱乐、影音、上网。

  • Linux的应用相对单纯很多,没有什么绚丽多彩的效果,因此Linux的性能是非常出色的,可以完全针对机器的配置有针对性的优化,
  • 简单来说Windows适合普通用户进行娱乐办公使用,Linux适合软件开发部署

    Unix和Linux有什么区别?

  • Linux和Unix都是功能强大的操作系统,都是应用广泛的服务器操作系统,有很多相似之处,甚至有一部分人错误地认为Unix和Linux操作系统是一样的,然而,事实并非如此,以下是两者的区别。

    1. 开源性
      Linux是一款开源操作系统,不需要付费,即可使用;Unix是一款对源码实行知识产权保护的传统商业软件,使用需要付费授权使用。
    2. 跨平台性
      Linux操作系统具有良好的跨平台性能,可运行在多种硬件平台上;Unix操作系统跨平台性能较弱,大多需与硬件配套使用。
    3. 可视化界面
      Linux除了进行命令行操作,还有窗体管理系统;Unix只是命令行下的系统。
    4. 硬件环境
      Linux操作系统对硬件的要求较低,安装方法更易掌握;Unix对硬件要求比较苛刻,按照难度较大。
    5. 用户群体
      Linux的用户群体很广泛,个人和企业均可使用;Unix的用户群体比较窄,多是安全性要求高的大型企业使用,如银行、电信部门等,或者Unix硬件厂商使用,如Sun等。
      相比于Unix操作系统,Linux操作系统更受广大计算机爱好者的喜爱,主要原因是Linux操作系统具有Unix操作系统的全部功能,并且能够在普通PC计算机上实现全部的Unix特性,开源免费的特性,更容易普及使用!

      什么是 Linux 内核?

  • Linux 系统的核心是内核。内核控制着计算机系统上的所有硬件和软件,在必要时分配硬件,并根据需要执行软件。

    1. 系统内存管理
    2. 应用程序管理
    3. 硬件设备管理
    4. 文件系统管理

      Linux的基本组件是什么?

  • 就像任何其他典型的操作系统一样,Linux拥有所有这些组件:内核,shell和GUI,系统实用程序和应用程序。Linux比其他操作系统更具优势的是每个方面都附带其他功能,所有代码都可以免费下载。

    Linux 的体系结构

  • 从大的方面讲,Linux 体系结构可以分为两块:

Linux面试相关 - 图2

  • 用户空间(User Space) :用户空间又包括用户的应用程序(User Applications)、C 库(C Library) 。
  • 内核空间(Kernel Space) :内核空间又包括系统调用接口(System Call Interface)、内核(Kernel)、平台架构相关的代码(Architecture-Dependent Kernel Code) 。

为什么 Linux 体系结构要分为用户空间和内核空间的原因?

  • 1、现代 CPU 实现了不同的工作模式,不同模式下 CPU 可以执行的指令和访问的寄存器不同。
  • 2、Linux 从 CPU 的角度出发,为了保护内核的安全,把系统分成了两部分。
  • 用户空间和内核空间是程序执行的两种不同的状态,我们可以通过两种方式完成用户空间到内核空间的转移:

    • 系统调用;
    • 硬件中断。

      BASH和DOS之间的基本区别是什么?

  • BASH和DOS控制台之间的主要区别在于3个方面:

    • BASH命令区分大小写,而DOS命令则不区分;
    • 在BASH下,/ character是目录分隔符,\作为转义字符。在DOS下,/用作命令参数分隔符,\是目录分隔符
    • DOS遵循命名文件中的约定,即8个字符的文件名后跟一个点,扩展名为3个字符。BASH没有遵循这样的惯例。

      Linux 开机启动过程?

      了解即可。

  • 1、主机加电自检,加载 BIOS 硬件信息。

  • 2、读取 MBR 的引导文件(GRUB、LILO)。
  • 3、引导 Linux 内核。
  • 4、运行第一个进程 init (进程号永远为 1 )。
  • 5、进入相应的运行级别。
  • 6、运行终端,输入用户名和密码。

    Linux系统缺省的运行级别?

  • 关机。

  • 单机用户模式。
  • 字符界面的多用户模式(不支持网络)。
  • 字符界面的多用户模式。
  • 未分配使用。
  • 图形界面的多用户模式。
  • 重启。

    Linux 使用的进程间通信方式?

    了解即可,不需要太深入。

  • 1、管道(pipe)、流管道(s_pipe)、有名管道(FIFO)。

  • 2、信号(signal) 。
  • 3、消息队列。
  • 4、共享内存。
  • 5、信号量。
  • 6、套接字(socket) 。

    Linux 有哪些系统日志文件?

  • 比较重要的是 /var/log/messages 日志文件。

    该日志文件是许多进程日志文件的汇总,从该文件可以看出任何入侵企图或成功的入侵。 另外,如果胖友的系统里有 ELK 日志集中收集,它也会被收集进去。

Linux系统安装多个桌面环境有帮助吗?

  • 通常,一个桌面环境,如KDE或Gnome,足以在没有问题的情况下运行。尽管系统允许从一个环境切换到另一个环境,但这对用户来说都是优先考虑的问题。有些程序在一个环境中工作而在另一个环境中无法工作,因此它也可以被视为选择使用哪个环境的一个因素。

    什么是交换空间?

  • 交换空间是Linux使用的一定空间,用于临时保存一些并发运行的程序。当RAM没有足够的内存来容纳正在执行的所有程序时,就会发生这种情况。

    什么是root帐户

  • root帐户就像一个系统管理员帐户,允许你完全控制系统。你可以在此处创建和维护用户帐户,为每个帐户分配不同的权限。每次安装Linux时都是默认帐户。

    什么是LILO?

  • LILO是Linux的引导加载程序。它主要用于将Linux操作系统加载到主内存中,以便它可以开始运行。

    什么是BASH?

  • BASH是Bourne Again SHell的缩写。它由Steve Bourne编写,作为原始Bourne Shell(由/ bin / sh表示)的替代品。它结合了原始版本的Bourne Shell的所有功能,以及其他功能,使其更容易使用。从那以后,它已被改编为运行Linux的大多数系统的默认shell。

    什么是CLI?

  • 命令行界面(英语:command-line interface,缩写]:CLI)是在图形用户界面得到普及之前使用最为广泛的用户界面,它通常不支持鼠标,用户通过键盘输入指令,计算机接收到指令后,予以执行。也有人称之为字符用户界面(CUI)。

  • 通常认为,命令行界面(CLI)没有图形用户界面(GUI)那么方便用户操作。因为,命令行界面的软件通常需要用户记忆操作的命令,但是,由于其本身的特点,命令行界面要较图形用户界面节约计算机系统的资源。在熟记命令的前提下,使用命令行界面往往要较使用图形用户界面的操作速度要快。所以,图形用户界面的操作系统中,都保留着可选的命令行界面。

    什么是GUI?

  • 图形用户界面(Graphical User Interface,简称 GUI,又称图形用户接口)是指采用图形方式显示的计算机操作用户界面。

  • 图形用户界面是一种人与计算机通信的界面显示格式,允许用户使用鼠标等输入设备操纵屏幕上的图标或菜单选项,以选择命令、调用文件、启动程序或执行其它一些日常任务。与通过键盘输入文本或字符命令来完成例行任务的字符界面相比,图形用户界面有许多优点。

    开源的优势是什么?

  • 开源允许你将软件(包括源代码)免费分发给任何感兴趣的人。然后,人们可以添加功能,甚至可以调试和更正源代码中的错误。它们甚至可以让它运行得更好,然后再次自由地重新分配这些增强的源代码。这最终使社区中的每个人受益。

    GNU项目的重要性是什么?

  • 这种所谓的自由软件运动具有多种优势,例如可以自由地运行程序以及根据你的需要自由学习和修改程序。它还允许你将软件副本重新分发给其他人,以及自由改进软件并将其发布给公众。

    磁盘、目录、文件

    简单 Linux 文件系统?

    在 Linux 操作系统中,所有被操作系统管理的资源,例如网络接口卡、磁盘驱动器、打印机、输入输出设备、普通文件或是目录都被看作是一个文件。

  • 也就是说在 Linux 系统中有一个重要的概念:一切都是文件。其实这是 Unix 哲学的一个体现,而 Linux 是重写 Unix 而来,所以这个概念也就传承了下来。在 Unix 系统中,把一切资源都看作是文件,包括硬件设备。UNIX系统把每个硬件都看成是一个文件,通常称为设备文件,这样用户就可以用读写文件的方式实现对硬件的访问。

  • Linux 支持 5 种文件类型,如下图所示:
    Linux面试相关 - 图3

    Linux 的目录结构是怎样的?

    这个问题,一般不会问。更多是实际使用时,需要知道。

  • Linux 文件系统的结构层次鲜明,就像一棵倒立的树,最顶层是其根目录:
    image.svg常见目录说明: | 目录 | 介绍 | | —- | —- | | /bin | 存放二进制可执行文件(ls,cat,mkdir等),常用命令一般都在这里; | | /etc | 存放系统管理和配置文件; | | /home | 存放所有用户文件的根目录,是用户主目录的基点,比如用户user的主目录就是/home/user,可以用~user表示; | | /usr | 用于存放系统应用程序; | | /opt | 额外安装的可选应用程序包所放置的位置。一般情况下,我们可以把tomcat等都安装到这里; | | /proc | 虚拟文件系统目录,是系统内存的映射。可直接访问这个目录来获取系统信息; | | /root | 超级用户(系统管理员)的主目录(特权阶级); | | /sbin | 存放二进制可执行文件,只有root才能访问。这里存放的是系统管理员使用的系统级别的管理命令和程序。如ifconfig等; | | /dev | 用于存放设备文件; | | /mnt | 系统管理员安装临时文件系统的安装点,系统提供这个目录是让用户临时挂载其他的文件系统; | | /boot | 存放用于系统引导时使用的各种文件; | | /lib | 存放着和系统运行相关的库文件 ; | | /tmp | 用于存放各种临时文件,是公用的临时文件存储点; | | /var | 用于存放运行时需要改变数据的文件,也是某些大文件的溢出区,比方说各种服务的日志文件(系统启动日志等。)等; | | /lost+found | 这个目录平时是空的,系统非正常关机而留下“无家可归”的文件(windows下叫什么.chk)就在这里 |

什么是 inode ?

一般来说,面试不会问 inode 。但是 inode 是一个重要概念,是理解 Unix/Linux 文件系统和硬盘储存的基础。

  • 理解inode,要从文件储存说起。
  • 文件储存在硬盘上,硬盘的最小存储单位叫做”扇区”(Sector)。每个扇区储存512字节(相当于0.5KB)。
  • 操作系统读取硬盘的时候,不会一个个扇区地读取,这样效率太低,而是一次性连续读取多个扇区,即一次性读取一个”块”(block)。这种由多个扇区组成的”块”,是文件存取的最小单位。”块”的大小,最常见的是4KB,即连续八个 sector组成一个 block。
  • 文件数据都储存在”块”中,那么很显然,我们还必须找到一个地方储存文件的元信息,比如文件的创建者、文件的创建日期、文件的大小等等。这种储存文件元信息的区域就叫做inode,中文译名为”索引节点”。
  • 每一个文件都有对应的inode,里面包含了与该文件有关的一些信息。

简述 Linux 文件系统通过 i 节点把文件的逻辑结构和物理结构转换的工作过程?

如果看的一脸懵逼,也没关系。一般来说,面试官不太会问这个题目。

  • Linux 通过 inode 节点表将文件的逻辑结构和物理结构进行转换。

    • inode 节点是一个 64 字节长的表,表中包含了文件的相关信息,其中有文件的大小、文件所有者、文件的存取许可方式以及文件的类型等重要信息。在 inode 节点表中最重要的内容是磁盘地址表。在磁盘地址表中有 13 个块号,文件将以块号在磁盘地址表中出现的顺序依次读取相应的块。
    • Linux 文件系统通过把 inode 节点和文件名进行连接,当需要读取该文件时,文件系统在当前目录表中查找该文件名对应的项,由此得到该文件相对应的 inode 节点号,通过该 inode 节点的磁盘地址表把分散存放的文件物理块连接成文件的逻辑结构。

      什么是硬链接和软链接?

  • 硬链接:由于 Linux 下的文件是通过索引节点(inode)来识别文件,硬链接可以认为是一个指针,指向文件索引节点的指针,系统并不为它重新分配 inode 。每添加一个一个硬链接,文件的链接数就加 1 。

    • 不足:
      1. 不可以在不同文件系统的文件间建立链接;
      2. 只有超级用户才可以为目录创建硬链接。
  • 软链接:软链接克服了硬链接的不足,没有任何文件系统的限制,任何用户可以创建指向目录的符号链接。因而现在更为广泛使用,它具有更大的灵活性,甚至可以跨越不同机器、不同网络对文件进行链接。
    • 不足:因为链接文件包含有原文件的路径信息,所以当原文件从一个目录下移到其他目录中,再访问链接文件,系统就找不到了,而硬链接就没有这个缺陷,你想怎么移就怎么移;还有它要系统分配额外的空间用于建立新的索引节点和保存原文件的路径。
  • 实际场景下,基本是使用软链接。总结区别如下:

    • 硬链接不可以跨分区,软件链可以跨分区。
    • 硬链接指向一个 inode 节点,而软链接则是创建一个新的 inode 节点。
    • 删除硬链接文件,不会删除原文件,删除软链接文件,会把原文件删除。

      RAID 是什么?

      RAID 全称为独立磁盘冗余阵列(Redundant Array of Independent Disks),基本思想就是把多个相对便宜的硬盘组合起来,成为一个硬盘阵列组,使性能达到甚至超过一个价格昂贵、 容量巨大的硬盘。RAID 通常被用在服务器电脑上,使用完全相同的硬盘组成一个逻辑扇区,因此操作系统只会把它当做一个硬盘。 RAID 分为不同的等级,各个不同的等级均在数据可靠性及读写性能上做了不同的权衡。在实际应用中,可以依据自己的实际需求选择不同的 RAID 方案。

  • 当然,因为很多公司都使用云服务,大家很难接触到 RAID 这个概念,更多的可能是普通云盘、SSD 云盘酱紫的概念。

    安全

    一台 Linux 系统初始化环境后需要做一些什么安全工作?

  • 1、添加普通用户登陆,禁止 root 用户登陆,更改 SSH 端口号。

    修改 SSH 端口不一定绝对哈。当然,如果要暴露在外网,建议改下。l

  • 2、服务器使用密钥登陆,禁止密码登陆。

  • 3、开启防火墙,关闭 SElinux ,根据业务需求设置相应的防火墙规则。
  • 4、装 fail2ban 这种防止 SSH 暴力破击的软件。
  • 5、设置只允许公司办公网出口 IP 能登陆服务器(看公司实际需要)

    也可以安装 VPN 等软件,只允许连接 VPN 到服务器上。

  • 6、修改历史命令记录的条数为 10 条。

  • 7、只允许有需要的服务器可以访问外网,其它全部禁止。
  • 8、做好软件层面的防护。

    • 8.1 设置 nginx_waf 模块防止 SQL 注入。
    • 8.2 把 Web 服务使用 www 用户启动,更改网站目录的所有者和所属组为 www 。

      什么叫 CC 攻击?什么叫 DDOS 攻击?

  • CC 攻击,主要是用来攻击页面的,模拟多个用户不停的对你的页面进行访问,从而使你的系统资源消耗殆尽。

  • DDOS 攻击,中文名叫分布式拒绝服务攻击,指借助服务器技术将多个计算机联合起来作为攻击平台,来对一个或多个目标发动 DDOS 攻击。

    攻击,即是通过大量合法的请求占用大量网络资源,以达到瘫痪网络的目的。

怎么预防 CC 攻击和 DDOS 攻击?

  • 防 CC、DDOS 攻击,这些只能是用硬件防火墙做流量清洗,将攻击流量引入黑洞。

    流量清洗这一块,主要是买 ISP 服务商的防攻击的服务就可以,机房一般有空余流量,我们一般是买服务,毕竟攻击不会是持续长时间。

什么是网站数据库注入?

  • 由于程序员的水平及经验参差不齐,大部分程序员在编写代码的时候,没有对用户输入数据的合法性进行判断。
  • 应用程序存在安全隐患。用户可以提交一段数据库查询代码,根据程序返回的结果,获得某些他想得知的数据,这就是所谓的 SQL 注入。
  • SQL注入,是从正常的 WWW 端口访问,而且表面看起来跟一般的 Web 页面访问没什么区别,如果管理员没查看日志的习惯,可能被入侵很长时间都不会发觉。

如何过滤与预防?

  • 数据库网页端注入这种,可以考虑使用 nginx_waf 做过滤与预防。

    Shell 脚本是什么?

  • 一个 Shell 脚本是一个文本文件,包含一个或多个命令。作为系统管理员,我们经常需要使用多个命令来完成一项任务,我们可以添加这些所有命令在一个文本文件(Shell 脚本)来完成这些日常工作任务。

    实战

    如何选择 Linux 操作系统版本?

    一般来讲,桌面用户首选 Ubuntu ;服务器首选 RHEL 或 CentOS ,两者中首选 CentOS 。

  • 根据具体要求:

    • 安全性要求较高,则选择 Debian 或者 FreeBSD 。
    • 需要使用数据库高级服务和电子邮件网络应用的用户可以选择 SUSE 。
    • 想要新技术新功能可以选择 Feddora ,Feddora 是 RHEL 和 CentOS 的一个测试版和预发布版本。
    • 【重点】根据现有状况,绝大多数互联网公司选择 CentOS 。现在比较常用的是 6 系列,现在市场占有大概一半左右。另外的原因是 CentOS 更侧重服务器领域,并且无版权约束

      CentOS 7 系列,也慢慢使用的会比较多了。

如何规划一台 Linux 主机,步骤是怎样?

  • 1、确定机器是做什么用的,比如是做 WEB 、DB、还是游戏服务器。

    不同的用途,机器的配置会有所不同。

  • 2、确定好之后,就要定系统需要怎么安装,默认安装哪些系统、分区怎么做。

  • 3、需要优化系统的哪些参数,需要创建哪些用户等等的。

请问当用户反馈网站访问慢,你会如何处理?

有哪些方面的因素会导致网站网站访问慢?

  • 1、服务器出口带宽不够用

    • 本身服务器购买的出口带宽比较小。一旦并发量大的话,就会造成分给每个用户的出口带宽就小,访问速度自然就会慢。
    • 跨运营商网络导致带宽缩减。例如,公司网站放在电信的网络上,那么客户这边对接是长城宽带或联通,这也可能导致带宽的缩减。
  • 2、服务器负载过大,导致响应不过来

    可以从两个方面入手分析:

    • 分析系统负载,使用 w 命令或者 uptime 命令查看系统负载。如果负载很高,则使用 top 命令查看 CPU ,MEM 等占用情况,要么是 CPU 繁忙,要么是内存不够。
    • 如果这二者都正常,再去使用 sar 命令分析网卡流量,分析是不是遭到了攻击。一旦分析出问题的原因,采取对应的措施解决,如决定要不要杀死一些进程,或者禁止一些访问等。
  • 3、数据库瓶颈

    • 如果慢查询比较多。那么就要开发人员或 DBA 协助进行 SQL 语句的优化。
    • 如果数据库响应慢,考虑可以加一个数据库缓存,如 Redis 等。然后,也可以搭建 MySQL 主从,一台 MySQL 服务器负责写,其他几台从数据库负责读。
  • 4、网站开发代码没有优化好

    • 例如 SQL 语句没有优化,导致数据库读写相当耗时。

针对网站访问慢,怎么去排查?

  • 1、首先要确定是用户端还是服务端的问题。当接到用户反馈访问慢,那边自己立即访问网站看看,如果自己这边访问快,基本断定是用户端问题,就需要耐心跟客户解释,协助客户解决问题。

    不要上来就看服务端的问题。一定要从源头开始,逐步逐步往下。

  • 2、如果访问也慢,那么可以利用浏览器的调试功能,看看加载那一项数据消耗时间过多,是图片加载慢,还是某些数据加载慢。

  • 3、针对服务器负载情况。查看服务器硬件(网络、CPU、内存)的消耗情况。如果是购买的云主机,比如阿里云,可以登录阿里云平台提供各方面的监控,比如 CPU、内存、带宽的使用情况。
  • 4、如果发现硬件资源消耗都不高,那么就需要通过查日志,比如看看 MySQL慢查询的日志,看看是不是某条 SQL 语句查询慢,导致网站访问慢。

怎么去解决?

  • 1、如果是出口带宽问题,那么久申请加大出口带宽。
  • 2、如果慢查询比较多,那么就要开发人员或 DBA 协助进行 SQL 语句的优化。
  • 3、如果数据库响应慢,考虑可以加一个数据库缓存,如 Redis 等等。然后也可以搭建MySQL 主从,一台 MySQL 服务器负责写,其他几台从数据库负责读。
  • 4、申请购买 CDN 服务,加载用户的访问。
  • 5、如果访问还比较慢,那就需要从整体架构上进行优化咯。做到专角色专用,多台服务器提供同一个服务。

    Linux 性能调优都有哪几种方法?

  • 1、Disabling daemons (关闭 daemons)。

  • 2、Shutting down the GUI (关闭 GUI)。
  • 3、Changing kernel parameters (改变内核参数)。
  • 4、Kernel parameters (内核参数)。
  • 5、Tuning the processor subsystem (处理器子系统调优)。
  • 6、Tuning the memory subsystem (内存子系统调优)。
  • 7、Tuning the file system (文件系统子系统调优)。
  • 8、Tuning the network subsystem(网络子系统调优)。

    基本命令

    cd (change directory:英文释义是改变目录)切换目录
    1. cd ../ ;跳到上级目录
    2. cd /opt ;不管现在到那直接跳到指定的opt文件夹中
    3. cd ~ ;切换当前用户的家目录。root用户的家目录就是root目录。
    4. 复制代码

pwd (print working directory:显示当前工作目录的绝对路径)
  1. pwd
  2. 显示当前的绝对路劲
  3. 复制代码

ls (ls:list的缩写,查看列表)查看当前目录下的所有文件夹(ls 只列出文件名或目录名)
  1. ls -a ;显示所有文件夹,隐藏文件也显示出来
  2. ls -R ;连同子目录一起列出来
  3. 复制代码

ll (ll:list的缩写,查看列表详情)查看当前目录下的所有详细信息和文件夹(ll 结果是详细,有时间,是否可读写等信息)
  1. ll -a ;显示所有文件,隐藏文件也显示出来
  2. ll -R ;连同子目录内容一起列出来
  3. ll -h ;友好展示详情信息,可以看大小
  4. ll -al ;即能显示隐藏文件又能显示详细列表。
  5. 复制代码

touch (touch:创建文件)创建文件
  1. touch test.txt ;创建test.txt文件
  2. touch /opt/java/test.java ;在指定目录创建test.java文件
  3. 复制代码

mkdir (mkdir:创建目录) 创建目录
  1. mkdir 文件夹名称 ;在此目录创建文件夹
  2. mkdir /opt/java/jdk ;在指定目录创建文件夹
  3. 复制代码

cat (concatenate:显示或把多个文本文件连接起来)查看文件命令(可以快捷查看当前文件的内容)(不能快速定位到最后一页)
  1. cat lj.log ;快捷查看文件命令
  2. Ctrl + c ;暂停显示文件
  3. Ctrl + d ;退出查看文件命令
  4. 复制代码

more (more:更多的意思)分页查看文件命令(不能快速定位到最后一页)
  1. 回车:向下n行,需要定义,默认为1行。
  2. 空格键:向下滚动一屏或Ctrl+F
  3. B:返回上一层或Ctrl+B
  4. q:退出more
  5. 复制代码

less (lese:较少的意思)分页查看文件命令(可以快速定位到最后一页)
  1. less -m 显示类似于more命令的百分比。
  2. less -N 显示每行的行号。(大写的N)
  3. 两参数一起使用如:less -mN 文件名,如此可分页并显示行号。
  4. 空格键:前下一页或page down
  5. 回车:向下一行。
  6. b:后退一页 page up
  7. q:退出。
  8. d:前进半页。
  9. u:后退半页
  10. 复制代码

tail(尾巴) 查看文件命令(看最后多少行)
  1. tail -10 ;文件名 看最后10
  2. 复制代码

cp(copy单词缩写,复制功能)
  1. cp /opt/java/java.log /opt/logs/ ;把java.log 复制到/opt/logs/下
  2. cp /opt/java/java.log /opt/logs/aaa.log ;把java.log 复制到/opt/logs/下并且改名为aaa.log
  3. cp -r /opt/java /opt/logs ;把文件夹及内容复制到logs文件中
  4. 复制代码

mv(move单词缩写,移动功能,该文件名称功能)
  1. mv /opt/java/java.log /opt/mysql/ ;移动文件到mysql目录下
  2. mv java.log mysql.log ;把java.log改名为mysql.log
  3. 复制代码

rm(remove:移除的意思)删除文件,或文件夹
  1. -f或--force 强制删除文件或目录。删除文件不包括文件夹的文件
  2. -r或-R或--recursive 递归处理,将指定目录下的所有文件及子目录一并删除。
  3. -rf 强制删除文件夹及内容
  4. rm 文件名 ;安全删除命令 yes删除 no取消)
  5. rm -rf 强制删除文件夹及内容
  6. rm -rf * 删除当前目录下的所有内容。
  7. rm -rf /* 删除Linux系统根目录下所有的内容。系统将完蛋。
  8. 复制代码

find (find:找到的意思)查找指定文件或目录
  1. * 表示0~多个任意字符。
  2. find -name 文件名;按照指定名称查找在当前目录下查找文件
  3. find / -name 文件名按照指定名称全局查找文件
  4. find -name '*文件名' ;任意前缀加上文件名在当前目录下查找文件
  5. find / -name '*文件名*' ;全局进行模糊查询带文件名的文件
  6. 复制代码

vi (VIsual:视觉)文本编辑器 类似win的记事本 (操作类似于地下的vim命令,看底下vim 的操作)

vim (VI IMproved:改进版视觉)改进版文本编辑器 (不管是文件查看还是文件编辑 按 Shift + 上或者下可以上下移动查看视角)
  1. 输入”vim 文件名” 打开文件,刚刚时是”一般模式”。
  2. 一般模式:可以浏览文件内容,可以进行文本快捷操作。如单行复制,多行复制,单行删除,多行删除,(退出)等。
  3. 插入模式:可以编辑文件内容。
  4. 底行模式:可以进行强制退出操作,不保存 :q!
  5. 可以进行保存并退出操作 :wq
  6. 按下”i”或”a”或”o”键,从”一般模式”,进入”插入模式(编辑模式)”。
  7. 在编辑模式下按”Esc 即可到一般模式
  8. 在一般模式下按”:”,冒号进入底行模式。
  9. 在一般模式下的快捷键
  10. dd ;删除一整行
  11. X ;向前删除 等同于windowns系统中的删除键
  12. x ;向后删除和大写x相反方向
  13. Ctrl + f ;向后看一页
  14. Ctrl + b ;向前看一页
  15. u ;撤销上一步操作
  16. /word ;向下查找word关键字 输入:n查找下一个,N查找上一个(不管是哪个查找都是全局查找 只不过n的方向相反)
  17. ?log ;向上查找log关键字 输入:n查找上一个,N查找下一个
  18. :1,90s/redis/Redis/g ;把1-90行的redis替换为Redis。语法n1,n2s/原关键字/新关键字/gn1代表其实行,n2代表结尾行,g是必须要的
  19. :0 ;光标移动到第一行
  20. :$ ;光标移动到最后一行
  21. :300 ;光标移动到300行,输入多少数字移动到多少行
  22. :w ;保存
  23. :w! ;强制保存
  24. :q ;退出
  25. :q! ;强制退出
  26. 5dd ;删除后面5行,打一个参数为自己填写
  27. 5x ;删除此光标后面5个字符
  28. d1G ;删除此光标之前的所有
  29. d0 ;从光标当前位置删除到此行的第一个位置
  30. yy ;复制
  31. p ;在光标的下面进行粘贴
  32. P ;在光标的上门进行粘贴
  33. 复制代码

| 管道命令(把多个命令组合起来使用)
  1. 管道命令的语法:命令1 | 命令2 | 命令3
  2. 复制代码

grep (grep :正则表达式)正则表达式,用于字符串的搜索工作(模糊查询)。不懂可以先过
  1. 单独使用:
  2. grep String test.java ;在test.java文件中查找String的位置,返回整行
  3. 一般此命令不会单独使用下面列几个常用的命令(地下通过管道命令组合起来使用)
  4. ps aux|grep java ;查找带java关键字的进程
  5. ll |grep java ;查找带java关键字的文件夹及文件
  6. 复制代码

yum install -y lrzsz 命令(实现win到Linux文件互相简单上传文件)
  1. #(实际上就是在Linux系统中下载了一个插件)下了了此安装包后就可以实现win系统到linux之间拉文件拉文件
  2. #等待下载完了就可以输入:
  3. rz win系统中选择文件上传到Linux系统中
  4. sz 文件名 选择Linux系统的文件复制到win系统中
  5. 复制代码

tar (解压 压缩 命令)
  1. 常用的组合命令:
  2. -z 是否需要用gzip压缩。
  3. -c 建立一个压缩文件的参数指令(create) –压缩
  4. -x 解开一个压缩文件的参数指令(extract) –解压
  5. -v 压缩的过程中显示文件(verbose)
  6. -f 使用档名,在f之后要立即接档中(file)
  7. 常用解压参数组合:zxvf
  8. 常用压缩参数组合:zcvf
  9. 解压命令:
  10. tar -zxvf redis-3.2.8.tar.gz ;解压到当前文件夹
  11. tar -zxvf redis-3.2.8.tar.gz -C /opt/java/ ;解压到指定目录
  12. 压缩命令:(注意 语法有点反了,我反正每次都搞反)
  13. tar -zcvf redis-3.2.8.tar.gz redis-3.2.8/ ;语法 tar -zcvf 压缩后的名称 要压缩的文件
  14. tar -zcvf 压缩后的文件(可指定目录) 要压缩的文件(可指定目录)
  15. 复制代码

ps (process status:进程状态,类似于windows的任务管理器)
  1. 常用组合:ps -ef 标准的格式查看系统进程
  2. ps -aux BSD格式查看系统进程
  3. ps -aux|grep redis BSD格式查看进程名称带有redis的系统进程(常用技巧)
  4. //显示进程的一些属性,需要了解(ps aux)
  5. USER //用户名
  6. PID //进程ID号,用来杀死进程的
  7. %CPU //进程占用的CPU的百分比
  8. %MEM //占用内存的的百分比
  9. VSZ //该进程使用的虚拟內存量(KB)
  10. RSS //该进程占用的固定內存量(KB)
  11. STAT //进程的状态
  12. START //该进程被触发启动时间
  13. TIME //该进程实际使用CPU运行的时间
  14. 复制代码

clear 清屏命令。(强迫症患者使用)
  1. kill 命令用来中止一个进程。(要配合ps命令使用,配合pid关闭进程)
  2. ps类似于打开任务管理器,kill类似于关闭进程)
  3. kill -5 进程的PID ;推荐,和平关闭进程
  4. kill -9 PID ;不推荐,强制杀死进程
  5. 复制代码

ifconfig命令
  1. 用于查看和更改网络接口的地址和参数,包括IP地址、网络掩码、广播地址,使用权限是超级用户。(一般是用来查看的,很少更改)
  2. 如果此命令输入无效,先输入yum -y install net-tools
  3. ifconfig
  4. 复制代码

ping (用于检测与目标的连通性)语法:ping ip地址
  1. 测试:
  2. 1、在Windows操作系统中cmdipconfig,查看本机IP地址:
  3. 2、再到LInux系统中输入 ping ip地址
  4. (公司电脑,我就不暴露Ip了,没图片 自己去试)
  5. Ctrl + C 可以停止测试。
  6. 复制代码

free 命令 (显示系统内存)
  1. #显示系统内存使用情况,包括物理内存、交互区内存(swap)和内核缓冲区内存。
  2. -b Byte显示内存使用情况
  3. -k kb为单位显示内存使用情况
  4. -m mb为单位显示内存使用情况
  5. -g gb为单位显示内存使用情况
  6. -s<间隔秒数> 持续显示内存
  7. -t 显示内存使用总合
  8. 复制代码

top 命令
  1. #显示当前系统正在执行的进程的相关信息,包括进程 ID、内存占用率、CPU 占用率等
  2. -c 显示完整的进程命令
  3. -s 保密模式
  4. -p <进程号> 指定进程显示
  5. -n <次数>循环显示次数
  6. 复制代码

netstat 命令
  1. #Linux netstat命令用于显示网络状态。
  2. #利用netstat指令可让你得知整个Linux系统的网络情况。
  3. #语法:
  4. netstat [-acCeFghilMnNoprstuvVwx][-A<网络类型>][--ip]
  5. 复制代码

file (可查看文件类型)
  1. file 文件名
  2. 复制代码

重启linux
  1. Linux centos 重启命令:reboot
  2. 复制代码

关机linux
  1. Linux centos 关机命令:halt
  2. 复制代码

同步时间命令
ntpdate ntp1.aliyun.com
复制代码

更改为北京时间命令
rm -rf /etc/localtime
ln -s /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
复制代码

查看时间命令:
date

简述Linux主流的发行版?

Redhat、CentOS、Fedora、SuSE、Debian、Ubuntu、FreeBSD等。

简述Linux启动过程?

  • ⑴ 开机BIOS自检,加载硬盘。
  • ⑵ 读取MBR,MBR引导。
  • ⑶ grub引导菜单(Boot Loader)。
  • ⑷ 加载内核kernel。
  • ⑸ 启动init进程,依据inittab文件设定运行级别。
  • ⑹ init进程,执行rc.sysinit文件。
  • ⑺ 启动内核模块,执行不同级别的脚本程序。
  • ⑻ 执行/etc/rc.d/rc.local。
  • ⑼ 启动tty,进入系统登陆界面。

    简述Linux删除文件的原理?

    Linux系统是通过link的数量来控制文件删除的,只有当一个文件不存在任何link的时候,这个文件才会被删除。一般来说每个文件两个link计数器来控制:i_count和i_nlink。当一个文件被一个程序占用的时候i_count就加1。当文件的硬链接多一个的时候i_nlink也加1。删除一个文件,就是让这个文件,没有进程占用,同时i_link数量为0。

    简述Linux运行级别?

  • 0:关机模式

  • 1:单用户模式<==破解root密码
  • 2:无网络支持的多用户模式
  • 3:有网络支持的多用户模式(文本模式,工作中最常用的模式)
  • 4:保留,未使用
  • 5:有网络支持的X-windows支持多用户模式(桌面)
  • 6:重新引导系统,即重启

    简述Linux常见目录及其作用?

  • /(根目录):Linux文件系统的起点;

  • boot:存放Linux系统启动做必须的文件;
  • var:存放经常变换的文件;
  • home:普通用户的家目录
  • root:Linux系统的root用户家目录;
  • bin:存放系统基本的用户命令;
  • sbin:存放系统基本的管理命令;
  • use:存放Linux应用程序;
  • etc:存放Linux系统和各种程序的配置文件。

    简述Linux操作系统常见的文件系统有?

  • EXT3

  • EXT4
  • XFS

    简述Linux系统中的buffer和cache区别?

    buffer和cache都是内存中的一块区域,当CPU需要写数据到磁盘时,由于磁盘速度比较慢,所以CPU先把数据存进buffer,然后CPU去执行其他任务,buffer中的数据会定期写入磁盘;当CPU需要从磁盘读入数据时,由于磁盘速度比较慢,可以把即将用到的数据提前存入cache,CPU直接从Cache中读取数据。

    简述Linux中inode和block?

    inode节点是一个64字节长的表,表中包含了文件的相关信息,如:字节数、属主UserID、属组GroupID、读写执行权限、时间戳等。在inode节点表中最重要的内容是:磁盘地址表。
    文件名存放在目录当中,但Linux系统内部不使用文件名,而是使用inode号码识别文件。对于系统来说文件名只是inode号码便于识别的别称。即Linux文件系统通过把inode和文件名进行关联来查找文件。当需要读取该文件时,文件系统在当前目录表中查找该文件名对应的项,由此得到该文件相对应的inode节点号,通过该inode节点的磁盘地址表把分散存放的文件物理块连接成文件的逻辑结构。
    文件是存储在硬盘上的,硬盘的最小存储单位叫做扇区sector,每个扇区存储512字节。操作系统读取硬盘的时候,不会一个个扇区地读取,这样效率太低,而是一次性连续读取多个扇区,即一次性读取一个块block。这种由多个扇区组成的块,是文件存取的最小单位。块的大小,最常见的是4KB,即连续八个sector组成一个block。
    即512字节组成一个扇区(sector),多个扇区组成一个块(block),常见的块单位4KB,即连续八个扇区组成一个block。

    一个文件必须占用一个inode,但至少占用一个block。

简述Linux文件系统修复fsck过程?

成功修复文件系统的前提是要有两个以上的主文件系统(即两个系统),并保证在修复之前卸载将被修复的文件系统,然后使用命令fsck对受到破坏的文件系统进行修复。
fsck检查文件系统分为5步,每一步检查系统不同部分的连接特性并对上一步进行验证和修改。
检查从超级块开始、然后是分配的磁盘块、路径名、目录的连接性、链接数目以及空闲块链表、inode。

简述Linux中软链接和硬链接的区别?

  • 软链接

软链接类似于Windows的快捷方式功能的文件,可以快速连接到目标文件或目录。即再创建一个独立的文件,而这个文件会让数据的读取指向它连接的那个文件的文件名。例如,文件A和文件B的inode号码虽然不一样,但是文件A的内容是文件B的路径。读取文件A时,系统会自动将访问者导向文件B。这时,文件A就称为文件B的软链接。
因此,文件A依赖于文件B而存在,如果删除了文件B,打开文件A就会报错。

  • 硬链接

通过文件系统的inode链接来产生的新的文件名,而不是产生新的文件,称为硬链接。
一般情况下,每个inode号码对应一个文件名,但是Linux允许多个文件名指向同一个inode号码。意味着可以使用不同的文件名访问相同的内容。创建硬链接,源文件与目标文件的inode号码相同,都指向同一个inode。inode信息中的链接数这时就会增加1。

  • 当一个文件拥有多个硬链接时,对文件内容修改,会影响到所有其他文件的内容;
  • 删除一个文件名,不影响另一个文件名的访问,删除一个文件名,只会使得inode中的链接数减1。
  • 区别

软链接与硬链接最大的区别:软链接是文件A指向文件B的文件名,而不是文件B的inode号码,文件B的inode链接数不会因此发生变化。

不能对目录做硬链接,但是通过mkdir命令创建一个新目录,通常其硬链接数应该有2个,因为常见的目录本身为1个硬链接,而目录下面的隐藏目录.(点号)是该目录的又一个硬链接,也算是1个连接数。

简述TCP三次握手,四次断开,及其优点和缺点,同时相对于UDP的差别?

TCPUDP概念:

  • TCP:传输控制协议,即面向连接;
  • UDP:用户数据报协议,无连接的,即发送数据之前不需要建立连接

TCP与UDP的优缺点上的区别:

  • TCP的优点:

可靠,稳定。TCP的可靠体现在TCP在传递数据之前,会有三次握手来建立连接,而且在数据传递时,有确认、窗口、重传、拥塞控制机制,在数据传完后,还会断开连接用来节约系统资源。

  • 三次握手:
  1. 第一次握手,主机A向主机B发出一个含同步序列号的标志位的数据段给主机B ,向主机B请求建立连接。通过这个数据段,A向B声明通信请求,以及告知B可用某个序列号作为起始数据段进行响应;
  2. 第二次握手,主机B收到主机A的请求后,用一带有确认应答(ACK)和同步序列号(SYN)标志位的数据段响应A。通过此数据段,B向A声明已收到A的请求,A可以传输数据了,同时告知A可用某个序列号作为起始数据段进行响应;
  3. 第三次握手,主机A收到主机B的数据段后,再发送一个确认应答,确认已收到主机B 的数据段,之后开始正式实际传输数据。
    • ACK:TCP报头的控制位之一,对数据进行确认。确认由目的端发出,来告知发送端这个序列号之前的数据段都收到了。比如,确认号为X,则表示前X-1个数据段都收到了。只有当ACK=1时,确认号才有效,当ACK=0时,确认号无效,此时会要求重传数据,保证数据的完整性。
    • SYN:同步序列号,这个标志位只有在TCP建立连接时才会被置1,握手完成后SYN标志位被置0。
  • 四次断开:
    • 1、当主机A完成数据传输后,将控制位FIN置1,提出停止TCP连接的请求;
    • 2、主机B收到FIN后对其作出响应,确认这一方向上的TCP连接将关闭,将ACK置1;
    • 3、主机B再提出反方向的关闭请求,将FIN置1;
    • 4、主机A对主机B的请求进行确认,将ACK置1,双方向的关闭结束。

• TCP的缺点:
慢、效率低、占用系统资源高、易被攻击:TCP在传递数据之前,要先建连接,需要消耗时间,而且在数据传递时,确认机制、重传机制、拥塞控制机制等都会消耗大量的时间,而且要在每台设备上维护所有的传输连接。同时,每个连接都会占用系统的CPU、内存等硬件资源。而且,因为TCP有确认机制、三次握手机制,这些也导致TCP容易被人利用,实现DOS、DDOS、CC等攻击。

  • DoS:拒绝服务(Denial of Servic),造成DoS的攻击行为被称为DoS攻击,其目的是使计算机或网络无法提供正常的服务。最常见的DoS攻击有计算机网络带宽攻击和连通性攻击。
  • DDOS:分布式拒绝服务(DDoS:Distributed Denial of Service),DDoS攻击指借助于客户/服务器技术,将多个计算机联合起来作为攻击平台,对一个或多个目标发动DDoS攻击,从而成倍地提高拒绝服务攻击的威力。
  • UDP的优点:
    快、比TCP稍安全、没有TCP的握手、确认、窗口、重传、拥塞控制等机制,UDP是一个无状态的传输协议,所以它在传递数据时非常快。没有TCP的这些机制,UDP被攻击者利用的漏洞就要少一些。但UDP也是无法避免攻击的,比如:UDP Flood攻击。

    UDP Flood攻击检测:短时间内向特定目标不断发送 UDP 报文,致使目标系统负担过重而不能处理合法的传输任务,就发生了 UDP Flood。启用 UDP Flood 攻击检测功能时,要求设置一个连接速率阈值,一旦发现保护主机响应的 UDP 连接速率超过该值,防火墙会输出发生 UDP Flood 攻击的告警日志,并且根据用户的配置可以阻止发往该主机的后续连接请求。

  • UDP的缺点:

不可靠、不稳定。因为UDP没有那些可靠的机制,在数据传递时,如果网络质量不好,就会很容易丢包。

  • TCP应用场景:

当对网络通讯质量有要求的时候,比如:整个数据要准确无误的传递给对方,要求可靠的应用,比如HTTP、HTTPS、FTP等传输文件的协议,POP、SMTP等邮件传输的协议。

  • UDP应用场景:

当对网络通讯质量要求不高的时候,要求网络通讯速度能尽量的快。比如QQ语音、QQ视频、TFTP 。

简述TCP/IP及其主要协议?

TCP/IP协议是一个协议簇,其中包括很多协议的。
TCP/IP协议包括应用层传输层网络层网络访问层网络接口层网际层)。

  • 应用层:应用程序间沟通的层
    • 超文本传输协议(HTTP):万维网的基本协议;
    • 文件传输(TFTP):简单文件传输协议;
    • 远程登录(Telnet):提供远程访问其它主机功能,它允许用户登录internet主机,并在这台主机上执行命令;
    • 网络管理(SNMP):简单网络管理协议,该协议提供了监控网络设备的方法,以及配置管理、统计信息收集、性能管理及安全管理等;
    • 域名系统(DNS):域名解析服务,该系统用于在internet中将域名及转换成IP地址;
  • 传输层:提供了节点间的数据传送服务,给数据包加入传输数据并把它传输到下一层中,这一层负责传送数据,并且确定数据已被送达并接收。
    • 传输控制协议(TCP)
    • 用户数据报协议(UDP)
  • 网络层:负责提供基本的数据封包传送功能,让每一个数据包都能够到达目的主机(但不检查是否被正确接收)。
    • Internet协议(IP) :根据网间报文IP地址,从一个网络通过路由器传到另一网络;
    • ICMP:Internet控制信息协议(ICMP);
    • ARP:地址解析协议(ARP) ——“最不安全的协议”。
    • RARP:反向地址解析协议(RARP):
  • 网络访问层:又称作主机到网络层(host-to-network),IP地址与物理地址硬件的映射及IP封装成帧,基于不同硬件类型的网络接口,网络访问层定义了与物理介质的连接。

    简述OSI模型及其主要协议?

    OSI模型是一个开放式系统互联参考模型,该模型人为的定义了七层结构。由下至上及其主要作用为:
  1. 物理层:OSI的物理层规定了通信端点之间的机械特性、电气特性、功能特性以及过程特性,该层为上层协议提供了一个传输数据的物理媒体。该层数据的单位称为比特(bit)。其主要有:EIA/TIA、RS-232、EIA/TIA、RS-449、V.35、RJ-45、fddi令牌环网。
  2. 数据链路层:定义了在单个链路上如何传输数据,其主要作用包括:作用包括物理地址寻址、数据的成帧、流量控制、数据的检错、重发等。该层数据的单位称为帧(frame)。其主要有:ARP、RARP、SDLC、HDLC、PPP、STP、帧中继。
  3. 网络层:定义了端到端的包传输,定义了能够标识所有结点的逻辑地址,还定义了路由实现的方式和学习路由的方式。为了适应最大传输单元长度小于包长度的传输介质,网络层还定义了如何将一个包分解成更小的包的分段方法。主要负责寻找地址和路由选择,网络层还可以实现拥塞控制、网际互连等功能。该层数据的单位称为数据包(packet)。主要有:IP、IPX、RIP、OSPF。
  4. 传输层:主要功能:
  • 为端到端连接提供传输服务;
  • 这种传输服务分为可靠和不可靠的,其中TCP是典型的可靠传输,而UDP则是不可靠传输;
  • 为端到端连接提供流量控制,差错控制,重新排序,服务质量等管理服务。

该层数据的单位称为数据段(segment)。主要有:TCP、UDP、SPX、DCCP、SCTP、RTP、RSVP、PPTP。

  1. 会话层:他定义了如何开始、控制和结束一个会话,即负责建立和断开通信连接(数据流动的逻辑通路)。主要有:RPC、SQL、NetBIOS。
  2. 表示层:定义数据格式及加密。主要负责数据格式的转换,确保一个系统的应用层信息可被另一个系统应用层读取。主要有:加密、ASII、TIFF、JPEG、HTML、PICT。
  3. 应用层:与其他计算机进行通讯的一个应用,它是对应应用程序的通信服务的,为应用程序提供服务并规定应用程序中通信相关的细节。主要有:Telnet、HTTP、FTP、WWW、NFS、SMTP。

    简述IP协议、IP地址?

    IP协议(Internet Protocol):又称互联网协议,是支持网间互连的数据报协议。它提供网间连接的完善功能,包括IP数据包规定互连网络范围内的IP地址格式。
    为了实现连接到互联网上的结点之间的通信,必须为每个结点(入网的计算机)分配一个地址,并且应当保证这个地址是全网唯一的,这便是IP地址。
    目前的IP地址(IPv4:IP第4版本)由32个二进制位表示,每8位二进制数为一个整数,中间由小数点间隔,整个IP地址空间有4组8位二进制数,由表示主机所在的网络的地址以及主机在该网络中的标识共同组成。为了便于寻址和层次化的构造网络,IP地址被分为A、B、C、D、E五类,商业应用中只用到A、B、C三类。
  • A类地址:网络标识由第一组8位二进制数表示,网络中的主机标识占3组8位二进制数,网络标识的第一位二进制数取值必须为”0”。A类地址允许有126个网段,每个网络大约允许有1670万台主机,通常分配给拥有大量主机的网络(如主干网)。1.0.0.1-127.255.255.254
  • B类地址:网络标识由前两组8位二进制数表示,网络中的主机标识占两组8位二进制数,网络标识的前两位二进制数取值必须为”10”。B类地址允许有16384个网段,每个网络允许有65533台主机,适用于结点比较多的网络(如区域网)。128.1.0.1-191.255.255.254
  • C类地址:网络标识由前3组8位二进制数表示,网络中主机标识占1组8位二进制数,网络标识的前3位二进制数取值必须为”110”。具有C类地址的网络允许有254台主机,适用于结点比较少的网络(如校园网)。192.0.1.1-223.255.255.254

为了便于记忆,通常习惯采用4个十进制数来表示一个IP地址,十进制数之间采用句点”.”予以分隔。这种IP地址的表示方法也被称为点分十进制法。

简述静态路由和动态路由及其特点?

  • 静态路由:由系统管理员创建的路由,适用于网关数量有限的场合,且网络拓朴结构不经常变化的网络。其缺点是不能动态地适用网络状况的变化,当网络状况变化后需要网络管理员手动修改路由表。
  • 动态路由:由路由选择协议动态构建的路由,路由协议之间通过交换各自所拥有的路由信息实时更新路由表的内容。动态路由可以自动学习网络的拓朴结构,并更新路由表。其缺点是路由广播更新信息将占据大量的网络带宽。

    简述NAT的几种类型,及其原理?

    常见的NAT主要有DNASNAT

  • SNAT:指在数据包从网卡发送出去的时候,把数据包中的源地址部分替换为指定的IP。此时,接收方就认为数据包的来源是被替换的那个IP的主机。

  • DNAT:指数据包从网卡发送出去的时候,修改数据包中的目的IP。此时,若访问A,但因此DNAT的存在,所有访问A的数据包的目的IP全部修改为B,那么,实际上访问的是B。

    简述包过滤防火墙和代理应用防火墙的区别?

  • 包过滤防火墙:工作在网络层,根据包头中的源IP地址、目标IP地址、协议类型、端口号进行过滤;

  • 代理应用防火墙:工作在应用层,使用代理服务器技术,将内网对外网的访问,变为防火墙对外网的访问,可以对包的内容进行分辨,从而过滤。