VMware安装CentOS7:NAT静态IP与FinalShell连接

发布时间:2026/10/2 15:01:08
VMware安装CentOS7:NAT静态IP与FinalShell连接 如果你在Windows上想跑一台Linux服务器做测试又不想动辄买云主机那用VMware装一台CentOS7、再拿FinalShell连上去是一条被无数人验证过的成熟路径。我自己最早接触Linux时就是这么干的当时踩过的坑包括虚拟机装完没有网、ping不通外网、FinalShell一直提示连接超时最后发现是网卡配置里ONBOOT没改成yes。这篇内容就是把这些年反复装机的经验整理出来从VMware版本选择、CentOS7镜像获取到虚拟机创建、网络模式选择、静态IP配置再到FinalShell连接和排错每一步都讲清楚为什么这么做。无论你是刚接触Linux的新手还是想重新梳理一遍虚拟机网络配置的老手都能按着这个思路直接复现。1. 先把工具链理清楚VMware、CentOS7、FinalShell各自扮演什么角色1.1 为什么是VMware Workstation而不是其他虚拟化方案虚拟化方案有很多Windows自带的Hyper-V、开源的VirtualBox、以及VMware Workstation都是常见选择。我最终长期用VMware Workstation原因很实际它的网络编辑器足够直观NAT、桥接、仅主机三种模式切换方便而且对CentOS7这类老版本系统的兼容性很稳。Hyper-V在Windows家庭版上默认不可用开了之后还可能和VMware冲突VirtualBox免费但网络配置界面相对繁琐尤其是静态IP和端口转发那块新手容易绕晕。VMware Workstation Pro是收费的但Workstation Player对个人使用免费功能上足够跑一台CentOS7。如果你只是学习用Player版完全够需要同时开多台虚拟机、做快照克隆再考虑Pro版。这里要提醒一句网上流传的各种许可证密钥不要用来源不明且不稳定建议通过官方渠道获取合法授权学生可以看看教育优惠。工具链选对了后面每一步都会顺很多。1.2 CentOS7镜像的版本选择与下载渠道CentOS7的版本号一般用7.9.2009这是7系列的最后一个版本也是目前资料最全、软件兼容性最好的一个。镜像文件通常选CentOS-7-x86_64-DVD-2009.isoDVD版包含了常用软件包装完之后不用额外配网络就能用本地源装一些基础工具Minimal版体积小但很多命令需要自己装新手容易卡在第一步。下载渠道建议走国内镜像站比如阿里云镜像、清华大学开源软件镜像站、华为云镜像站搜索CentOS7就能找到对应目录。不要从来路不明的第三方站点下镜像有被篡改的风险。下载完成后可以核对一下文件大小和校验值一般4.5GB左右。如果你后续要装Docker、JDK、数据库DVD版省事得多。另外CentOS7官方已经停止维护但作为本地学习和测试环境完全没问题生产环境建议考虑更新的系统版本。1.3 FinalShell的定位免费版到底够不够用FinalShell是一个SSH客户端同时集成了SFTP文件传输、服务器监控、命令自动补全等功能。它比Putty、Xshell这类工具对新手更友好界面左侧直接显示文件树拖拽就能上传下载还能看到CPU、内存、网络的实时曲线。免费版支持基本的SSH连接、SFTP、端口转发个人学习完全够用。专业版多了同步、批量管理、更多主题等功能但需要购买授权不建议去找所谓的激活工具稳定性没保障也可能带来安全风险。FinalShell官网下载安装即可Windows、macOS、Linux都有对应版本。安装时注意不要装到中文路径下部分版本对中文路径兼容不好。装完之后先别急着连虚拟机等CentOS7的网络配通了再回来配置会话否则连不上会以为是FinalShell的问题。2. 创建虚拟机别急着点“下一步”这几个参数决定了后面顺不顺2.1 CPU、内存、磁盘的分配逻辑与经验值新建虚拟机时VMware会引导你选典型或自定义。我建议选“自定义”因为典型模式会默认一些参数后面改起来麻烦。CPU分配上宿主机如果是4核8线程给虚拟机2核就够如果宿主机只有4核给1核也行不然宿主机自己会卡。内存方面CentOS7 Minimal版512MB能跑但你要装Docker、跑Java应用建议至少2GB4GB更从容。磁盘默认20GB选“将虚拟磁盘拆分成多个文件”方便迁移但性能略低选“存储为单个文件”读写更快。如果你后续要装数据库、拉镜像建议给到40GB以上因为CentOS7的根分区很容易被日志和镜像占满。这里有个经验磁盘一旦创建扩容虽然可以但需要额外操作不如一开始就给够。网络类型先选NAT后面可以改。其他保持默认USB控制器、声卡、打印机这些用不上可以移除减少资源占用。2.2 安装过程中的分区与软件包选择加载ISO镜像后启动选择“Install CentOS 7”语言选中文或英文都行我习惯用英文避免中文路径和编码问题。安装摘要页面里最关键是“软件选择”和“安装位置”。软件选择如果选“最小安装”装完只有命令行适合服务器用途选“基础设施服务器”会带一些常用工具。我一般选最小安装然后手动补需要的包。安装位置建议选“我要配置分区”手动分三个区/boot给500MBswap给内存的1到2倍内存大于8GB时给8GB即可剩下的全给/。这样比默认的LVM自动分区更直观也方便后期排查空间问题。分区完成后点击“开始安装”同时设置root密码。root密码不要设太简单但本地测试环境自己记住就行。安装完成后重启第一次进入系统会用root登录先别急着配网络下一步先检查虚拟机基础状态。2.3 首次启动后的基础检查与快照登录之后先执行几个命令确认系统状态。ip addr查看网卡是否识别通常能看到ens33或eth0如果只有lo说明网卡没起来或者配置有问题。systemctl status network看网络服务状态。ping 127.0.0.1确认本地协议栈正常。然后检查/etc/sysconfig/network-scripts/目录下有没有对应的网卡配置文件。做完这些建议在VMware里给虚拟机拍一个快照命名“刚装完系统”。快照的好处是后面网络配置改乱了可以一键回滚不用重装。我早期不拍快照结果把网卡配置改错导致SSH连不上只能重装浪费了很多时间。拍快照前最好先关机这样快照更干净。另外虚拟机设置里可以勾选“共享文件夹”或者装VMware Tools方便宿主机和虚拟机传文件但FinalShell的SFTP已经能解决这个问题所以不是必须。3. VMware网络模式NAT、桥接、仅主机到底怎么选3.1 三种模式的数据流向与适用场景对比VMware的三种网络模式本质区别在于虚拟机和宿主机、外部网络之间的连接方式。桥接模式相当于虚拟机直接接入宿主机所在的物理网络虚拟机会从路由器获取一个和宿主机同网段的IP外部设备可以直接访问虚拟机适合需要被局域网其他机器访问的场景比如搭测试服务器给同事连。NAT模式是虚拟机通过宿主机做网络地址转换虚拟机在一个独立的子网里可以访问外网但外部设备默认不能直接访问虚拟机除非做端口转发。仅主机模式最封闭虚拟机和宿主机可以互相通信但虚拟机不能上外网适合纯隔离测试。对新手来说NAT模式最省心不用管公司或家里的网络环境也不怕IP冲突虚拟机上网走宿主机就行。下表对比一下模式虚拟机能否上网外部能否访问虚拟机IP来源适用场景NAT能默认不能需端口转发VMware虚拟DHCP学习、测试、无需外部访问桥接能能物理路由器DHCP需要局域网访问、模拟真实服务器仅主机不能仅宿主机可访问VMware虚拟DHCP隔离环境、安全测试3.2 为什么我优先推荐NAT模式推荐NAT的第一个原因是网络环境无关。你在家里、公司、咖啡馆宿主机换个WiFi虚拟机不用改任何配置照样能上网。桥接模式换网络后IP网段变了虚拟机的静态IP可能就不通了。第二个原因是IP冲突风险低。桥接模式下虚拟机和宿主机在同一网段如果手动配了静态IP很可能和局域网里其他设备撞车NAT模式下虚拟机在VMware自己的子网里比如192.168.10.0/24和外部物理网络隔开。第三个原因是配置简单虚拟网络编辑器里默认就配好了NAT和DHCP你只需要把虚拟机网卡设为NAT然后在系统里配静态IP即可。当然NAT也有缺点局域网其他机器访问不了虚拟机。如果确实需要可以在VMware的NAT设置里做端口转发把宿主机的某个端口映射到虚拟机的22端口这样外部通过宿主机IP加端口也能SSH连接。对绝大多数学习和开发场景NAT足够了。3.3 在虚拟网络编辑器里确认网段和网关选好NAT模式后打开VMware的“编辑”菜单找到“虚拟网络编辑器”。这里能看到VMnet8就是NAT模式对应的虚拟网卡。点击“更改设置”获取管理员权限然后选中VMnet8下面会显示子网IP和子网掩码比如192.168.10.0、255.255.255.0。再点“NAT设置”能看到网关IP通常是192.168.10.2。这个网关地址就是后面在CentOS7里要填的GATEWAY。DHCP设置里可以看到起始和结束IP比如192.168.10.128到192.168.10.254我们配静态IP时不要选在这个范围里避免和DHCP分配冲突。我一般把静态IP选在192.168.10.100既不在DHCP池里又和网关同网段。记住这三个值子网、网关、可用IP范围后面配置网卡文件时直接套用。如果这里显示的子网和你的宿主机物理网络冲突可以改成不常用的网段比如192.168.88.0。4. CentOS7静态IP配置从DHCP切换到固定地址的完整操作4.1 确认网卡名称与配置文件位置CentOS7的网卡命名规则和CentOS6不同不再是eth0而是根据硬件位置生成常见的是ens33、ens160、eno16777736等。先用ip addr或ifconfig查看。如果没有ifconfig执行yum install net-tools -y安装但没网的时候yum用不了所以直接用ip addr。假设看到的是ens33那么配置文件在/etc/sysconfig/network-scripts/ifcfg-ens33。进入目录用ls确认文件名。有时候网卡名是ens33但配置文件可能是ifcfg-ens33直接对应。如果目录下没有对应文件可能是NetworkManager没有生成可以手动创建但更常见的是文件存在但内容里ONBOOTno。用cat先看一眼默认内容通常有TYPEEthernet、BOOTPROTOdhcp、NAMEens33、DEVICEens33、ONBOOTno这几行。记住这个文件名下一步编辑它。4.2 编辑ifcfg-ens33每个参数为什么这么写用vi /etc/sysconfig/network-scripts/ifcfg-ens33编辑。按i进入插入模式把内容改成下面这样TYPEEthernet BOOTPROTOstatic NAMEens33 DEVICEens33 ONBOOTyes IPADDR192.168.10.100 NETMASK255.255.255.0 GATEWAY192.168.10.2 DNS1223.5.5.5 DNS2114.114.114.114逐行解释BOOTPROTOstatic表示用静态IP不再是dhcpONBOOTyes表示开机自动启用网卡这一行最容易漏漏了就会导致重启后没网IPADDR填你选好的静态IP要和VMnet8同网段且不在DHCP池里NETMASK填255.255.255.0GATEWAY填虚拟网络编辑器里看到的NAT网关DNS1和DNS2填公共DNS我一般用阿里云的223.5.5.5和114.114.114.114不写DNS的话能ping通IP但域名解析不了。改完按Esc输入:wq保存退出。如果手误改错可以按:q!不保存退出重来。4.3 重启网络服务并验证连通性执行systemctl restart network重启网络服务。如果没有任何输出说明重启成功。然后ip addr查看ens33是否拿到了你设置的IP。接着ping 192.168.10.2测试到网关是否通ping 223.5.5.5测试外网IP是否通ping www.baidu.com测试DNS解析是否正常。如果前两个通、第三个不通说明DNS配置有问题如果网关都不通检查IP、掩码、网关是否写错或者VMware的NAT服务是否启动。有个细节CentOS7默认可能同时运行NetworkManager和network服务两者冲突时重启network可能报错。可以先systemctl stop NetworkManagersystemctl disable NetworkManager只用network服务配置更可控。验证都通过后建议systemctl enable network设置开机自启避免重启后网络又断。4.4 DNS与yum源的顺手调整网络通了之后顺手把yum源换成国内镜像下载速度会快很多。备份原文件mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup然后下载阿里云或清华的repo文件。如果没装wget先yum install wget -y。下载后执行yum clean all和yum makecache。这一步不是必须但能省很多等待时间。另外检查/etc/resolv.conf正常应该有nameserver 223.5.5.5如果为空说明网卡里的DNS没生效可以手动加但重启后可能被覆盖所以还是确保ifcfg文件里写了DNS。做完这些虚拟机本身已经能正常上网了接下来才是FinalShell连接。5. FinalShell连接虚拟机SSH服务检查与连接参数配置5.1 确认sshd运行、防火墙放行与SELinux处理CentOS7默认安装了openssh-server但最小安装可能没有启动。执行systemctl status sshd查看状态如果没有运行systemctl start sshd并systemctl enable sshd。然后检查防火墙firewall-cmd --state如果显示running需要放行22端口firewall-cmd --permanent --add-port22/tcp然后firewall-cmd --reload。如果你只是本地测试也可以直接systemctl stop firewalld和systemctl disable firewalld但不建议在生产环境这么做。SELinux方面执行getenforce如果显示Enforcing可能影响SSH登录。可以临时setenforce 0要永久生效就编辑/etc/selinux/config把SELINUXenforcing改成SELINUXdisabled重启后生效。做完这些在宿主机用ping 192.168.10.100确认能通再用telnet 192.168.10.100 22或者Test-NetConnection测试22端口是否开放。5.2 新建SSH会话主机、端口、认证方式打开FinalShell点击左上角文件夹图标选择“新建连接”再选“SSH连接”。名称随便填比如“CentOS7-Test”。主机填虚拟机的静态IP192.168.10.100。端口默认22。认证方式选“密码”用户名填root密码填你安装时设置的root密码。如果之前配置过密钥登录也可以选“公钥”导入私钥文件。其他参数保持默认比如终端编码UTF-8。点击确定后双击会话连接。第一次连接会提示保存主机密钥点接受。如果一切正常会看到命令行提示符变成[rootlocalhost ~]#。如果提示“连接失败”或“Auth fail”先别怀疑FinalShell回到第5.1步检查sshd和防火墙。我遇到过密码明明对但连不上最后发现是root登录被sshd配置禁止了需要编辑/etc/ssh/sshd_config把PermitRootLogin改成yes然后重启sshd。5.3 连接后的常用设置与文件传输连接成功后FinalShell左侧会显示文件树默认在root目录。你可以直接拖拽文件上传下载也可以右键新建、删除、编辑。底部有性能监控能看到CPU、内存、网络实时状态对调试很有帮助。常用设置里可以调整字体大小、背景色、终端类型。我一般把字体调到14背景用深色长时间看眼睛舒服些。命令自动补全默认开启输入sys按Tab能补全systemctl。如果你经常连多台机器可以建一个文件夹分类管理。SFTP传输大文件时注意虚拟机的磁盘空间别把根分区塞满。另外FinalShell支持端口转发可以把虚拟机的3306、8080等端口映射到宿主机方便用本地工具连接虚拟机里的数据库或Web服务。5.4 连不上的排查链路从ping到日志连不上时按这个顺序排查第一步宿主机ping 192.168.10.100不通说明网络层有问题检查虚拟机IP、VMware NAT服务、Windows防火墙。第二步telnet 192.168.10.100 22或Test-NetConnection 192.168.10.100 -Port 22端口不通说明sshd没起或防火墙拦截回到虚拟机检查systemctl status sshd和firewall-cmd --list-ports。第三步如果端口通但FinalShell报认证失败检查用户名密码查看/var/log/secure日志里面会记录失败原因比如“Failed password for root”或“Connection closed by authenticating user”。第四步如果连接后经常断开可能是网络不稳定或sshd的ClientAliveInterval设置问题可以在sshd_config里加ClientAliveInterval 60和ClientAliveCountMax 3。这套排查链路我用了很多次基本能定位九成以上的连接问题。6. 几个我实际踩过的坑和对应的处理办法6.1 网卡名变成ens33而不是eth0很多人看老教程里面写的是eth0结果自己系统里只有ens33于是找不到配置文件。这不是错误而是CentOS7的新命名规则ens33代表PCI插槽位置。解决方法就是按实际网卡名来ip addr看到什么就用什么配置文件也对应ifcfg-ens33。如果你实在想改回eth0可以在启动时加net.ifnames0 biosdevname0内核参数但不建议折腾ens33用习惯了完全一样。另外克隆虚拟机后网卡名可能变成ens34、ens35这时候需要检查/etc/udev/rules.d/70-persistent-net.rules把旧规则删掉或者直接改网卡配置文件里的NAME和DEVICE。6.2 重启网络报错Job for network.service failed执行systemctl restart network时遇到这个报错通常有两个原因一是配置文件中参数写错比如IPADDR和GATEWAY不在同一网段或者NETMASK写成了255.255.255.255二是NetworkManager和network服务冲突。先用systemctl status network -l看详细错误再journalctl -xe查日志。如果是配置错误改回正确值如果是服务冲突停掉NetworkManager并禁用再重启network。还有一个坑是虚拟机克隆后MAC地址冲突导致网络服务起不来需要在VMware里重新生成MAC地址或者删掉网卡配置文件里的HWADDR行。6.3 克隆虚拟机后IP冲突与MAC地址问题用VMware克隆 CentOS7 后如果两台虚拟机同时开机可能出现IP冲突或网络不通。原因是克隆时保留了原虚拟机的MAC地址和静态IP。解决办法在VMware里选中克隆的虚拟机右键设置找到网络适配器点击高级重新生成MAC地址。然后启动虚拟机修改ifcfg-ens33里的IPADDR为新的地址删除或修改HWADDR行重启网络。如果网卡名变了还要改NAME和DEVICE。这个操作我做过很多次熟练之后两分钟搞定。建议克隆前先关机并拍快照这样出问题容易回滚。6.4 FinalShell会话超时断开的处理FinalShell默认一段时间不操作就会断开这是因为sshd服务端有超时设置。可以在虚拟机里编辑/etc/ssh/sshd_config找到ClientAliveInterval和ClientAliveCountMax如果没有就手动加ClientAliveInterval 60 ClientAliveCountMax 3意思是每60秒发一次心跳连续3次无响应才断开。改完systemctl restart sshd。另外FinalShell自己的设置里也有“保持连接”选项可以勾选。如果还是断检查宿主机和虚拟机之间的网络是否稳定尤其是用WiFi的时候。还有一个原因是虚拟机的内存不足导致sshd被OOM杀掉可以看看/var/log/messages里有没有相关记录。我个人在实际操作中的体会是这套流程里最花时间的不是装系统而是网络配置。新手最容易忽略的是ONBOOTyes和DNS这两项还有就是VMware虚拟网络编辑器里的子网、网关没确认就直接配静态IP。我的习惯是每次新建虚拟机后先拍快照再配网络配完立刻用FinalShell连一次连上之后再做其他操作。这样即使后面把系统搞乱了也能快速恢复到能连的状态。另外如果你后续要装Docker或者JDK建议在FinalShell里用SFTP传安装包比在虚拟机里用wget下载快得多尤其是镜像站限速的时候。最后再分享一个小技巧在FinalShell里可以给常用命令设置快捷按钮比如重启网络、查看IP、启动Docker点一下就能执行省去反复敲命令的时间。