#Linux进阶Day05:防火墙+VMware网络+sshd远程管理

声明:本文仅作学习交流使用,引用需标明出处。

如有谬误,敬请指正

本文聚焦Linux防火墙基础、VMware网络配置、sshd远程管理服务三大核心模块,同时详解Windows远程Linux的实操方法,整体以实操命令和配置步骤为主,所有操作均适配Linux初学者,是实现虚拟机通信、Linux远程管理的必备基础,以下为分模块的详细实操总结。

一、防火墙基础

本模块核心围绕Linux系统常用的firewalld 软件防火墙展开,因初学者阶段防火墙会拦截各类网络操作、增加学习负担,重点讲解firewalld的临时关闭+永久禁用实操步骤,iptables防火墙将在后续安全阶段讲解。

  1. 防火墙核心简介:作为网络安全防护系统,主要作用是控制网络数据进出、按规则放行/拦截数据,防止非法网络访问与攻击;分为硬件防火墙和软件防火墙两类,Linux系统常用firewalld和iptables。
  2. 核心实操命令 (全程以root用户执行)
    • 关闭firewalld服务:systemctl stop firewalld
    • 禁止开机自启:systemctl disable firewalld
    • 查看运行状态(确认已停止):systemctl status firewalld
    • 检查开机自启状态(确认已禁用):systemctl is-enabled firewalld

二、VMware网络服务

VMware是Linux运维学习的核心虚拟机工具,本模块讲解其3种网络模式、虚拟交换机原理、实操配置及虚拟机克隆 ,是实现虚拟机间、虚拟机与主机、虚拟机与外网 通信的基础,核心重点为仅主机模式(隔离模式)NAT模式(实操最常用)。

2.1 核心基础概念

  1. VMware 3种网络模式
    • 隔离模式(仅主机模式):仅支持局域网通信(虚拟机与主机、虚拟机与虚拟机),无法连接外网;
    • NAT模式:支持局域网通信,同时借助NAT地址转换技术实现虚拟机连接外网,是实操中最核心的网络模式;
    • 桥接模式(本阶段可先忽略):(将虚拟机当成真机使用)将虚拟机桥接至主机的真实网络环境,虚拟机可与真实网络中的所有设备互通。
  2. VMware虚拟交换机与虚拟网卡 :安装VMware后系统自动生成虚拟交换机1,虚拟交换机8与虚拟网卡1,虚拟网卡8,为虚拟网络通信提供基础。
    • 默认生成的虚拟交换机1、8 ,分别对应仅主机模式、NAT模式
    • 主机网络适配器中生成vmnet1、vmnet8虚拟网卡,默认分别绑定至虚拟交换机1,8。VMnet8 虚拟网卡绑定的虚拟交换机,默认开启了 NAT 和 DHCP 服务,虚拟机通过它访问外网时,数据会经 VMware NAT 服务转发到主机的物理网卡,由主机上网。
  3. 辅助网络概念 (理解VMware网络的关键)
    • 交换机:组建局域网的核心设备,可缓解网线接口不足问题,电脑或服务器只要直接或间接在同一交换机,配置相同网段IP即可互相通信,负责相同网段数据包的转发
    • 网关: "跨网段的出入口",跨网段通信的必备关口,是内网设备连接外网的唯一通道,内网设备的网关通常配置在路由器接口(即内网的网关IP地址配置在路由上);负责不同网段数据包的转发。
    • 路由:决定数据包的走向,起到指路的作用。会根据目标地址,判断数据该走哪张网卡、哪个出口,把它转发到正确的方向,让不同网段的设备能互相通信。
      (我们常见的设备几乎永远和网关集成在一起,家里的无线路由器,随身 WiFi等都是如此,因此很多情况下基本说起路由或者网关就是指包含二者的设备)
    • NAT地址转换:将内网私有IP转换为公网IP,是内网设备访问互联网的核心技术;
    • DHCP服务 :为网络内设备自动分配IP、网关、DNS等网络参数,包含作用域 (分配的网段)和地址池(网段内可分配的IP范围)两个核心属性。

什么是DNS?
DNS : 域名翻译官,把网址翻译成 IP。(如 www.baidu.com翻译成 110.242.68.66)。

网关和dns的关系:你要访问网站 → 先找 DNS 翻译成 IP → 再通过网关把请求发出去。
网关地址和dns地址不需要相同,绝大多数情况下也不一定要相同,只有一种常见情况它们刚好是同一个 IP,但那只是设备兼任,是因为你的路由器既当网关,又帮你转发 DNS 请求,所以 IP 一样。

2.2 仅主机模式(隔离模式)实操配置

目标:实现Windows主机与Linux虚拟机的局域网互通,虚拟机无外网访问能力

(1)Windows主机配置
  • 快捷键Win+r输入ncpa.cpl,打开网络适配器;
  • 找到VMnet1 虚拟网卡,右键选择「属性」,配置IPv4静态IP:192.168.4.1/24(子网掩码255.255.255.0,无需配置网关和DNS)。
(2)Linux虚拟机配置
  • 虚拟机关机后,在「设置-网络适配器」中,将网络模式修改为仅主机模式(VMnet1),勾选「已连接」和「启动时连接」;
  • 配置ens160网卡静态IP:nmcli connection modify ens160 ipv4.method manual ipv4.addresses 192.168.4.100/24 connection.autoconnect yes
  • 激活网卡使配置生效:nmcli connection up ens160
  • 测试通信:ping -c 4 192.168.4.1-c指定ping的次数,测试与Windows主机互通)。

2.3 NAT模式实操配置

目标:实现虚拟机与Windows主机、虚拟机间的内网互通,同时让虚拟机能够访问外网,是Linux实操中最常用的网络模式

(1)Windows主机配置
  • 快捷键Win+r输入ncpa.cpl,打开网络适配器;
  • 找到VMnet8 虚拟网卡,右键选择「属性」,配置IPv4静态IP:192.168.8.1/24(子网掩码255.255.255.0,无需配置网关和DNS)。
(2)VMware虚拟网络编辑器配置

需以管理员权限 打开VMware,再进入虚拟网络编辑器,核心配置VMnet8(NAT模式)

  • 子网配置:子网IP192.168.8.0,子网掩码255.255.255.0
  • DHCP设置:作用域192.168.8.0,地址池192.168.8.100-200(仅为虚拟机分配此范围的IP);
  • NAT设置:网关IP192.168.8.254/24(后续虚拟机的网关和DNS需配置为此地址)。
(3)Linux虚拟机配置
  • 虚拟机关机后,在「设置-网络适配器」中,将网络模式修改为NAT模式(VMnet8),勾选「已连接」和「启动时连接」;
  • 配置ens160网卡的静态IP、网关、DNS:nmcli connection modify ens160 ipv4.method manual ipv4.addresses 192.168.8.100/24 ipv4.gateway 192.168.8.254 ipv4.dns 192.168.8.254 connection.autoconnect yes
  • 激活网卡使配置生效:nmcli connection up ens160
  • 双层通信测试(确保配置生效):
    • 内网测试:ping -c 4 192.168.8.1(测试与Windows主机互通);
    • 外网测试:ping -c 4 www.baidu.com(测试虚拟机能否访问互联网);
    • 常用命令:route -n查看路由表,能快速查看路由/网关。

IP 地址转换策略Easy IP 和静态 NAT对比:

Easy IP

一句话:多个内网设备共享一个公网 IP 上网,省 IP。

  • 内网所有设备(手机、电脑)都用同一个公网 IP 访问外网
  • 端口号区分不同设备(192.168.1.100:12345 → 100.1.1.1:20001)
  • 外网不能主动访问内网设备

场景:家庭宽带、虚拟机 NAT 模式

静态 NAT

一句话:一个内网 IP 固定对应一个公网 IP,一对一绑定。

  • 内网某台设备独占一个公网 IP
  • 外网可以主动访问这台设备
  • 需要多个公网 IP

场景:公司对外服务器(Web 服务器、邮件服务器)

Easy IP 与 静态 NAT 对比总结
对比项 Easy IP 静态 NAT
映射关系 多对一 一对一
公网 IP 数量 1 个即可满足 需要多个公网 IP
端口转换 支持端口转换 不转换端口
外网主动访问内网 不支持 支持
配置复杂度 配置简单 配置中等
典型场景 家庭上网、虚拟机共享上网 对外提供服务器、业务发布

2.4 VMware虚拟机克隆

基于已配置好NAT模式的虚拟机jxserver ,通过链接克隆 生成新虚拟机jxserver2(链接克隆占用存储空间小,依托原虚拟机运行),并完成两台虚拟机的差异化配置,实现互相访问。

(1)克隆核心步骤
  1. 关闭原虚拟机jxserver,在VMware中右键该虚拟机,选择「管理-克隆」;
  2. 克隆源选择「虚拟机当前状态」,克隆类型选择「创建链接克隆」(推荐);
  3. 命名新虚拟机为jxserver2,选择存储空间充足的目录,点击完成即可。
(2)两台虚拟机差异化配置(避免IP和主机名冲突)
原虚拟机jxserver(客户端,命名为client)
  • 永久修改主机名:hostnamectl set-hostname client(重新打开终端生效);
  • 确认IP配置:192.168.8.100/24,确保网卡已激活。
克隆虚拟机jxserver2(服务端,命名为server)
  • 永久修改主机名:hostnamectl set-hostname server(重新打开终端生效);
  • 配置新的静态IP:nmcli connection modify ens160 ipv4.method manual ipv4.addresses 192.168.8.101/24 connection.autoconnect yes
  • 激活网卡:nmcli connection up ens160
  • 测试互访:ping -c 4 192.168.8.100(测试与client虚拟机的内网互通)。

三、sshd服务(Linux远程管理核心)

sshd 是基于SSH(Secure Shell,安全外壳协议)的远程管理服务,是Linux服务器远程操作的必备服务,所有远程操作均依托上述NAT模式配置的两台虚拟机(client为客户端,server为服务端)完成,核心讲解服务基础、口令远程、修改端口远程、无密码远程四种核心操作。

3.1 sshd服务基础信息

  1. 核心作用:为远程客户机提供安全的Shell远程操作环境,所有操作均加密传输;
  2. 必备软件:openssh-serveropenssh(Linux系统默认安装);
  3. 服务名:sshd(所有服务管理操作均基于此名称);
  4. 核心配置文件:/etc/ssh/sshd_config(服务端专属配置文件,修改后需重启服务生效);
  5. 默认端口号:22(端口号是服务的唯一标识,可根据需求自定义修改。只有服务运行才会呈现,服务停止后端口消失,且端口是"动态呈现"的。);
  6. 操作前提:服务端需提前关闭firewalld防火墙、将SELinux设为disabled(避免拦截远程连接)。

端口的"动态呈现":

状态 端口表现
服务运行正常 端口处于 LISTEN 状态
服务崩溃/未启动 端口 不存在ss 看不到)
服务启动中 短暂延迟后端口出现
服务被防火墙拦截 端口存在,但外部无法访问

3.2 查看sshd服务运行状态

三种验证方式,任选其一即可确认sshd服务是否正常运行(服务端执行):

  1. 查看服务整体状态:systemctl status sshd
  2. 查看端口监听状态:ss -nutlp | grep :22
  3. 查看服务相关进程:ps aux | grep sshd

3.3 口令认证远程管理(基础方式,需输入密码)

核心命令ssh [选项] 目标主机用户@目标主机IP,其中-p用于指定端口,默认22端口可省略。

实操步骤(client客户端远程连接server服务端)
  1. 客户端执行远程命令:ssh root@192.168.8.101
  2. 首次连接需输入yes确认信任对方主机(仅首次需要);
  3. 输入服务端root用户密码(输入时无任何显示,直接输入后回车即可);
  4. 验证远程成功:终端主机名会从client变为server,可执行hostname(查看主机名)、ifconfig ens160 | head -2(查看服务端IP);
  5. 退出远程连接:exit(返回客户端client的终端)。

3.4 自定义端口远程管理

修改服务端sshd的默认端口(22→8022),实现指定端口的远程连接,核心操作是修改配置文件+重启服务,所有步骤在服务端执行。

(1)服务端(server)配置步骤
  1. 备份配置文件(防止修改出错,可回滚):cp /etc/ssh/sshd_config /opt
  2. 编辑配置文件,定位至端口配置行:vim +17 /etc/ssh/sshd_config+17表示直接将光标定位至第17行);
  3. 修改端口号:去掉行首的注释符#,顶格写为Port 8022
  4. 重启sshd服务,使配置生效:systemctl restart sshd
  5. 验证端口生效:ss -nutlp | grep :8022(确认8022端口处于监听状态)。
(2)客户端(client)指定端口远程
  • 核心命令:ssh -p 8022 root@192.168.8.101,后续输入密码、验证、退出步骤与口令认证一致。
(3)恢复默认端口

服务端重新编辑配置文件:vim +17 /etc/ssh/sshd_config,将Port 8022改回Port 22,重启sshd服务即可,客户端恢复默认命令远程。

3.5 无密码认证远程管理(推荐方式,免密登录)

sshd服务支持口令认证无密码认证 两种方式,无密码认证优先级高于口令认证 ,核心原理是:在客户端生成密钥对(公钥+私钥),将公钥拷贝至服务端,服务端验证密钥配对后,即允许客户端免密登录

用通俗易懂的话讲,客户端相当于你,服务端相当于你的公司,客户端每次远程服务端都需要输入密码,相当于每次你进入公司打卡都要输入密码。无密码认证就相当你做了一张nfc卡,每次打卡刷卡就行了,不用再输密码。

制作密钥对(公钥+私钥)是在客户端进行的,然后把公钥复制到服务端即可。私钥是可以给别的对象使用的,但会相当麻烦,涉及权限、安全、用户冲突等各种问题,因此现实工作中基本不会这样做。

实操步骤(所有核心操作在client客户端执行)
  1. 生成密钥对:ssh-keygen(全程回车即可,默认生成至/root/.ssh/目录);
  2. 将客户端公钥拷贝至服务端:ssh-copy-id root@192.168.8.101(首次拷贝需输入服务端root密码);
  3. 免密远程测试:ssh root@192.168.8.101(无需输入密码,直接登录服务端);
  4. 退出远程连接:exit

演示:

bash 复制代码
Enter file in which to save the key (/root/.ssh/id_rsa): 
Enter passphrase (empty for no passphrase):   ##默认无密码,无需设置密码
Enter same passphrase again: 
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:kExJ+u/cDNhsrS2spWQhIrfqAWQCstJMV696a3qafjI root@hkclient
The key's randomart image is:
+---[RSA 3072]----+
|o . .o+.         |
|o= . +.o         |
|+oo . + .        |
|=    . o         |
|o o . + S        |
|.o o o * .       |
| .. . =.B .      |
| .. E=+Bo*       |
|o. .=O+.+.+      |
+----[SHA256]-----+

四、Windows远程Linux的两种实操方式

Windows系统远程Linux的所有操作均基于sshd服务,需提前保证Linux端sshd服务正常运行、Windows与Linux网络互通,主要分为原生命令行第三方工具两种方式,第三方工具因操作便捷成为首选。

  1. Windows cmd原生远程
    • 前提:Windows系统需提前配置OpenSSH组件;
    • 操作:打开cmd命令行,直接执行ssh 用户名@LinuxIP(与Linux客户端的远程命令完全一致),默认22端口可省略,指定端口需加-p参数。
  2. 第三方远程工具(推荐)
    • 常用工具:WindTerm(解压即用,文档重点推荐)、Xshell、FinalShell、MobaXterm;
    • WindTerm核心实操:
      1. 解压WindTerm安装包,打开软件后,点击「新建-SSH会话」;
      2. 输入会话信息:主机(Linux的IP,如192.168.8.101)、端口(22)、用户名(root);
      3. 字符集设置为UTF-8(防止中文乱码),保存会话后,点击连接,输入Linux密码即可远程。

五、本章核心总结

Day05的内容是Linux入门的网络与远程管理基础,所有操作均以实操为核心,需熟练掌握的核心技能如下:

  1. 理解防火墙的核心作用,能独立执行firewalld防火墙的临时关闭+永久禁用操作;
  2. 掌握VMware两种核心网络模式的工作原理+完整实操配置:仅主机模式(实现内网互通)、NAT模式(实现内网+外网互通);
  3. 会使用VMware的链接克隆功能生成新虚拟机,并完成主机名、IP的差异化配置,避免冲突;
  4. 掌握sshd服务的基础管理:查看服务状态、口令认证远程修改端口远程无密码认证远程(核心,实际工作中最常用);
  5. 掌握Windows远程Linux的两种方式,尤其是第三方工具(WindTerm)的基础配置与使用,能独立实现Windows到Linux的远程操作。
相关推荐
blueSatchel2 小时前
I2C驱动学习
linux·c语言
wenlonglanying2 小时前
nginx 代理 redis
运维·redis·nginx
321.。2 小时前
Linux 进程控制深度解析:从创建到替换的完整指南
linux·开发语言·c++·学习
❀͜͡傀儡师2 小时前
docker部署Antigravity-Manager
运维·docker·容器·antigravity
sg_knight2 小时前
Docker环境下的MinIO安装,以及如何正确配置数据持久化(避坑篇)
运维·docker·容器·minio·ftp·cos·oss
123过去3 小时前
trufflehog使用教程
linux·测试工具·安全
代码AC不AC3 小时前
【Linux】System V 通信方式
linux·消息队列·共享内存·信号量·system v
vortex53 小时前
vmware虚拟机设置启动时进入live cd
linux·网络安全
Agent产品评测局3 小时前
物流供应链自动化解决方案选型,全链路提效指南:从硬件集成到AI Agent的演进路径
运维·人工智能·ai·chatgpt·自动化