【网络部署】 Win11 + VMware CentOS8 + Nginx 文件共享服务 Wiki

Win11 + VMware CentOS8 + Nginx 文件共享服务 Wiki

一、项目目标

在 Windows 11 宿主机上,通过 VMware 运行 CentOS 8 虚拟机,将主机文件夹共享给虚拟机;部署 Nginx 搭建内网文件下载服务,实现内网所有设备浏览器在线浏览、下载宿主机共享文件夹内资料。

二、环境信息(脱敏)

组件 版本/配置
宿主机 Windows 11(内网网段:192.168.3.0/24
虚拟机 CentOS 8 最小化安装(无GUI桌面)
虚拟化软件 VMware Workstation
共享文件夹名 WinShare
服务组件 Nginx 静态文件服务
最终网络模式 虚拟机网卡 桥接模式

实际以个人设备参数为准


三、部署流程 + 故障问题 + 处理措施

1. CentOS8 联网 DNS 解析故障

问题现象

执行 dnf update -y 报错:
Could not resolve host: mirrors.aliyun.com

无法解析软件源域名,下载软件包失败。

根因

系统默认 DNS 配置异常,无法外网域名解析。

解决措施
  1. 重置并配置公共DNS
bash 复制代码
echo "" > /etc/resolv.conf
echo "nameserver 223.5.5.5" >> /etc/resolv.conf
echo "nameserver 8.8.8.8" >> /etc/resolv.conf
  1. 重启网络并测试连通
bash 复制代码
systemctl restart NetworkManager
ping www.baidu.com
  1. 网络正常后再执行系统更新
bash 复制代码
dnf update -y

2. Nginx 安装部署

操作步骤
  1. CentOS8 自带基础源可直接安装 Nginx,无需安装 epel-release
bash 复制代码
dnf install -y nginx
  1. 设置开机自启并立即启动
bash 复制代码
systemctl enable nginx
systemctl start nginx
  1. 校验运行状态
bash 复制代码
systemctl status nginx

正常状态:active (running)


3. 关闭防火墙 & SELinux(内网环境必做)

bash 复制代码
# 关闭并禁用防火墙
systemctl stop firewalld
systemctl disable firewalld

# 临时关闭SELinux
setenforce 0

# 永久关闭SELinux
sed -i 's/^SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config

4. VMware 共享文件夹挂载故障

问题现象

执行 ls /mnt/hgfs/ 无任何输出,看不到 Windows 共享目录。

根因

CentOS8 最小化无GUI,不会自动挂载 VMware 共享目录;且默认挂载目录非空,直接 fstab 挂载会冲突报错。

解决措施
  1. 安装虚拟机工具依赖
bash 复制代码
dnf install -y open-vm-tools
  1. 确保挂载目录存在
bash 复制代码
mkdir -p /mnt/hgfs
  1. 手动临时挂载(兼容非空目录)
bash 复制代码
vmhgfs-fuse .host:/ /mnt/hgfs -o allow_other -o nonempty
  1. 校验是否识别共享目录
bash 复制代码
ls /mnt/hgfs/

正常输出:WinShare

  1. 配置开机自动挂载
bash 复制代码
# 清理旧冲突配置
sed -i '/vmhgfs-fuse/d' /etc/fstab
# 写入标准挂载配置
echo ".host:/ /mnt/hgfs fuse.vmhgfs-fuse defaults,allow_other,nonempty 0 0" >> /etc/fstab
# 重载系统配置 + 测试挂载
systemctl daemon-reload
mount -a

5. Nginx 配置文件服务(目录浏览+下载)

操作步骤
  1. 备份原始配置
bash 复制代码
cp /etc/nginx/nginx.conf /etc/nginx/nginx.conf.bak
  1. 编辑配置文件
bash 复制代码
vi /etc/nginx/nginx.conf
  1. 替换完整配置(路径固定指向共享目录)
nginx 复制代码
user nginx;
worker_processes auto;
error_log /var/log/nginx/error.log;
pid /run/nginx.pid;

include /usr/share/nginx/modules/*.conf;

events {
    worker_connections 1024;
}

http {
    log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                      '$status $body_bytes_sent "$http_referer" '
                      '"$http_user_agent" "$http_x_forwarded_for"';

    access_log  /var/log/nginx/access.log  main;

    sendfile            on;
    tcp_nopush          on;
    tcp_nodelay         on;
    keepalive_timeout   65;
    types_hash_max_size 2048;

    include             /etc/nginx/mime.types;
    default_type        application/octet-stream;

    server {
        listen 80;
        server_name _;

        root /mnt/hgfs/WinShare;
        index index.html;

        autoindex on;
        autoindex_exact_size off;
        autoindex_localtime on;

        location / {
            try_files $uri $uri/ =404;
        }
    }
}
  1. 校验配置语法 + 重启生效
bash 复制代码
nginx -t
systemctl restart nginx

6. Win11 网络与防火墙配置

  1. 查看宿主机内网网段:使用 ipconfig 获取内网网段 192.168.3.0/24
  2. Windows Defender 防火墙已全局关闭,无需单独放行80端口入站规则。

7. 浏览器访问打不开页面故障

问题现象

Nginx 运行正常、共享目录挂载正常、防火墙全关,但访问宿主机IP无法打开文件页面。

根因

Nginx 部署在虚拟机内,若为NAT模式,直接访问宿主机IP不会自动转发80端口到虚拟机;请求无法抵达Nginx服务。

解决措施(推荐方案)
  1. 关机 CentOS8 虚拟机
  2. VMware 虚拟机设置 → 网络适配器 → 改为 桥接模式
  3. 开机后查看虚拟机内网IP
bash 复制代码
ip a
  1. 内网设备直接访问 虚拟机同网段IP,即可正常浏览下载。

四、最终实现效果

  1. 只需往 Win11 WinShare 文件夹放入资料,无需配置虚拟机;
  2. 虚拟机开机自动挂载共享目录、Nginx 自启;
  3. 内网手机、电脑、平板同网段下,浏览器访问 虚拟机内网IP,在线浏览文件、点击下载。

五、日常维护说明

  1. 宿主机增删文件,Nginx 实时生效,无需重启服务;
  2. 虚拟机重启无丢失配置:共享自动挂载、Nginx 自动运行;
  3. 新增共享目录只需在VMware添加共享名,修改Nginx root 路径即可。

六、常见问题速查表

问题现象 排查处理方向
dnf 无法解析域名 配置公共DNS,测试外网ping连通性
/mnt/hgfs 为空 用带 nonempty 参数手动挂载,配置fstab开机自挂
页面403/404 检查Nginx root路径、共享目录挂载状态
浏览器打不开 虚拟机网卡改用桥接模式,访问虚拟机IP而非宿主机IP

相关推荐
春风有信1 小时前
【2026.05.01】Windows10安装Docker Desktop 4.71.0.0步骤及问题解决
运维·docker·容器
汤愈韬2 小时前
NAT Server 与目的Nat
网络·网络协议·网络安全·security
2401_873479402 小时前
断网时如何实时判断IP归属?嵌入本地离线库,保障风控不中断
运维·服务器·网络
守城小轩2 小时前
基于Chrome140的Yahoo自动化(关键词浏览)——需求分析&环境搭建(一)
运维·自动化·chrome devtools·浏览器自动化·指纹浏览器·浏览器开发
handler013 小时前
Linux 内核剖析:进程优先级、上下文切换与 O(1) 调度算法
linux·运维·c语言·开发语言·c++·笔记·算法
7ACE3 小时前
Wireshark TS | TLP 超时时间
网络·网络协议·tcp/ip·wireshark·tcpdump
其实防守也摸鱼4 小时前
CTF密码学综合教学指南--第三章
开发语言·网络·python·安全·网络安全·密码学
其实防守也摸鱼4 小时前
CTF密码学综合教学指南--第四章
网络·笔记·安全·网络安全·密码学·ctf
草履虫君5 小时前
VMware 虚拟机网络性能优化指南:从 11 秒到 4 秒的完整调优实践
服务器·网络·经验分享·性能优化