虚拟机安装&&NAT模式&&桥接模式
一.安装VMware
1.进入VMware官网
https://www.vmware.com/cn.html
2.下载VMware
进入官网 --->资源--->工具和培训--->产品下载
搜索对应版本进行下载
3.安装
安装较为简单,选择安装目录时选择自己想要安装目录即可.
安装完成后会要激活码
VMware 2019 v15.x 永久许可证激活密钥(15版本激活码,如果其他版本可能不适用,自行寻找)
激活码1:YG5H2-ANZ0H-M8ERY-TXZZZ-YKRV8
激活码2:UG5J2-0ME12-M89WY-NPWXX-WQH88
激活码3:UA5DR-2ZD4H-089FY-6YQ5T-YPRX6
如果安装报错,说缺一个 “Microsoft VC Redistributable”这样的问题 c++库的问题 安装对应c++库
4.启动
二.下载镜像
虚拟机启动需要镜像,本次下载为centos7的镜像
2.1进入官网下载地址
官网下载链接:http://isoredirect.centos.org/centos/7/isos/x86_64/
2.2选择地址后点进去选择下载
2.3镜像版本说明:
CentOS-7-x86_64-DVD-2009.iso 标准安装版(推荐)
CentOS-7-x86_64-Everything-2009.iso 完整版,集成所有软件(以用来补充系统的软件或者填充本地镜像)
CentOS-7-x86_64-LiveGNOME-2009.iso GNOME桌面版
CentOS-7-x86_64-LiveKDE-2009.iso KDE桌面版
CentOS-7-x86_64-Minimal-2009.iso 精简版,自带的软件最少
CentOS-7-x86_64-NetInstall-2009.iso 网络安装版(从网络安装或者救援系统)
下载完之后找个文件夹保存,建议放在VMware安装文件附件,好找!
三.VMware创建启动虚拟机
创建虚拟机
3.1.点击创建虚拟机
打开VMware点击创建虚拟机
3.2.新建虚拟机向导
直接选择典型(推荐)创建虚拟机
3.3.安装操作系统
选择 安装程序光碟映像文件(iso)
3.4.命名,设置存储位置
命名虚拟机(名字随意,后期可以改)
设置文件位置:虚拟机创建的文件夹
1.如果感觉命名想要修改:
我的计算机下面有你创建的虚拟机--->点击自己创建的虚拟机--->右键--->
进行重命名 就可以更改虚拟机的名字了
3.5.磁盘设置
磁盘大小(推荐的就行)当然你也可以根据自己实际情况修改
3.6.开始创建
设置完毕后自接点击完成就开始创建了!
正在安装 第一次安装启动较慢 耐心等待!!!
四.设置虚拟机
第一次启动需要进行一些必要的设置
4.1.设置语言
4.2.设置安装信息摘要
注意:最好是里面每一项都需要点进去看下设置没有,没有设置完全右下角开始安装图标不会亮!
当然如果嫌这样麻烦直接看哪个选项提示(下方有黄色警告),就点进去那一个看下设置,不想更改的话直接左上角完成就可以了!
设置完毕后点击右下角继续进行安装!
4.3.设置密码及角色
1.首先要设置系统最高权限root用户密码
2.自己创建一个用户并设置密码:例如:windows开机时界面显示的用户。你开机让你输入的密码!
自己设置的密码要牢记,建议设简单点!
设置密码时显示设置过短/简单 左上角完成多点两下就可以了!
设置完毕 点击右下角完成配置
4.4.配置完成
配置完成后提示重启,点击右下角重启!
五.登录验证
重启完毕后等待一会儿,就可以登录虚拟机了!
5.1提示登录
登录时要先输入登录的用户:如:root
密码不会显示
敲下回车提示输入密码:xxx(自己密码)输完密码直接回车,如果输入正确就进入了系统!
5.2登录成功
登录后可以敲些指令验证一下
如:ls :查看文件
ip addr
六.虚拟机联网分析
刚配置的虚拟机还无法与外网通信
6.1.桥接和NAT的对比
vmware为我们提供了三种网络工作模式,它们分别是:Bridged(桥接模式)、NAT(网络地址转换模式)、Host-Only(仅主机模式)。
Bridged(桥接模式)和NAT(网络地址转换模式)的区别:
桥接:通过使用物理机网卡 具有单独ip
NAT :把物理机为路由器进行上网
桥接模式(bridged):
在bridged模式下,VMWare虚拟出来的操作系统就像是局域网中的一台独立的主机,它可以访问网内任何一台机器。主机网卡和虚拟网卡的IP地址处于同一个网段,子网掩码、网关、DNS等参数都相同。
这种方式简单,直接将虚拟网卡桥接到一个物理网卡上面,和linux下一个网卡 绑定两个不同地址类似,实际上是将网卡设置为混杂模式,从而达到侦听多个IP的能力。在此种模式下,虚拟机内部的网卡(例如linux下的eth0)直接连到了物理网卡所在的网络上,可以想象为虚拟机和host机处于对等的地位,在网络关系上是平等的,没有谁在谁后面的问题。
NAT模式:
使用NAT模式可以实现在虚拟系统里访问互联网。就是让虚拟系统借助NAT(网络地址转换)功能,通过宿主机器所在的网络来访问公网。
总结:
1.如果ip有限,建议NAT .
2.如果物理机为笔记本不固定一个地方,又想虚拟机ip固定 建议 NAT
3.如果只是简单联网 建议桥接
6.2联网需求
1、笔记本主机IP为设置自动获取,不管什么情况下,不受虚拟机影响,只要连接外网就可以正常上网;
2、只要笔记本主机可以正常访问外网,启动虚拟机中的CentOS 7系统就可以正常访问外网,无需再进行任何设置;
3、虚拟机设置为固定IP,不管主机在什么网络环境下,是断网环境,还是连接任何网段访问外网的环境下,虚拟机的IP都固定不变,而且使用终端连接,始终不变,正常连接;
所以本次选择NAT模式 桥接模式直接跳到八
七.NAT模式联网
7.1设置虚拟机网络连接方式
按照如下图设置,对照设置即可
7.2.配置虚拟机的NAT模式具体地址参数:
1.编辑–虚拟网络编辑器–更改设置
2.选择VMnet8–取消勾选使用本地DHCP–设置子网IP–网关IP设置(记住此处设置,后面要用到)
说明:修改子网IP设置,实现自由设置固定IP,若你想设置固定IP为192.168.136.2-255,比如192.168.136.0,则子网IP为192.168.136.2;建议不要用:192.168.1.0-255,亲测1网段无法成功;
子网掩码:114.114.114.114 或者 8.8.8.8
NAT设置
DNCP设置
就是设置你ip的范围,IP的设置要跟你网段对应:范围为:192.168.xx.1--254
xx表示网段.
7.3网卡配置
进入linuxxit 进入网络配置界面
vi /etc/sysconfig/network-scripts/ifcfg-ens33
centos7 文件名叫ens33
可以用指令查看该文件名
centos 7 查看ip IP ADDR
其他版本(7以下)
ipconfig
ifconfig
开始配置
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=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=9ddf2947-2e67-4946-a9c8-dda6c4d93a0d
DEVICE=ens33
ONBOOT=yes //开机启动
IPADDR=192.168.137.155 //设置的ip 要与之前设置相同
GATEWAY=192.168.137.2 //网关
NETMASK=255.255.255.0 //子网掩码
DNS1=114.114.114.114 //DNS
DNS2=8.8.8.8
自己对比文件进行修改
修改完毕 保存文件
重启网络服务试配置生效
service network restart
7.4测试
测试时先获取物理机ip 然后ping
ping (ip)
也可以ping百度: ping www.baidu.com
不超时这成功!
7.5其他问题
如果虚拟机可以ping通外网(如百度)也可以ping通物理机(自己的windows电脑)但是物理机不能ping通虚拟机.
1.解决方法一:
重置虚拟网络
点击物理机(windows)网络设置-->网络疑难杂症-一步一步操作
最后重启虚拟机!
2.解决方法二:
点击物理机(windows)网络设置-->更改适配器-->自己联网方式-->
右键属性-->共享(都勾选)-->设置-->都勾选-->确认。退出
然后
保存设置 重新ping进行尝试.
7.6用SSH工具连接
根据设置的ip用ssh进行连接
略
1.如果连接失败,检查虚拟机防火墙
查看防火墙状态:systemctl status firewalld
启动防火墙: systemctl start firewalld
停止防火墙: systemctl stop firewalld
永久关闭防火墙:systemctl disable firewalld
开机自启防火墙:systemctl enable firewalld
如果防火墙关闭还是连接不上
查看ssh的状态:service status sshd
停止:service stop sshd
启动:service start sshd
重启:service restart sshd
2.ssh也没问题如果还连接不上
vi /etc/ssh/sshd_config
进入sshd配置文件
sshd文件常用配置
Port 22 # SSH 预设使用 22 这个 port,您也可以使用多的 port !
# 亦即重复使用 port 这个设定项目即可!
Protocol 2,1 # 选择的 SSH 协议版本,可以是 1 也可以是 2 ,
# 如果要同时支持两者,就必须要使用 2,1 这个分隔了!
#ListenAddress 0.0.0.0 # 监听的主机适配卡!举个例子来说,如果您有两个 IP,
# 分别是 192.168.0.100 及 192.168.2.20 ,那么只想要
# 开放 192.168.0.100 时,就可以写如同下面的样式:
ListenAddress 192.168.0.100 # 只监听来自 192.168.0.100 这个 IP 的SSH联机。
# 如果不使用设定的话,则预设所有接口均接受 SSH
PidFile /var/run/sshd.pid # 可以放置 SSHD 这个 PID 的档案!左列为默认值
LoginGraceTime 600 # 当使用者连上 SSH server 之后,会出现输入密码的画面,
# 在该画面中,在多久时间内没有成功连上 SSH server ,
# 就断线!时间为秒!
Compression yes # 是否可以使用压缩指令?当然可以?!
# 2. 说明主机的 Private Key 放置的档案,预设使用下面的档案即可!
HostKey /etc/ssh/ssh_host_key # SSH version 1 使用的私钥
HostKey /etc/ssh/ssh_host_rsa_key # SSH version 2 使用的 RSA 私钥
HostKey /etc/ssh/ssh_host_dsa_key # SSH version 2 使用的 DSA 私钥
# 2.1 关于 version 1 的一些设定!
KeyRegenerationInterval 3600 # 由前面联机的说明可以知道, version 1 会使用
# server 的 Public Key ,那么如果这个 Public
# Key 被偷的话,岂不完蛋?所以需要每隔一段时间
# 来重新建立一次!这里的时间为秒!
ServerKeyBits 768 # 没错!这个就是 Server key 的长度!
# 3. 关于登录文件的讯息数据放置与 daemon 的名称!
SyslogFacility AUTH # 当有人使用 SSH 登入系统的时候,SSH会记录资
# 讯,这个信息要记录在什么 daemon name 底下?
# 预设是以 AUTH 来设定的,即是 /var/log/secure
# 里面!什么?忘记了!回到 Linux 基础去翻一下
# 其它可用的 daemon name 为:DAEMON,USER,AUTH,
# LOCAL0,LOCAL1,LOCAL2,LOCAL3,LOCAL4,LOCAL5,
LogLevel INFO # 登录记录的等级!嘿嘿!任何讯息!
# 同样的,忘记了就回去参考!
# 4. 安全设定项目!极重要!
# 4.1 登入设定部分
PermitRootLogin yes # 是否允许 root 登入!yes运行no禁止
UserLogin no # 在 SSH 底下本来就不接受 login 这个程序的登入!
StrictModes yes # 当使用者的 host key 改变之后,Server 就不接受联机,
# 可以抵挡部分的木马程序!
#RSAAuthentication yes # 是否使用纯的 RSA 认证!?仅针对 version 1 !
PubkeyAuthentication yes # 是否允许 Public Key ?当然允许啦!只有 version 2
AuthorizedKeysFile .ssh/authorized_keys
# 上面这个在设定若要使用不需要密码登入的账号时,那么那个
# 账号的存放档案所在档名!
# 4.2 认证部分
RhostsAuthentication no # 本机系统不止使用 .rhosts ,因为仅使用 .rhosts 太
# 不安全了,所以这里一定要设定为 no !
IgnoreRhosts yes # 是否取消使用 ~/.ssh/.rhosts 来做为认证!当然是!
RhostsRSAAuthentication no # 这个选项是专门给 version 1 用的,使用 rhosts 档案在
# /etc/hosts.equiv配合 RSA 演算方式来进行认证!不要使用
HostbasedAuthentication no # 这个项目与上面的项目类似,不过是给 version 2 使用的!
IgnoreUserKnownHosts no # 是否忽略家目录内的 ~/.ssh/known_hosts 这个档案所记录
# 的主机内容?当然不要忽略,所以这里就是 no 啦!
PasswordAuthentication yes # 密码验证当然是需要的!所以这里写 yes ?!
PermitEmptyPasswords no # 若上面那一项如果设定为 yes 的话,这一项就最好设定
# 为 no ,这个项目在是否允许以空的密码登入!当然不许!
ChallengeResponseAuthentication yes # 挑战任何的密码认证!所以,任何 login.conf
# 规定的认证方式,均可适用!
#PAMAuthenticationViaKbdInt yes # 是否启用其它的 PAM 模块!启用这个模块将会
# 导致 PasswordAuthentication 设定失效!
# 4.3 与 Kerberos 有关的参数设定!因为我们没有 Kerberos 主机,所以底下不用设定!
#KerberosAuthentication no
#KerberosOrLocalPasswd yes
#KerberosTicketCleanup yes
#KerberosTgtPassing no
# 4.4 底下是有关在 X-Window 底下使用的相关设定!
X11Forwarding yes
#X11DisplayOffset 10
#X11UseLocalhost yes
# 4.5 登入后的项目:
PrintMotd no # 登入后是否显示出一些信息呢?例如上次登入的时间、地点等
# 等,预设是 yes ,但是,如果为了安全,可以考虑改为 no !
PrintLastLog yes # 显示上次登入的信息!可以啊!预设也是 yes !
KeepAlive yes # 一般而言,如果设定这项目的话,那么 SSH Server 会传送
# KeepAlive 的讯息给 Client 端,以确保两者的联机正常!
# 在这个情况下,任何一端死掉后, SSH 可以立刻知道!而不会
# 有僵尸程序的发生!
UsePrivilegeSeparation yes # 使用者的权限设定项目!就设定为 yes 吧!
MaxStartups 10 # 同时允许几个尚未登入的联机画面?当我们连上 SSH ,
# 但是尚未输入密码时,这个时候就是我们所谓的联机画面啦!
# 在这个联机画面中,为了保护主机,所以需要设定最大值,
# 预设最多十个联机画面,而已经建立联机的不计算在这十个当中
# 4.6 关于使用者抵挡的设定项目:
DenyUsers * # 设定受抵挡的使用者名称,如果是全部的使用者,那就是全部
# 挡吧!若是部分使用者,可以将该账号填入!例如下列!
DenyUsers test
DenyGroups test # 与 DenyUsers 相同!仅抵挡几个群组而已!
# 5. 关于 SFTP 服务的设定项目!
Subsystem sftp /usr/lib/ssh/sftp-serve
对比配置项进行设置
有些配置项被注释了 打开就行!!!!
这次配置的配置文件,直接复制下面配置就行
# $OpenBSD: sshd_config,v 1.100 2016/08/15 12:32:04 naddy Exp $
# This is the sshd server system-wide configuration file. See
# sshd_config(5) for more information.
# This sshd was compiled with PATH=/usr/local/bin:/usr/bin
# The strategy used for options in the default sshd_config shipped with
# OpenSSH is to specify options with their default value where
# possible, but leave them commented. Uncommented options override the
# default value.
# If you want to change the port on a SELinux system, you have to tell
# SELinux about this change.
# semanage port -a -t ssh_port_t -p tcp #PORTNUMBER
#
Port 22
#AddressFamily any
ListenAddress 0.0.0.0
ListenAddress ::
HostKey /etc/ssh/ssh_host_rsa_key
#HostKey /etc/ssh/ssh_host_dsa_key
HostKey /etc/ssh/ssh_host_ecdsa_key
HostKey /etc/ssh/ssh_host_ed25519_key
# Ciphers and keying
#RekeyLimit default none
# Logging
#SyslogFacility AUTH
SyslogFacility AUTHPRIV
#LogLevel INFO
#PasswordAuthentication yes
# Authentication:
#LoginGraceTime 2m
PermitRootLogin yes //允许root用户登录
#StrictModes yes
#MaxAuthTries 6
#MaxSessions 10
#PubkeyAuthentication yes
# The default is to check both .ssh/authorized_keys and .ssh/authorized_keys2
# but this is overridden so installations will only check .ssh/authorized_keys
AuthorizedKeysFile .ssh/authorized_keys
#AuthorizedPrincipalsFile none
#AuthorizedKeysCommand none
#AuthorizedKeysCommandUser nobody
# For this to work you will also need host keys in /etc/ssh/ssh_known_hosts
#HostbasedAuthentication no
# Change to yes if you don't trust ~/.ssh/known_hosts for
# HostbasedAuthentication
#IgnoreUserKnownHosts no
# Don't read the user's ~/.rhosts and ~/.shosts files
#IgnoreRhosts yes
# To disable tunneled clear text passwords, change to no here!
PasswordAuthentication yes
#PermitEmptyPasswords no
PasswordAuthentication yes
# Change to no to disable s/key passwords
#ChallengeResponseAuthentication yes
ChallengeResponseAuthentication no
# Kerberos options
#KerberosAuthentication no
#KerberosOrLocalPasswd yes
#KerberosTicketCleanup yes
#KerberosGetAFSToken no
#KerberosUseKuserok yes
# GSSAPI options
GSSAPIAuthentication yes
GSSAPICleanupCredentials no
#GSSAPIStrictAcceptorCheck yes
#GSSAPIKeyExchange no
#GSSAPIEnablek5users no
# Set this to 'yes' to enable PAM authentication, account processing,
# and session processing. If this is enabled, PAM authentication will
# be allowed through the ChallengeResponseAuthentication and
# PasswordAuthentication. Depending on your PAM configuration,
# PAM authentication via ChallengeResponseAuthentication may bypass
# the setting of "PermitRootLogin without-password".
# If you just want the PAM account and session checks to run without
# PAM authentication, then enable this but set PasswordAuthentication
# and ChallengeResponseAuthentication to 'no'.
# WARNING: 'UsePAM no' is not supported in Red Hat Enterprise Linux and may cause several
# problems.
UsePAM yes
#AllowAgentForwarding yes
#AllowTcpForwarding yes
#GatewayPorts no
X11Forwarding yes
#X11DisplayOffset 10
#X11UseLocalhost yes
#PermitTTY yes
#PrintMotd yes
#PrintLastLog yes
#TCPKeepAlive yes
#UseLogin no
#UsePrivilegeSeparation sandbox
#PermitUserEnvironment no
#Compression delayed
#ClientAliveInterval 0
#ClientAliveCountMax 3
#ShowPatchLevel no
#UseDNS yes
#PidFile /var/run/sshd.pid
#MaxStartups 10:30:100
#PermitTunnel no
#ChrootDirectory none
#VersionAddendum none
# no default banner path
#Banner none
# Accept locale-related environment variables
AcceptEnv LANG LC_CTYPE LC_NUMERIC LC_TIME LC_COLLATE LC_MONETARY LC_MESSAGES
AcceptEnv LC_PAPER LC_NAME LC_ADDRESS LC_TELEPHONE LC_MEASUREMENT
AcceptEnv LC_IDENTIFICATION LC_ALL LANGUAGE
AcceptEnv XMODIFIERS
# override default of no subsystems
Subsystem sftp /usr/libexec/openssh/sftp-server
# Example of overriding settings on a per-user basis
#Match User anoncvs
# X11Forwarding no
# AllowTcpForwarding no
# PermitTTY no
# ForceCommand cvs server
3.修改完毕重启服务
service sshd restart
八.补充 桥接联网
8.1虚拟机安装
安装方式同上 三,四.
8.2设置虚拟机
1.VMware设置1
首先选择自己需要更改的虚拟机-->右键设置-->网络适配器-->选择桥接
2.VMware设置2
打开设置-->虚拟网络编辑器-->选择桥接-->选第三个
小坑
网卡选择要根据自己实际情况,如果其他配置一样的话还是无法ping通
尝试修改网卡选项 (我改成第二个才可以!!!!!)
3.打开配置文件
vi /etc/sysconfig/network-scripts/ifcfg-ens33
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=static
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=3fb22362-5776-40ac-ab1b-5b9da379540f
DEVICE=ens33
ONBOOT=yes //开机启动 改为yes默认no
PEERDNS=yes //可不加
PEERROUTES=yes //可不加
IPV6_PEERDNS=yes //可不加
IPV6_PEERROUTES=yes //可不加
IPADDR=192.168.124.51 //设置ip ip要与物理机ip保持同一网段
NETMASK=255.255.255.0 //一般都是这个
GATEWAY=192.168.124.1 //与物理机保持一致
DNS1=8.8.8.8 //dns一般都是这两个
DNS2=114.114.114.114
4.添加网关
vi /etc/sysconfig/network
本次配置为:
NETWORKING=yes HOSTNAME=test1 //名字随便 GAREWAY=192.168.124.1 //与物理机一致 ~
保存 shift:+wq
5.添加DNS
vi /etc/resolv.conf
本次配置为:
nameservice 8.8.8.8 nameservice 114.114.114.114
保存 shift:+wq
6.重启network
service network restart
8.3测试
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
· AI与.NET技术实操系列(六):基于图像分类模型对图像进行分类