Linux基础

服务器

什么是服务器

服务器,也称伺服器,是提供计算服务的设备。由于服务器需要响应服务请求,并进行处理,因此一般来说服务器应具备承担服务并且保障服务的能力。

服务器的构成包括处理器、硬盘、内存、系统总线等,和通用的计算机架构类似,但是由于需要提供高可靠的服务,因此在处理能力、稳定性、可靠性、安全性、可扩展性、可管理性等方面要求较高。

在网络环境下,根据服务器提供的服务类型不同,分为文件服务器、数据库服务器、应用程序服务器、WEB服务器等。

服务器的高性能体现在高速的运转能力,长时间的可靠运行,强大的数据吞吐能力

服务器分类

物理服务器

  • DELL(大多数公司在用)
  • HP
  • IBM(百度,银行,政府)(贵)
  • 浪潮
  • 联想

云服务器

  • 阿里云
  • 腾讯云
  • 华为云

Linux

操作系统

操作系统:操作系统是一个用来协调、管理和控制计算机硬件和软件资源的系统程序,它位于硬件和应用程序之间。

操作系统内核:操作系统的内核是一个管理和控制程序,负责管理计算机的所有物理资源,其中包括。文件系统、内存管理、设备管理和进程管理。

操作系统分类

  • Windows系列操作系统,

  • Unix类操作系统,

  • Linux类操作系统,

  • Mac操作系统

Linux

Linux是一套免费使用和自由传播的类Unix操作系统,是一个基于POSIX和UNIX的多用户、多任务、支持多线程和多CPU的操作系统。

Linux操作系统的主要用途:主要用于服务器,特别是网络服务器。

两种常见的桌面环境:KDE和GNOME。

linux可以说是从Unix发展而来的。

内核(kernel)是系统的心脏,是运行程序和管理磁盘与打印机等硬件设备的核心程序,它提供了一个在裸设备和应用程序之间的抽象层。

linux内核源码:https://www.kernel.org/

为什么使用linux

linux的优点:

  • 开发源代码的程序,可自由修改。

  • Unix系统兼容,具备Unix几乎所有优秀特性。

  • 可自由传播,无任何商业化版权制约。

  • 适合Intel等x86 CPU系列架构的计算机。

Linux发行版本

在介绍常见的 Linux 系统版本之前,首先需要区分 Linux 系统内核与 Linux 发行版的不同。

  • Linux 系统内核指的是一个由 Linus Torvalds 负责维护,提供硬件抽象层、硬盘及文件 系统控制及多任务功能的系统核心程序。

  • Linux 发行版系统是我们常说的 Linux 操作系统,也即是由 Linux 内核与各种常用 软件的集合产品。

全球大约有数百款的 Linux 系统版本,每个系统版本都有自己的特性和目标人群,下面 将可以从用户的角度选出最热门的几款进行介绍。

RedHat Enterprise Linux RHEL

红帽公司是全球最大的开源技术厂商,RHEL 是全世界内使 用最广泛的 Linux 系统。RHEL 系统具有极强的性能与稳定 性,并且在全球范围内拥有完善的技术支持。

CentOS(Community Enterprise Operating System

CentOS 通过把 RHEL 系统重新编译并发布给用户免费使用的 Linux 系统,具有广泛的使用人群。CentOS 当前已被红帽公司 “收编”。

openSUSE

源自德国的一款著名的 Linux 系统,在全球范围内 有着不错的声誉及市场占有率。主要使用客户是中国移动、中国电信、交通银行、浦发银行等等安全性极高的客户

Debian

稳定性、安全性强,提供了免费的基础支持,可以良好地支持各种硬件架构,以及提供近十万种不同的开源软件,在国外拥有很高的认可度和使用率。

Ubuntu

是一款派生自 Debian 的操作系统,对新款硬件具有极 强的兼容能力。Ubuntu 与 Fedora 都是极其出色的 Linux 桌面系统,而且 Ubuntu 也可用于服务器领域。

VMware虚拟机

什么是虚拟机

虚拟机(Virtual Machine)指通过软件模拟的具有完整硬件系统功能的、运行在一个完全隔离环境中的完整计算机系统。

虚拟系统通过生成现有操作系统的全新虚拟镜像,它具有真实windows系统完全一样的功能,进入虚拟系统后,所有操作都是在这个全新的独立的虚拟系统里面进行,可以独立安装运行软件,保存数据,拥有自己的独立桌面,不会对真正的系统产生任何影响 ,而且具有能够在现有系统与虚拟镜像之间灵活切换的一类操作系统。

什么是VMware

VMWare (Virtual Machine ware)是一个“虚拟PC”软件公司

VMwareWorkstation可以使你在一台机器上同时运行二个或更多Windows、DOS、LINUX系统系统。与“多启动”系统相比,VMWare采用了完全不同的概念。多启动系统在一个时刻只能运行一个系统,在系统切换时需要重新启动机器。

VMWare是真正“同时”运行,多个操作系统在主系统的平台上,就象标准Windows应用程序那样切换。而且每个操作系统你都可以进行虚拟的分区、配置而不影响真实硬盘的数据,你甚至可以通过网卡将几台虚拟机用网卡连接为一个局域网,极其方便。

安装在VMware操作系统性能上比直接安装在硬盘上的系统低不少,因此,比较适合学习和测试。

为什么使用VMware?

因为我们想要在一台机器使用两个操作系统,就需要另一个空间来存放我们的第二个操作系统,有人说,你为什么不安装双系统?

双系统本质是划分了两个不同的空间,来分别安装一个系统,但是我们从一个系统切换到另一个系统是需要重启机器的,很不方便。

VMware使用优势:

  • 利用虚拟机搭建Linux学习环境简单方便、容易上手,真是的工作场景也是通过ssh连接服务器,而不是在机房操控服务器。

  • 搭建Linux集群或者需要模拟多台服务器通信的时候,可以同时开启好几台虚拟机,虚拟机可以轻松满足多机器的需求。

  • 很容易修改虚拟机(服务器)的配置,且不会影响自己的电脑,想删除虚拟机也不会影响电脑,因为虚拟机只是运行在电脑上的一个程序(一堆文件)

VMware的安装

很简单,下载好安装包后解压出来,进入安装界面。

Centos7和shell的安装

Centos7下载

要安装centos系统,就必须得有centos系统软件安装程序,可以通过浏览器访问centos官网http://www.centos.org,然后找到Downloads - > mirrors链接,点击后进入下载,但是由于这是国外的网址,下载速度肯定受限。

这里我们使用国内的镜像源

https://opsx.alibaba.com/mirror#阿里云官方镜像站 iso下载地址(此DVD映像包含可以使用该软件安装的所有软件包安装程序。这是大多数用户的推荐图像。):https://mirrors.aliyun.com/centos/7/isos/x86_64/CentOS-7-x86_64-DVD-1804.iso

Centos7安装

安装过程步骤有点多,这里我录了一个gif的图片,还有选项好后,安装时间可能比较长,需要耐心等待。

安装好后,接下来需要做的就是配置centos7,详细配置图如下:

用户设置

安装过程的注意事项

  • 在SYSTEM中的网络配置NETWORK&HOSTNAME中有可能会有问题,出现无法连接到网络的时候,需要修改右下角网络图标中的设置,将网络连接方式该为桥接。这样网络连接就正常了

  • 确保你的电脑支持虚拟化,也就是所谓了VT(虚拟化)技术,没有的话会爆出警告!

解决方法

安装 RHEL 7 或 CentOS 7 系统时,大家的电脑的 CPU 需要支持 VT(Virtualization Technology,虚拟化技术)。所谓 VT,指的是让单台计算机能够分割出多个独立资源区, 并让每个资源区按照需要模拟出系统的一项技术,其本质就是通过中间层实现计算机 资源的管理和再分配,让系统资源的利用率最大化。其实只要您的电脑不是五六年前 买的,价格不低于三千元,它的 CPU 就肯定会支持 VT 的。如果开启虚拟机后依然提 示“CPU 不支持 VT 技术”等报错信息,请重启电脑并进入到 BIOS 中把 VT 虚拟化功 能开启即可.

root用户更改密码

root密码忘记了。。。

重启 Linux 系统主机并出现引导界面时,按下键盘上的 e 键进入内核编辑界面

 

在 linux16 参数这行的最后面追加“rd.break”参数,然后按下 Ctrl + X 组合键来运行修改过的内核程序。

大约 30 秒过后,进入到系统的紧急求援模式,

接下来输入如下命令即可

1
2
3
4
5
mount -o remount,rw /sysroot
chroot /sysroot
passwd
touch /.autorelabel
exit reboot

Xshell远程连接

Xshell安装过程也很简单,下一步就行。

为什么使用远程连接Linux

在实际的工作场景中,虚拟机界面或者物理服务器本地的终端都是很少接触的,因为服务器装完系统之后,都要拉倒IDC机房托管,如果是购买的云主机,那更碰不到服务器本体了,只能通过远程连接的方式管理自己的Linux系统。

因此在装好Linux系统之后,使用的第一步应该是配置好客户端软件(ssh软件进行连接)连接Linux系统。

远程连接Linux一般通过两个软件

  • Xshell
  • SecureCRT

远程连接知识基础

ip地址:也就是服务器的位置,互联网上的计算机都会有一个唯一的32位的ip地址,如同家里的门牌号,对应到服务器的位置。

局域网:(针对自己班级/家庭所在环境)里也有预留的ip地址,一般是192/10/172开头,局域网的IP地址也是唯一的。

windows查看ip命令:cmd终端下

1
2
3
# 在cmd终端敲下:
ipconfig
查看“以太网适配器 本地连接  IPv4”的Ip地址就是自身网线的ip地址了

 Linux下查看ip方式:

1
2
方式1:ip addr
方式2: ifconfig

外网ip

可以对全世界提供服务的网络地址。

查看或配置网卡信息

  • ifconfig:configure a network interface-查看或配置计算机当前的网卡配置
  • ping ip地址:ping-检测到目标ip地址的链接是否正常

 一套计算机中有可能会有一个物理网卡和多个虚拟网卡,在Linux中物理网卡的名字通常以ensXX表示

127.0.0.1被称为本地回环/环回地址,一般用来测试本机网卡是否正常。

虚拟机网路配置

  • 主机模式host only

单机模式,了解

  • NAT模式

电脑宿主机的ip在局域网内是唯一的,选择了NAT模式创建虚拟机,虚拟机就是一个新的局域网

 

  • 桥接模式

用此模式,就是局域网中一台独立的主机,它可以访问该类网段任意一台机器

端口的概念

端口在网络编程的概念中都已经涉及到过,这里在简单再提一提。

一台服务器可以有一个ip地址,例如是192.168.11.1,服务器是需要对外提供服务的,例如web服务,FTP服务。那么仅凭ip地址,主机无法区分不同的服务,ip地址和网络服务是一对多的关系,一个ip提供多个服务,因此就有了“端口号”来区分不同的服务器的。

端口(port)的设计规定是有65536这么多端口,每个端口对应唯一的程序,0-1024端口之间被操作系统占用,因此开发人员能使用的是1024-65536区间的端口。

  • 通过ip地址可以访问到网络中的计算机
  • 通过port端口可以访问到计算机上的某个应用程序

协议的概念

protocol是为网络中的数据交换而建立的规则、标准或者约定,两个实体要通信,必须有同一种语言。

常见协议有超文本传输协议(HTTP)、文件传输协议(FTP),简单邮件传输协议(SMTP)、网络通信协议(TCP)、用户数据报协议(UDP)

Xshell远程连接

Xshell远程连接Linux

Xshell窗口下运行命令

ssh 用户名@ip地址 (默认22端口) ssh root@192.168.16.12

 在弹出的窗口中输入当前连接用户的密码即可,这样你就可以愉快的通过Xshell来连接Linux玩耍了。

Linux切换虚拟终端

Linux总共为我们提供了七个命令终端,分别用两个ctrl+Alt+F[1~6]

ctrl+Alt+F[1~6],如想切换到第二号虚拟终端,则同时按Ctrl+Alt+F2

查看终端信息shell命令

1
2
3
tty          查看当前终端
who am i 仅显示当前用户正在使用的终端和登录时间
w            查看所有终端(功能最全,显示用户名,终端标记,登录时间,负载等信息)

 

配置SSHD服务

SSH(Secure Shell)是一种能够以安全的方式提供远程登录的协议,也是目前远程管理 Linux 系统的首选方式。在此之前,一般使用 FTP 或 Telnet 来进行远程登录。但是因为它们 以明文的形式在网络中传输账户密码和数据信息,因此很不安全,很容易受到黑客发起的中 间人攻击,这轻则篡改传输的数据信息,重则直接抓取服务器的账户密码。

想要使用 SSH 协议来远程管理 Linux 系统,则需要部署配置 sshd 服务程序。sshd 是基于 SSH 协议开发的一款远程管理服务程序,不仅使用起来方便快捷,而且能够提供两种安全验证的方法:

  1. 基于口令的验证-------用账号和密码登录
  2. 基于密钥的验证-------需要在本地生成密钥对,然后把密钥对中的公钥上传至服务器,并与服务器中的公钥进行比较;

“Linux一切接文件”,也就是在Linux系统中修改服务程序,都得去修改它对应的配置文件,sshd程序的配置文件是/etc/ssh/sshd_config,检查配置文件参数

1
grep -v '^#' /etc/ssh/sshd_config |grep -v '^$'

在RHEL7系统中,已经默认安装启动了SSHD服务,

使用密码登录

1
ssh 192.168.12.15

基于口令的认证

在第一次登录的时候,系统会出现下面的提示信息

The authenticity of host 'ssh-server.example.com (12.18.429.21)' can't be established. RSA key fingerprint is 98:2e:d7:e0:de:9f:ac:67:28:c2:42:2d:37:16:58:4d. Are you sure you want to continue connecting (yes/no)?

上面的信息说的是:无法确认主机ssh-server.example.com(12.18.429.21)的真实性,不过知道它的公钥指纹,是否继续连接?

输入yes之后,那么该host key会被加入到Client的known_hosts中,格式如下

1
pyyuc.cn,123.206.16.61 ecdsa-sha2-nistp256....

 终端提示如下:

1
2
Warning: Permanently added 'ssh-server.example.com,12.18.429.21' (RSA) to the list of known hosts.
Password: (enter password)

提示该host已经被确认,并追加到文件known_hosts中,然后就要输入密码,之后的流程如图。

 

注意:私钥是server端独有的,即使client的信息泄露,也没有私钥进行解密,保证数据安全。

使用安全秘钥

加密是对信息进行编码和解码的技术,它通过一定的算法将原本可以直接阅读的铭文信息转换成密文。密钥就是密文的钥匙,有私钥和公钥之分。

在数据传输时,担心被他人监听或截获,就可以在传输前先使用公钥对数据加密处理,然后再传送。这样只有掌握私钥的用户才能解密这段数据,除此之外的其让人即使截取了数据,也很难将其破解成明文。

基于公钥的免密登录

1.在客户端生成“秘钥对”

1
ssh-keygen

2.第二步:把客户端主机中生成的公钥文件传送至远程主机:

3.对服务器端进行设置,使其只能允许秘钥登录,拒绝口令登录,然后重启sshd服务。

1
2
3
4
vim /etc/ssh/sshd_config
PasswordAuthentication no
 
systemctl restart sshd

4.在客户端即可免密登录服务器了

1
ssh root@123.206.16.61

 

 

 

posted @ 2019-06-27 19:49  blog_wu  阅读(199)  评论(0编辑  收藏  举报