一、简述VMware中三种网络模式
可能,对于许多接触Linux操作系统的朋友而言,起初都是通过虚拟机软件进行层层深入的学习。而对于其中一种软件——VMware软件的网络连接可能就是初学者的一个难题。可能一直都并不了解所提供的三种网络模式的原理和意义。那么本小节将简单讲述一下有关VMware的三种网络模式:Bridged(桥接模式)、NAT(网络地址转换模式)、Host-Only(仅主机模式)。而此三种分别对应于网卡设备中的VMnet0、VMnet1(或者后期新增创建的)、VMnet8(NAT网卡也只能有一个)
1.1桥接模式
概念:桥接模式就是一种将主机(好比是你的笔记本上的)的网卡与虚拟机的网卡利用虚拟网桥进行通信。
原理理解:对这种模式的理解可以认为是将物理机虚拟为一个交换机,所有桥接设置的虚拟机连接到这个交换机的一个接口上,当然物理机也一样需要连接到这个交换机,也就是说桥接模式下的所有网卡都是交换模式,相互可以访问而且互不干扰。
典型特征:虚拟机的IP地址需要与主机在同一网段,如果需要联网则网关与DNS需要与主机网卡一致。
具体可以再通过下面的图示理解:
1.2网络地址转换模式
NAT模式的话相对来说应该是最熟悉的了。网络地址转换,既然有地址转换,肯定是发生了转变了。NAT模式就比较适合于IP资源紧缺,而且希望虚拟机可以联网的情况。
NAT模式借助的是虚拟的NAT设备以及虚拟的DHCP服务器,从而使得虚拟机可以联网。如下图所示:
1.3仅主机模式
仅主机模式呢,其实说白了就是没有NAT设备的网络模式,仅使用的是VMnet1虚拟网卡与虚拟交换机连接,从而与虚拟机通信,而这种模式就实现了虚拟机与外网的隔离,即独立的一台服务器,只与主机互相通信。如下图所示:
好的,现在大概了解了VMware中三种网络模式的原理了吧,现在继续来聊聊在docker中的网络模式。
二、docker的网络模式
2.1docker网络实现原理
docker使用Linux桥接的方式,即在宿主机虚拟一个docker容器网桥(docker0),docker启动一个 容器时会根据docker网桥的网段分配给容器一个IP地址,这个地址就是容器ip,同时docker就是每个容器的默认网关。因此,同一个宿主机内的容器就可以通过容器ip地址直接通信。
一般情况下,我们在安装和启动docker服务之后使用ifconfig命令即可查看到这个docker0的虚拟网桥设备:
从上面显示的结果来看,默认的容器网关地址为172.17.0.1/16哈!当然loopback网卡是回环网卡,测试验证(TCP/IP连接),virtual bridge则是虚拟网桥(想想KVM【云原生】)
当然,docker网桥是宿主机虚拟出来的,并不是真实存在的网络设备,外部网络是无法通过ip地址直接寻址的,这就表明我们需要通过其他的方式来使外部网络可以访问容器,一般会通过访问宿主机ip结合容器的端口(并且端口一般是进行了端口映射,之后会讲述)进行容器的访问。
2.2docker四种网络模式
下面直接通过下面的表格来区分理解一下docker的四种网络模式
docker网络模式 |
配置 |
说明 |
host |
|
容器和宿主机共享Network namespace |
container模式 |
|
容器和另外一个容器共享Network namespace |
none模式 |
|
容器有独立的Network namespace,但并没有对其进行任何网络设置,如分配veth pair 和网桥连接,配置IP等 |
bridge模式 |
|
默认的模式 |
其实启动docker服务之后,可以使用docker network相关命令控制管理网络,下面我们查看一下网络列表:(默认存在下面三个)下面逐一介绍(结合第一小节的内容来理解docker 中的网络原理)
2.2.1host模式
host模式结合VMware中的仅主机模式即可理解,通过下图表示一下:
从上图可以看出,如果在启动容器后使用的是host模式,那么这个容器将不会获得一个独立的Network Namespace(网络命名空间),而是和宿主机系统共用一个Network Namespace。并且这就意味着容器将不会虚拟出自己的网卡以及配置自己的ip等,而是使用宿主机的ip以及端口。不过呢,在其他方面例如文件系统等还是与之隔离的。
这种方式最大优势在于网络性能比较好但是缺点也很明显——网络的隔离性很弱。
2.2.2container模式
这个模式正如上述表格中的说明一般,是表示指定新创建的容器和已经存在的一个容器共享一个Network Namespace。当然这也表示新建的这个容器不会创建自己的网卡等相关操作,而是和与指定的容器共享这些资源。
这种模式也和上述的host差不多,除了网络方面,其文件系统、进程列表等都是隔离的。
参照下图:
2.2.3none模式
使用none模式,Docker容器拥有自己的Network Namespace,但是,不会对Docker容器进行任何的网络配置。这就表明这个Docker容器没有网卡、IP、路由等信息。需要我们自己为Docker容器添加网卡、配置IP等。这种方式网络的隔离性最为彻底,即表明关闭了容器的网络功能,也无法访问这个容器。
示意图如下:
2.2.4bridge模式
该模式就是我们在启动docker服务后默认的docker网络模式,其会在主机上创建一个名为docker0的虚拟网桥,这个主机上的所有启动的容器就会连接到这个虚拟网桥上。结合VMware中网桥模式原理,想想物理交换机的原理,就不难理解了。
从docker0子网中分配一个IP给容器使用,并设置docker0的IP地址为容器的默认网关。在主机上创建一对虚拟网卡veth pair设备,Docker将veth pair设备的一端放在新创建的容器中(这个veth对我们在OpenStack中见过,笔者觉得可以将之理解为一个桥梁,建立桥两岸的关系而存在的一种虚拟设备),并命名为eth0(容器的网卡),另一端放在主机中,以vethxxx这样类似的名字命名,并将这个网络设备加入到docker0网桥中。
使用docker run -p 命令时,docker实际是在防火墙做了DNAT规则,实现端口转发的功能。
下面通过一个节点的服务器结构图来理解:
当然,这四种模式都不需要手动配置,真正需要配置的是自定义网络。
三、docker网络控制相关命令配置
上面已经给出了对应docker网络控制的命令docker network,下面具体看一下这个命令的具体说明:
docker network的命令用法:
Usage: docker network COMMAND
Manage networks
Commands:
connect Connect a container to a network
create Create a network
disconnect Disconnect a container from a network
inspect Display detailed information on one or more networks
ls List networks
prune Remove all unused networks
rm Remove one or more networks
3.1桥接命令设置
我们通过尝试、排错和验证的方式来配置docker网络。
因为需要NAT地址转换功能,所以需要开启防火墙,但是核心防护还是关了吧。
我们尝试通过docker网桥方式(桥接)给一个容器设置一个ip地址(自定义的),下面看一下命令执行的结果:
首先,由于没有改镜像,所以会先拉取镜像之后创建以及尝试运行容器,但是会遇到报错,报错原因是因为用户自己设置的ip地址只适合于他们自己定义的网络。但是这并不影响镜像的获取与创建,我们尝试运行看看结果:
很显然,结果告诉我们还是上述的原因导致了这个问题,好吧只能删除这个容器了。索性还原为初始化环境吧(其实可以去掉--network bridge就不会报错,但是设置的ip地址会不生效,可以自行尝试一下),我们不指定ip地址来试一下,顺便验证一下不加这个参数试试,最后还原为初始化状态后我们再通过自定义的方式来设置ip地址吧。
进入容器查看ip地址
那么首先我们需要创建一个自定义的子网段,并且给他一个名称,通过这个网段给对应的容器设置固定的ip地址。
查看容器的状态,进入容器查看ip地址
此时发现自定义的网络设置容器ip地址成功了。
1.创建多个阵列后选择左侧的virtual drives选项
2.选择需要设置为下次启动的阵列,并勾选Set Boot Drive,点击Go即设置完成。
3.返回首页,点击Exit退出,重启后则进入DG1阵列。
Centos7如何安装mysql?本教程以Centos7为例
本配置适用于centos7版本
1.安装vim编辑工具
yum install vim -y
2.安装lrzsz上传工具
yum install lrzsz -y
安装完后可以使用rz命令上传所需要的软件工具(最好进入家目录/home在上传方便以后查找,关于如何使用RZ上传文件,请到帮助中心查看标题为centos系统安装rz使用的教程)
3.指定环境版本和上传环境安装包
mysql-5.6.21-linux-glibc2.5-x86_64.tar((具体版本不一定,这边只是随机安装1个版本,具体看需要什么版本))
4.安装关联包
yum -y install perl perl-devel
yum -y install autoconf //此包安装时会安装Data:Dumper模块
yum -y install libaio* // libaio库文件
5.安装mysql5.6.21
6.进入上传文件目录解压mysql-5.6.21-linux-glibc2.5-x86_64.tar.gz文件
[root@vt178m5c home]# tar -zxvf mysql-5.6.21-linux-glibc2.5-x86_64.tar.gz
7.移动解压出的mysql文件到/usr/local下重命名为mysql
[root@vt178m5c home]# mv mysql-5.6.21-linux-glibc2.5-x86_64 /usr/local/mysql
8.添加mysql用户组与用户名
[root@vt178m5c home]# groupadd mysql
[root@vt178m5c home]# useradd -r -g mysql mysql
9.变更mysql文件的用户权限为mysql
[root@vt178m5c home]# chown -R mysql:mysql /usr/local/mysql
10.创建数据库数据存放路径
[root@vt178m5c home]# mkdir -p /data/mysql/data
11.进入mysql解压文件
[root@vt178m5c home]# cd /usr/local/mysql
12.安装初始化数据库
进入scripts文件
[root@vt178m5c mysql]# cd scripts/
初始化数据库,使数据库用户名为mysql 数据库安装目录为/usr/local/mysql 数据库数据存放路径为/data/mysql/data
[root@vt178m5c scripts]# ./mysql_install_db --user=mysql --basedir=/usr/local/mysql --datadir=/data/mysql/data
13.进入mysql的support-files文件中
[root@vt178m5c scripts]# cd /usr/local/mysql/support-files
14.复制my-default.cnf配置文件到/etc下覆盖掉系统默认的my.cnf配置文件
[root@vt178m5c support-files]# cp my-default.cnf /etc/my.cnf
如图提示是否覆盖输入y,回车
15.复制mysql.server启动项脚本到/etc/init.d下命名为mysqld
[root@vt178m5c support-files]# cp mysql.server /etc/init.d/mysqld
16.修改启动项脚本中的两个变更值
[root@vt178m5c support-files]# vim /etc/init.d/mysqld
找到
修改为
basedir=/usr/local/mysql //basedir= 数据库程序文件存放地址
datadir=/data/mysql/data //datadir=数据库数据存放位置
17.配置数据库环境变量
[root@vt178m5c support-files]# vim /etc/profile
在末尾添加
export PATH=$PATH:/usr/local/mysql/bin
保存退出,更新环境变量
[root@vt178m5c support-files]# source /etc/profile
18.修改mysql配置文件my.cnf
[root@vt178m5c support-files]# vim /etc/my.cnf
找到
添加
basedir = /usr/local/mysql
datadir = /data/mysql/data
port = 3306
server_id = 1
socket = /tmp/mysql.sock
log-error = /data/mysql/data/mysql-error.log
19.开启mysql
[root@vt178m5c support-files]# /etc/init.d/mysqld start
mysql开启成功
20.登入到mysql改密码
[root@vt178m5c support-files]# mysql -uroot -p
新安装mysql没有密码直接回车即可
21.登入成功后设置mysql密码
列:设置密码为liut@2018
输入:
update mysql.user set password=PASSWORD('liut@2018') where user='root';
22.刷新权限表
输入:flush privileges;
退出:quit
密码修改完成,下次登入mysql需要输入你设置的密码
1.报错信息 ![img](https://public-1251015552.cos.ap-guangzhou.myqcloud.com/Uploads/image/2023-07-05/1100267a34fac.jpeg) 在用apt-get安装软件包的时候遇到E: Sub-process /usr/bin/dpkg returned an error code (1)问题 2.解决办法: cd /var/lib/dpkg/ mv info/ info_bak mkdir info apt-get update apt-get -f install mv info/* info_bak/ rm -rf info mv info_bak info
开始菜单->设置->更新和安全,点击“查看可选更新”就可以查看到本机目前系统中存在那些更新。
2.找到Windows update并双击,启动类型选择“禁用”,并停止服务
系统有时候还是会启动更新。可以到组策略进行调整。
1.按键盘组合键“Win+R”打开“运行”对话框在输入gpedit.msc 点击确定。
2.计算机配置->管理模板->Windows组件->Windows更新->配置自动更新,双击“配置自动更新”选项,选择“已禁用”即可彻底关闭Windows10更新。
在使用windows10操作系统的时候会误删除一些重要的源文件,造成程序无法正常运行,如何恢复误删的源文件,本文将针对此问题进行详细说明。
1.点击“开始”菜单,选择“Windows系统”右键“命令提示符”选择“更多”,然后点击“以管理员身份运行”。
2. 依次输入命令“Dism/Online/Cleanup-Image/ScanHealth”,“Dism/Online/Cleanup-Image/CheckHealth”,“DISM/Online/Cleanup-image/RestoreHealth”。
3.输入完成后,重启设备,然后打开运行窗口,输入命令“sfc/SCANNOW”即可。
本文简单介绍Windows server 2016如何取消定时更新。
1.打开cmd,输入sconfig,出现如下图:
2.输入5回车,在输入M回车,点击确定完成关闭自动更新。
1.右键桌面然后点击“新建”选择“文本文档”。
2.在记事本中输入“rasdial 宽带连接 ‘宽带账号 ‘宽带密码’”。
3.另存为.bat文件存完以后如下。
4.讲宽带自动连接.bat添加到以下路径:“
C:\Users\Administrator\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup”。
5.添加到路径下即可实现开机自动拨号连接宽带。
1.输入该命令按回车键:`apt-get update && apt-get upgrade -y` ![img](https://public-1251015552.cos.ap-guangzhou.myqcloud.com/Uploads/image/2023-10-12/151853f8226f4.jpeg) 2.输入该命令按回车键:`sed -i 's/stretch/buster/g' /etc/apt/sources.list` ![img](https://public-1251015552.cos.ap-guangzhou.myqcloud.com/Uploads/image/2023-10-12/1518560f33f23.jpeg) 3.输入该命令按回车键:`apt-get update && apt-get upgrade -y` ![img](https://public-1251015552.cos.ap-guangzhou.myqcloud.com/Uploads/image/2023-10-12/151858aba5c11.jpeg) 4.输入该命令按回车键:`apt-get dist-upgrade -y` ![img](https://public-1251015552.cos.ap-guangzhou.myqcloud.com/Uploads/image/2023-10-12/15190084a63eb.jpeg) 5.依照默认选项按回车键,完成后重启系统 ![img](https://public-1251015552.cos.ap-guangzhou.myqcloud.com/Uploads/image/2023-10-12/15190686937a6.jpeg) 6.输入该命令按回车键可查看当前系统版本:`cat /etc/os-release` ![img](https://public-1251015552.cos.ap-guangzhou.myqcloud.com/Uploads/image/2023-10-12/151908f574dd6.jpeg)
本文将介绍如何在华为路由器上配置DHCP服务,实现自动向局域网内的主机分配IP地址的目的。拓扑如下:
DHCP有两种配置方式,具体配置如下:
1.按接口地址池的方式配置:
[Huawei]interface g0/0/0
[Huawei-GigabitEthernet0/0/0]ip add 192.168.1.1 255.255.255.0
[Huawei-GigabitEthernet0/0/0]undo shutdown
[Huawei-GigabitEthernet0/0/0]dhcp select interface
[Huawei-GigabitEthernet0/0/0]dhcp server dns-list 192.168.20.50
[Huawei-GigabitEthernet0/0/0]dhcp server excluded-ip-address 192.168.1.1
[Huawei-GigabitEthernet0/0/0]dhcp server lease day 1
2.按全局地址池的方式配置:
[Huawei]dhcp enable
[Huawei]ip pool qgtest
[Huawei-ip-pool- qgtest]network 192.168.1.0 mask 24
[Huawei-ip-pool- qgtest]gateway-list 192.168.1.1
[Huawei-ip-pool- qgtest]lease day 1
[Huawei]interface g0/0/0
[Huawei-GigabitEthernet0/0/0]dhcp select global