文章目录
- 第一章: Linux概述
- 1.1 操作系统
- 1.2 操作系统的发展史
- 1.3 Linux发行版
- 第二章WSL安装linux
- 2.1 WSL简介
- 2.2安装Ubuntu
- 2.3 Ubuntu功能设置
- 2.4 ubantu环境设置
- 第三章: 使用VM安装Linux
- 3.1安装VMware
- 3.2 配置安装系统环境
- 3.3 安装Centos系统
- 3.4 基本配置与SSH远程
- 第四章 Linux网络
- 4.1 Linux网络配置文件
第一章: Linux概述
1.1 操作系统
- 定义:操作系统(Operating System,简称OS)是管理计算机硬件与软件资源的计算机程序
- 作用:是把计算机系统中对硬件设备的操作封装起来,供应用软件调用,也是提供一个让用户与系统交互的操作界面。
在我们的常见的操作系统中有
- PC端:Windows、 MacOS、Linux
- 移动端OS:安卓、苹果、鸿蒙
1.2 操作系统的发展史
1. Unix
1965年之前的时候,电脑并不像现在一样普遍,它可不是一般人能碰的起的,除非是军事或者学院的研究机构,而且当时大型主机至多能提供30台终端(30个键盘、显示器),连接一台电脑。为了解决数量不够用的问题:
-
1965年左后由贝尔实验室、麻省理工学院 以及 通用电气共同发起了Multics项目,想让大型主机支持300台终端
-
1969年前后这个项目进度缓慢,资金短缺,贝尔实验室退出了研究
-
1969年从这个项目中退出的Ken Thompson当时在实验室无聊时,为了让一台空闲的电脑上能够运行“星际旅行”游行,在8月份左右趁着其妻子探亲的时间,用了1个月的时间 编写出了 Unix操作系统的原型
-
1970年,美国贝尔实验室的 Ken Thompson,以 BCPL语言 为基础,设计出很简单且很接近硬件的 B语言(取BCPL的首字母),并且他用B语言写了第一个UNIX操作系统。
-
因为B语言的跨平台性较差,为了能够在其他的电脑上也能够运行这个非常棒的Unix操作系统,Dennis Ritchie和Ken Thompson 从B语言的基础上准备研究一个更好的语言
-
1972年,美国贝尔实验室的 Dennis Ritchie在B语言的基础上最终设计出了一种新的语言,他取了BCPL的第二个字母作为这种语言的名字,这就是C语言
-
1973年初,C语言的主体完成。Thompson和Ritchie迫不及待地开始用它完全重写了现在大名鼎鼎的Unix操作系统
早期的Unix系统都是针对专门的硬件系统开发的,不同厂商都是为自己的服务器开发专门的Unix操作系统。
2. Minix
因为AT&T(通用电气)的政策改变,在Version 7 Unix推出之后,发布新的使用条款,将UNIX源代码私有化,在大学中不再能使用UNIX源代码。Andrew S. Tanenbaum(塔能鲍姆)教授为了能在课堂上教授学生操作系统运作的实务细节,决定在不使用任何AT&T的源代码前提下,自行开发与UNIX兼容的操作系统,以避免版权上的争议。他以小型UNIX(mini-UNIX)之意,将它称为MINIX。
3. Linux
因为Minix只是教学使用,因此功能并不强,因此Torvalds利用GNU的bash当做开发环境,gcc当做编译工具,编写了Linux内核-v0.02,但是一开始Linux并不能兼容Unix,即Unix上跑的应用程序不能在Linux上跑,即应用程序与内核之间的接口不一致,因为Unix是遵循POSIX规范的,因此Torvalds修改了Linux,并遵循POSIX(Portable Operating System Interface,他规范了应用程序与内核的接口规范); 一开始Linux只适用于386,后来经过全世界的网友的帮助,最终能够兼容多种硬件;
Minix最有名的学生用户是Linus Torvalds,他在芬兰的赫尔辛基大学用Minix操作平台建立了一个新的操作系统的内核,他把它叫做Linux。Linux内核最初只是由芬兰人**林纳斯·托瓦兹(Linus Torvalds)**在赫尔辛基大学上学时出于个人爱好而编写的。
Linux是一套免费使用和自由传播的类Unix操作系统,是一个基于POSIX和UNIX的多用户、多任务、支持多线程和多CPU的操作系统,能运行主要的UNIX工具软件、应用程序和网络协议。它支持32位和64位硬件。Linux继承了Unix以网络为核心的设计思想,是一个性能稳定的多用户网络操作系统。
目前市面上较知名的发行版有:Ubuntu、RedHat、CentOS、Debain、Fedora、SuSE、OpenSUSE。
4. Unix与Linux区别
Linux和UNIX的最大的区别是,前者是开放源代码的自由软件,而后者是对源代码实行知识产权保护的传统商业软件。这种不同体现在用户对前者有很高的自主权,而对后者却只能去被动的适应;这种不同还表现在前者的开发是处在一个完全开放的环境之中,而后者的开发完全是处在一个黑箱之中,只有相关的开发人员才能 够接触的产品的原型 。 具体区别如下:
- UNIX系统大多是与硬件配套的,而Linux则可运行在多种硬件平台上.
- UNIX是商业软件,收费,而Linux是自由软件,免费、公开源代码的.
- Linux商业化的有RedHat Linux 、SuSe Linux、slakeware Linux、国内的红旗等,还有Turbo Linux.
- Unix主要有Sun 的Solaris、IBM的AIX, HP的HP-UX,以及x86平台的的SCO Unix/Unixware.
1.3 Linux发行版
内核(kernel)是系统的心脏,是运行程序和管理像磁盘和打印机等硬件设备的核心程序,它提供了一个在裸设备与应用程序间的抽象层。
Linux内核版本又分为稳定版和开发版,两种版本是相互关联,相互循环:
- 稳定版:具有工业级强度,可以广泛地应用和部署。新的稳定版相对于较旧的只是修正一些bug或加入一些新的驱动程序。
- 开发版:由于要试验各种解决方案,所以变化很快。
内核源码网址:http://www.kernel.org 所有来自全世界的对Linux源码的修改最终都会汇总到这个网站,由Linus领导的开源社区对其进行甄别和修改最终决定是否进入到Linux主线内核源码中。
Linux
发行版 (也被叫做 GNU/Linux 发行版) 通常包含了包括桌面环境、办公套件、媒体播放器、数据库等应用软件。
排行 | 版本 | 描述 |
---|---|---|
1 | MX Linux | 基于Debian和antiX |
2 | Linux Mint | 基于Ubuntu和Debian |
3 | Ubuntu | 顶级Linux发行版之一 |
4 | Elementary OS | 基于Debian |
5 | Manjaro Linux | 基于Arch Linux |
6 | Zorin OS | 基于Debian |
7 | Fedora | 软件技术方面处于领先地位 |
8 | Debian | 设计得非常稳定 |
9 | CentOS | 基于Fedora和Red Hat的企业最佳Linux |
10 | Kali Linux | 基于Debian |
Linux能做什么?
Linux可作为企业级服务器,或嵌入式开发平台也包含个人桌面系统。包含虚拟化、数据库服务器、Web服务器、开发平台等等
- 个人桌面领域的应用
- 此领域是传统linux应用最薄弱的环节,传统linux由于界面简单、操作复杂、应用软件少的缺点,一直被windows所压制,但近些年来随着ubuntu、fedora等优秀桌面环境的兴起,同时各大硬件厂商对其支持的加大,linux在个人桌面领域的占有率在逐渐的提高
- 典型代表:ubuntu、fedora、suse linux
- 服务器领域
- linux在服务器领域的应用是其重要分支
- linux免费、稳定、高效等特点在这里得到了很好的体现,但早期因为维护、运行等原因同样受到了很大的限制,但近些年来linux服务器市场得到了飞速的提升,尤其在一些高端领域尤为广泛
- 嵌入式领域
- linux运行稳定、对网络的良好支持性、低成本,且可以根据需要进行软件裁剪,内核最小可以达到几百KB等特点,使其近些年来在嵌入式领域的应用得到非常大的提高
第二章WSL安装linux
2.1 WSL简介
参考《WSL官方文档》、《颠覆虚拟机的神器——WSL来了》、《Microsoft Learn:WSL 入门》
WSL2与VMware不兼容,启动一个之后另一个无法直接启动。解决办法:
- 将WSL2降级成WSL1(WSL1可以兼容VMware)
- 启用VMware时cmd管理员模式输入命令
bcdedit /set hypervisorlaunchtype off
,启用WSL2时输入bcdedit /set hypervisorlaunchtype auto
。输入bcdedit /enum
可以查看是否修改成功,之后可能要重启生效。
WSL是windows10的一个子系统(windows subsystem for linux),其作用是在windows下运行GNU/linux操作系统 (包括大多数命令行工具、实用工具和应用程序),且不会产生传统虚拟机或双启动设置开销。
在从使用者的角度看,wsl和虚拟机软件是类似的,都可以装linux操作系统,使用其各种功能;但底层实现不一样,wsl运行linux的资源开销没有在虚拟机软件中运行linux的资源开销大。
WSL1.0安装的时候需要打开windows可选功能中的“适用于Linux的Windows子系统”,2.0安装的时候不仅要打开可选功能中的“适用于Linux的Windows子系统”,还要打开“虚拟机平台”这个可选功能。
2.2安装Ubuntu
以管理员运行cmd,可输入以下命令
命令 | 功能 |
---|---|
wsl --list --online | 查看在线商店获 Linux 版本列表 |
wsl --list --verbose | 列出已安装的 Linux 发行版 |
wsl-cd dir | 更换工作目录 |
wsl --distribution <Distribution Name> --user <User Name> | 通过特定用户运行特定 Linux 发行版 |
wsl --import <Distribution Name> <InstallLocation> <FileName> | 导入指定的 tar 文件作为新的分发版 |
wsl --unregister <DistributionName> | 注销或卸载 Linux 发行版 |
wsl --help | 查看帮助 |
wsl --export Ubuntu G:\WSL\myUbuntu.tar | 备份Ubuntu成tar文件,也可以改别的linux系统名 |
wsl --import Ubuntu install_location file_name.tar | wsl迁移 |
wsl --unregister distro_name | 删除wsl |
我使用的默认安装wsl --install -d Ubuntu
,安装后提示输入用户名和密码,之后显示
Welcome to Ubuntu 20.04 LTS (GNU/Linux 4.4.0-19041-Microsoft x86_64)
* Documentation: https://help.ubuntu.com
* Management: https://landscape.canonical.com
* Support: https://ubuntu.com/advantage
此时ubuntu已经在开始菜单栏了,点击就可以打开ubuntu20.04的命令行界面:
建议此时马上备份,然后迁移到别的盘
wsl --export Ubuntu D:\WSL\Ubuntu20.tar # 导出
wsl --unregister Ubuntu # 注销原版本
wsl --set-version2 # 设置默认使用wsl2版本
wsl --import Ubuntu-20.04 D:\Ubuntu D:\WSL\Ubuntu20.tar # 导入
2.3 Ubuntu功能设置
这部分内容参考《设置 WSL 开发环境》。
- 在资源管理器输入
\\wsl$
,会列出所有安装的linux系统,点击进入就可以看到文件:(如果你指定迁移到别的盘,比如上面就装在D:\Ubuntu,文件就在这里)
下面都是一些介绍功能,我git在windows上都装了,跳过
-
建议使用 Visual Studio Code 或 Visual Studio,因为它们直接支持使用 WSL 进行远程开发和调试。Visual Studio Code 使你能够将 WSL 用作功能完备的开发环境。 Visual Studio 提供了对 C++ 跨平台开发的本机 WSL 支持。
-
使用 Git 设置版本管理:参考git分布指南。将项目连接到 Git 版本控制系统,同时使用凭据管理器进行身份验证(,使用 Git Ignore 文件,了解 Git 行尾,以及使用内置到 VS Code 的 Git 命令(可使用Git for Windows在 WSL 和 Windows 主机之间共享凭据&设置,之前装过Git就不用再装了)
-
使用 Docker 设置远程开发容器:参考《WSL 2 上的 Docker 远程容器入门》,使用 Docker Desktop for Windows 将项目连接到远程开发容器。
-
设置数据库:按照此分步指南开始使用 WSL 上的数据库,并将项目连接到 WSL 环境中的数据库。(MySQL、PostgreSQL、MongoDB、Redis、Microsoft SQL Server 或 SQLite。)
-
设置 GPU 加速以提高性能
2.4 ubantu环境设置
- apt换源更新
首先apt换源,不然下载太慢。参考《Ubuntu更换国内源(apt更换源)》
# 修改sources.list配置文件:
sudo vim /etc/apt/sources.list
# 在文件最前面添加以下条目来更新源,保险起见,的操作之前做好备份
# 阿里源
deb http://mirrors.aliyun.com/ubuntu/ bionic main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ bionic-security main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ bionic-updates main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ bionic-proposed main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ bionic-backports main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic-security main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic-updates main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic-proposed main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic-backports main restricted universe multiverse
# 清华源:
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic main restricted universe multiverse
deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-updates main restricted universe multiverse
deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-updates main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-backports main restricted universe multiverse
deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-backports main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-security main restricted universe multiverse
deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-security main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-proposed main restricted universe multiverse
deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-proposed main restricted universe multiverse
sudo apt-get update # 更新源
sudo apt install python3.9
su - # 进入root环境
su username # user用户登录
2.安装miniconda(pip没配好,可跳过)
# 下载安装miniconda
wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh
# 给安装文件添加执行指令
sudo chmod +x Miniconda3-latest-Linux-x86_64.sh
# 安装
sudo ./Miniconda3-latest-Linux-x86_64.sh
中间两次yes(同意条款和初始化),然后选择路径:
Miniconda3 will now be installed into this location:
/root/miniconda3
- Press ENTER to confirm the location
- Press CTRL-C to abort the installation
- Or specify a different location below
[/root/miniconda3] >>> 这里可以输入路径,例如:/opt/miniconda
我这里直接选择默认,装在/root/miniconda3
,然后设置环境变量:
vim ~/.bashrc
# 最后一行添加下面路径
export PATH="/root/miniconda3/bin:$PATH"
alias python='/usr/bin/python3.9' # 配置python3.9
source ~/.bashrc # 生效环境变量
python # 显示python3.9说明配置成功
conda create -n vced python==3.9 # 创建虚拟环境,配置python3.9,环境名叫做vced
报错CondaHTTPError: HTTP 000 CONNECTION FAILED for url
,此时退出ubantu,cmd输入wsl --shutdown
关闭之后再重启ubantu,输入su -进入root模式。再创建环境,如果还是不行就 conda换源:
vim ~/.condarc #编辑配置文件,加入以下代码
channels:
- http://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
- http://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/conda-forge/
- http://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/msys2/free/
- https://mirrors.ustc.edu.cn/anaconda/pkgs/free/
show_channel_urls: true
remote_read_timeout_secs: 1000.0
conda activate vced # 激活环境
conda info --envs # 验证是否成功
conda update -n base conda //update最新版本的conda
conda create -n xxxx python=3.5 //创建python3.5的xxxx虚拟环境
conda activate xxxx //开启xxxx环境
conda deactivate //关闭环境
conda env list //显示所有的虚拟环境
环境激活成功,但是pip有问题。/usr/local/bin/python3.9 -m pip install --upgrade pip升级pip出错。
- 安装pip并换源
sudo apt install python3-pip # 安装pip
#考虑到下载很慢,请在Ubuntu系统中配置pip源
mkdir ~/.pip
vim ~/.pip/pip.conf
# 豆瓣源
[global]
trusted-host = pypi.douban.com
index-url = http://pypi.douban.com/simple
# 清华源
[global]
trusted-host = pypi.tuna.tsinghua.edu.cn
index-url = https://pypi.tuna.tsinghua.edu.cn/simple
# requirements.txt安装包
cd code/service
pip install -r requirements.txt
- pip安装时警告The script pysemver is installed in ‘/home/zhxscut/.local/bin’ which is not on PATH,运行以下代码
- 我安装过程中出现一次下载torch时ssl错误,重新pip安装就没了,不知道为啥
- 安装完全部文件后试了一次备份操作wsl --export Ubuntu Ubuntu20.tar,花了半个小时左右。所以WSL备份不如vmware方便。
sudo vim ~/.zshrc
#把export PATH=/home/zhxscut/.local/bin/:$PATH 放到最后
source ~/.zshrc # 忘记运行此命令,结果下面运行streamlit run app.py时显示没有streamlit这个命令
第三章: 使用VM安装Linux
3.1安装VMware
这里安装Vm主要是为了安装Linux系统,除了相对云服务器,比较大众化的操作,当然更多的是熟悉Linux操作
1. 点击 官网下载链接,以VM15的版本为例:
2. 接受协议,更改安装位置开始安装,勾选增强型键盘驱动程序。
3. 自行选择
4. 安装完成
(注意:许可证为激活,可以自己搜)
5. 安装成功后,先不重启电脑。打开任务管理器, 点击性能,选择CPU, 看到虚拟化这里显示已禁用。(如果是空白或者显示已启用可以直接跳过直接去到Linux安装)
6. 开启虚拟化
电脑开机重启后显示logo图标按ESC或者F1键,进入BIOS界面,然后选择Security
→ 选择VIrtualization
虚拟化功能设置,(这里是联想笔记本,不同主板显示不同,可以百度搜索熟悉详细信息)将这里的DIsabled
修改为Enabled
,回车F10 Yes 保存。
- 重启后查看虚拟化,显示已启用
3.2 配置安装系统环境
这里以Centos7.6发行版为例,介绍linux的安装。
简单介绍一下Centos:
CentOS 是一个基于Red Hat Linux 提供的可自由使用源代码的企业级Linux发行版本。每个版本的 CentOS都会获得十年的支持(通过安全更新方式)。新版本的 CentOS 大约每两年发行一次,而每个版本的 CentOS 会定期(大概每六个月)更新一次,以便支持新的硬件。这样,建立一个安全、低维护、稳定、高预测性、高重复性的 Linux 环境。CentOS是Community Enterprise Operating System的缩写。
CentOS 是RHEL(Red Hat Enterprise Linux)源代码再编译的产物,而且在RHEL的基础上修正了不少已知的 Bug ,相对于其他 Linux 发行版,其稳定性值得信赖
如果有想尝试其他的Linux系统,可以模仿类似的操作完成其他类型的系统安装
1.在centos官网下载Centos7.6镜像文件
选择isos→x86_64→CentOS-7-x86_64-DVD-1708.iso下载
(注意如果有跳到如图下方这个界面,这里面选择第一个即可,剩下的也是相同的操作)
2. 配置安装服务器
打开VMware Workstation Pro软件,选择文件点击新建虚拟机,选择自定义→默认选择Workstation15.x
3. 开始安装
选择稍后安装操作系统→Linux Centos 7 64 位→自定义安装位置和虚拟机名称
- 选择处理器和内存
我这里选择 2处理器 每个处理器1内核
Windows图标+R键打开命令行输入msinfo32,可以查看处理器信息(下图显示2个内核 4个逻辑处理器):
如果电脑是8G内存,虚拟机可以选择3G或者4G,如果电脑是4G内存,虚拟机可以选择1G或者2G,无论多大多小的内存,1G至4G的范围即可。
- 选择NAT网络→推荐→SCSI →创建虚拟磁盘,将磁盘拆分成多个文件→完成安装
磁盘文件明及存储位置,一般我们前面设置了安装位置,默认即可不用修改
这里面如果之前有哪里写的不对或者写的存在一些问题,可以自定义修改文件,点击完成
3.3 安装Centos系统
当在虚拟机系统内输入内容后,需要切换到 宿主机 (当前虚拟机安装在本地环境上的设备)键盘时,按住Ctrl+Alt,将鼠标退出虚拟机。
1. 编辑虚拟机设置 → CD/DVD → 使用ISO映像文件
这里的映像文件就是我们从官方网站的文档树下载下来的ISO文件
2. 开启此虚拟机
界面第一次会这样显示,选择安装centos(白色的表示选中状态)
这里可以选择按 ENTEN 或者不操作也可以,会自动安装
3. 配置
选择English→DATE & TIME设置时间为亚洲上海
这里列出一些其它信息:
4. 自动配置分区
以上除了分区需要点击一下,其他配置可以不用配置,后面会根据环境操作配置.选择INSTALLATION DESTINATION ,点击Done →Begin Installation
- 配置root超级管理员账号的密码,和 创建用户账号,点击Reboot重启系统
这里只是创建方法之一,接下来的操作暂时使用root账号熟悉管理员权限及了解系统
- 重启登录
切换用户可以使用su root/username
- CentOS7的重启与关机命令
注意一般服务器是不会经常开关机,就算是最多也是重启的操作会用的多一些,
Linux centos重启命令:
1、reboot 普通重启
2、shutdown -r now 立刻重启(root用户使用)
3、shutdown -r 10 过10分钟自动重启(root用户使用)
4、shutdown -r 20:35 在时间为20:35时候重启(root用户使用)
如果是通过shutdown命令设置重启的话,可以用shutdown -c命令取消重启
Linux centos关机命令:
1、halt 立刻关机
2、poweroff 立刻关机
3、shutdown -h now 立刻关机(root用户使用)
4、shutdown -h 10 10分钟后自动关机
如果是通过shutdown命令设置关机的话,可以用shutdown -c命令取消重启
注意强制关机可能会导致进程的数据丢失,使系统处于不稳定的状态,甚至在有的系统中会损坏硬件设备。而在系统关机前使用 shutdown命令﹐系统管理员会通知所有登录的用户系统将要关闭。并且login指令会被冻结,即新的用户不能再登录。直接关机或者延迟一定的时间才关机都是可能的﹐还可能重启。这是由所有进程〔process〕都会收到系统所送达的信号〔signal〕决定的。这让像vi之类的程序有时间储存目前正在编辑的文档﹐而像处理邮件〔mail〕和新闻〔news〕的程序则可以正常地离开等等
3.4 基本配置与SSH远程
安装完VM与系统后,需要进行网络配置。第一个目标为可以进行SSH连接,可以从本机到VM进行文件传送。这里我们配置静态IP, 同时需要先下载安装一款远程软件 FinalShell
(Windows下载、macOS 下载)。安装好后,配置Centos的网络
- 熟悉自己的网络信息例如:IP,子网掩码,网关等等
打开网络和共享中心→详细信息。记录IP,子网掩码,默认网关,DNS服务器等信息,等会配置Centos系统要用到
- 打开VM,点击编辑虚拟机设置,选择网络适配器, 选择桥接模式
这里简单介绍一下三种模式
- 桥接模式:VMware 虚拟出来的操作系统就像是局域网中的一台独立的主机,它可以访问网内任何一台机器,需要手工为虚拟系统 配置 IP 地址、子网掩码,而且还要和宿主机器处于同一网段,这样虚拟系统才能和宿主机器进行通信。同时,由于这 个虚拟系统是局域网中的一个独立的主机系统,那么就可以手工配置它的 TCP/IP 配置信息,以实现通过局域网的网关 或路由器访问互联网
- NAT模式:使用 NAT 模式,就是让虚拟系统借助 NAT(网络地址转换)功能,通过宿主机器所在的网络来访问公网。也就是说 使用 NAT 模式可以实现在虚拟系统里访问互联网,但前提是主机可以访问互联网。NAT 模式下的虚拟系统的 TCP/IP 配置信息是由 VMnet8(NAT)虚拟网络的 DHCP 服务器提供的,无法进行手工修改,因此虚拟系统也就无法和本局域 网中的其他真实主机进行通讯
- 主机模式:虚拟网络是一个全封闭的网络,它唯一能够访问的就是主机,当然多个虚拟机之间也可以互相访问。其实 Host-only 网络和 NAT 网络很相似,不同的地方就是 Host-only 网络没有 NAT 服务,所以虚拟网络不能连接到Internet。 主机和虚拟机之间的通信是通过 VMware Network Adepter VMnet1 虚拟网卡来实现的。此时如果想要虚拟机上外 则需要主机联网并且网络共享
- 点击编辑,选择虚拟网络编辑器→更改设置→Vmnet0→选择桥接→点击应用,确定
- VMnet0:用于虚拟桥接网络下的虚拟交换机
- VMnet1:用于虚拟Host-Only网络下的虚拟交换机
- VMnet8:用于虚拟NAT网络下的虚拟交换机
- 配置网络
- 查看网络信息
登录centos,使用命令ip addr查看我们网卡及部分网络信息。在虚拟机内我们使用的是ens33,可以看到现在还是没有网络,更没有ip。
- 切换到网络配置文件路径下,使用vi命令编辑ifcfg-en33 文件
[root@localhost ~]# cd /etc/sysconfig/network-scripts/ # 切换路径
[root@localhost ~]# ls # 查看当前文件夹信息
[root@localhost ~]# vi ifcfg-en33
此时是命令模型,按i键 进入编辑模式,修改如下参数:
BOOTPROYTO=DHCP 修改为 BOOTPROYTO=static
ONBOOT=no 修改为 ONBOOT=yes
增加:
# 增加IP,这里的ip需要时在同一个网段下即可
IPADDR=192.168.0.150
# 子网掩码与主机一直即可
NETMASK=255.255.255.0
# 配置网关与主机一直即可
GATEWAY=192.168.0.1
# 这里的DNS可以写上网关或者是国内解析例如114.114.114.114或者是8.8.8.8
DNS1=192.168.0.1
DNS2=114.114.114.114
改完后 按键ESC键退出编辑模式,然后按 Shift+; 进入命令模式, 输入 wq 保存退出
- 重启服务,验证
输入service network restart
重启网络服务,此时就配置好了网络
我们连接外网看看,例如输入ping www.baidu.com
ping一下百度。另外因为使用桥接模式,在同一个局域网下,如果不放心,可以尝试ping一下是否能ping通主机ip
再查看一下我们的ip,可以看到其显示的 是我们刚才设置的静态IP
4. 远程工具连接
之所以用到远程工具连接,虽然Linux可以多窗口多任务操作,但是不可能直接在机房操作硬件, 在项目或者是多人使用形况下是会有多用户远程连接操作。
首先打开Xshell。点击最上方的文件夹图标。选择第一个带+号的白色文件夹图标,最后点击SSH连接
输入配置信息
- 主机:这里填上主机的IP,如果是云服务器可以填云服务器的IP
- 端口:这里一般安装好的电脑22端口是默认的打开的,后面会详细说明
- 认证方法这里,我们以密码认证
- 用户名:账号登陆的用户名
- 密码:登录的用户名密码
- 下方高级默认即可,可以不用动
右键选择创建好的远程程序,点击连接→接受本次连接
至此,关于VM与Linux的配置都初步配置好,下一章开始全面学习Centos。
第四章 Linux网络
4.1 Linux网络配置文件
查看第一张网卡的网卡信息:
[root@localhost yum.repos.d]# cat vi /etc/sysconfig/network-scripts/ifcfg-ens33
TYPE=Ethernet(以太网类型)
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=static(是否自动获取ip,设为static时可在最后四行设定静态ip)
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=ens33(网络接口的名字)
UUID=fe07c6dd-8437-474f-8c72-37f5555d754e(red网络标识编号,克隆时新系统要删除此项,自动分配新的)
DEVICE=ens33
ONBOOT=yes(是否开机自动启动网卡,yes就是开机自启)
IPADDR=192.168.0.150(此行是linux的虚拟网卡ip)(克隆后的系统此ip要改动,改最后一个数不一样就行)
NETMASK=255.255.255.0(子网掩码,固定值)
GATEWAY=192.168.0.1(默认网关,就是net设置里面的网关,不是虚拟网络设置主界面的值)
DNS1=192.168.0.1
每次修改之后要重启网卡设置:
service network restart
配置 | 说明 |
---|---|
DEVICE=eth0 | 网卡设备名,eth0表示第一张网卡 |
BOOTPROTO=none | none、static、为静态ip(自己手输)dhcp为动态获取ip |
HWADDR=00:0C:29:11:30:39 | MAC地址 |
NM_CONTROLLED=yes | 是否可以由Network Manager图形管理工具托管 |
ONBOOT=yes | 是否随网络服务启动当前网卡生效(在CentOS 6 以上的版本中ONBOOT是默认关闭的。) |
TYPE=Ethernet | 网络类型,这里为以太网 |
UUID=5ab36190-a5df-4bf1-94d8-6c126afd05f1 | 唯一识别码 |
IPADDR=192.168.0.200 | IP地址 |
NETMASK=255.255.255.0 | 子网掩码 |
GATEWAY=192.168.0.1 | 网关 |
DNS1=202.106.0.20 | DNS |
IPV6INIT=no | IPv6是否启用,这里设置为不启用 |
USERCTL=no | 是否允许非root用户控制此网卡,这里为不允许 |
说明: 1.自动获取IP的条件是:必须在局域网内存在DHCP服务器。 2.相同UUID网络配置的计算机会导致互相不能上网。
1. hostname查看linux的主机名 , hostnamectl set-hostname修改主机名
[root@localhost yum.repos.d]# hostnamectl查看主机名
[root@192 user](当前用户、当前主机名、当前目录)# hostnamectl
Static hostname: localhost.localdomain(静态主机名)
Transient hostname: 192.168.116.129
Icon name: computer-vm
Chassis: vm
Machine ID: 8f0ea2672c0643638fa0541ca5887b75
Boot ID: 92a55843b7cc4374984b29d3ab1b1624
Virtualization: vmware
Operating System: CentOS Linux 7 (Core)
CPE OS Name: cpe:/o:centos:centos:7
Kernel: Linux 3.10.0-1127.el7.x86_64
Architecture: x86-64
# 修改主机名:(不要有特殊符号、中文和大写)
hostnamectl set-hostname mylinux1
#最好还要修改host
vi /etc/hosts
"""
第三行写上linux的ip地址和主机名 :192.168.23.3 mylinux1
重启之后主机名就更新了,重启命令init 6
"""
- 查看DNS配置文件(DNS服务器地址,这个服务器就是把域名解析成ip地址):
[root@localhost yum.repos.d]# cat /etc/resolv.conf
# Generated by NetworkManager
nameserver 192.168.0.1
# 配置DNS服务器地址为路由器地址,也可以用网上公用的)
# 复制网上公开DNS地址,前面加ping来测试,连接时间少的最好
nameserver
这一项,设置的是域名服务器的地址,多个域名服务器,则在后续添加空格继续补充域名服务器的地址,或者另起一行做类似的nameserver
配置
- 防火墙设置:
查看防火墙状态: systemctl status firewalld.service
绿的running表示防火墙开启
执行关闭命令: systemctl stop firewalld.service
再次执行查看防火墙命令:systemctl status firewalld.service
执行开机禁用防火墙自启命令 : systemctl disable firewalld.service