速达物流 · 企业服务部署实训验收报告
小组:第四组(成员 A,VM2 负责人) 项目:在项目一(网络基础环境)之上,搭建企业内网服务 服务器:VM2
10.4.0.10(Debian 12) / 网关 VM110.4.0.1(WAN172.16.30.208) 域名:web.mxdx.local(企业门户)、wiki.mxdx.local(内部知识库)
1. 项目概述
本项目在一期搭建的 VM1 网关/NAT/DNS/DHCP 基础环境之上,于 VM2(10.4.0.10)上为企业「速达物流」部署了四类核心办公服务:① Nginx 企业门户(强制 HTTPS、Gzip 压缩、静态缓存);② MediaWiki 内部知识库(Apache+PHP 反向代理);③ Samba 部门文件共享(公共盘、财务盘、个人目录);④ NFS 代码共享。项目解决了企业日常办公中”信息分散、知识无法沉淀、文件无隔离共享、开发协作无统一空间”等业务痛点,使员工可通过统一域名访问门户与 Wiki、按部门权限安全共享文件、在 Linux 客户端挂载共享代码目录,形成一套可落地的中小企业内网办公支撑平台。
2. 服务架构
2.1 架构图
员工客户端(笔记本 / 一体机)
│
│ DNS 解析
▼
VM1 网关 (10.4.0.1 / 172.16.30.208)
NAT · DNS · DHCP
│
┌─────────────┴─────────────┐
│ VM2 10.4.0.10 │
│ ┌───────────────────────┐ │
浏览器 ──HTTPS──▶ │ │ Nginx :443 (SSL) │ │
http://web │ │ 80 → 443 跳转 │ │
│ │ server_name │ │
│ │ web.mxdx.local │ │
│ └───────────┬───────────┘ │
│ │ 反代 │
│ ┌───────────▼───────────┐ │
http://wiki ────▶ │ │ Apache :8080 │ │
│ │ MediaWiki │ │
│ │ server_name │ │
│ │ wiki.mxdx.local │ │
│ └───────────────────────┘ │
│ ┌───────────────────────┐ │
\\\\10.4.0.10 ──▶ │ │ Samba :445/:139 │ │
│ │ public / finance / │ │
│ │ 个人目录(zhangsan等) │ │
│ └───────────────────────┘ │
│ ┌───────────────────────┐ │
mount nfs ─────▶ │ │ NFS :2049 │ │
│ │ /data/nfs/code │ │
│ │ → 10.4.0.0/24(rw) │ │
│ └───────────────────────┘ │
└─────────────────────────────┘
2.2 服务端口与域名对照表
| 服务 | 监听端口 | 域名 / 路径 | 访问方式 |
|---|---|---|---|
| Nginx 门户 | 443 (SSL) / 80→443 | web.mxdx.local |
浏览器 HTTPS |
| Apache + MediaWiki | 8080(仅本机) | 由 Nginx 反代至 wiki.mxdx.local |
浏览器 HTTPS |
| Samba 文件共享 | 445 / 139 | \\10.4.0.10\public、\finance、个人目录 |
文件管理器 / 映射网络驱动器 |
| NFS 代码共享 | 2049 | /data/nfs/code |
mount -t nfs 10.4.0.10:/data/nfs/code /mnt |
3. 实施记录
3.1 网络层 —— 接入内网
- VM1 配置双网卡桥接:WAN
172.16.30.208/24(出网)、LAN10.4.0.1/24(内网网关),提供 DNS/DHCP/NAT。 - VM2 由 NAT 切换为桥接模式,静态 IP 设为
10.4.0.10/24,网关指向10.4.0.1。 - VM1 的 DNS 区域文件将
web.mxdx.local、wiki.mxdx.local均解析到10.4.0.10,客户端无需改 hosts 即可用域名访问。
【截图:VM2 ip a 显示 10.4.0.10;VM1 ip a 显示双网卡】


3.2 Web 层 —— 企业门户 + HTTPS
- 使用
apt安装 Nginx,配置web.mxdx.local虚拟主机,监听 443 并启用自签 SSL 证书。 - 80 端口全部 301 跳转到 HTTPS;开启 Gzip 压缩与静态资源缓存(Cache-Control / Expires)。
- 门户首页经美化为「第四组」主题(毛玻璃导航、渐变 Hero、值班表今日高亮、新闻时间线)。
注:本项目 Nginx 采用发行版
apt仓库安装而非源码编译,以提升部署稳定性(详见 5.6)。
【截图:浏览器访问 https://web.mxdx.local 显示企业门户首页】
3.3 应用层 —— 内部知识库
apt安装 Apache2 + PHP + MediaWiki(1.39.x),Apache 监听本机8080。- Nginx 以
location /wiki/反向代理到127.0.0.1:8080,并透传Host、X-Forwarded-Proto头,使 MediaWiki 识别外层为 HTTPS。 LocalSettings.php中$wgServer设为https://wiki.mxdx.local,消除”访问后跳回 IP”的问题。- 批量创建 5 个分类(技术文档 / 运维手册 / 故障案例库 / 新人入职指南 / 公司制度)与 3 篇文档(Nginx安装与常用模块说明 / Samba共享权限配置排错手册 / 新人指南)。
【截图:Wiki 首页与 Special:Categories 五个分类;搜索”新人指南”命中文档】
3.4 文件层 —— Samba 与 NFS
- Samba:建立
public(公共读写)、finance(仅财务 zhangsan 可写、销售 lisi 拒访)、个人目录(各员工仅见自己文件)三类共享,配置valid users、create mask、browseable。 - NFS:
/data/nfs/code以(rw,sync,no_root_squash,no_subtree_check)导出给10.4.0.0/24,供 Linux 客户端挂载读写。 - 用户与组:创建 zhangsan(财务)、lisi(销售)、wangwu 三个账号,并将 zhangsan 加入
finance组,以组为单位控制财务盘访问权限。

4. 验收结果
4.1 任务5 客户端全功能验收
| 序号 | 角色 | 操作 | 预期结果 | 实际 |
|---|---|---|---|---|
| 1 | 新员工 | 浏览器打开 http://web.mxdx.local |
看到公司首页,自动跳转 HTTPS | ✅ |
| 2 | 员工 | 浏览器打开 http://wiki.mxdx.local |
看到 Wiki 首页,已有分类和文档 | ✅ |
| 3 | 员工 | 在 Wiki 中搜索”新人指南” | 能找到相关文档 | ✅ |
| 4 | 员工 | 映射公共盘 \\10.4.0.10\public |
能创建文件和文件夹 | ✅ |
| 5 | 张三(财务) | 映射 \\10.4.0.10\finance |
能访问 | ✅ |
| 6 | 李四(销售) | 映射 \\10.4.0.10\finance |
拒绝访问 | ✅ |
| 7 | 张三(财务) | 映射个人目录 | 只能看到自己的文件 | ✅ |
| 8 | Linux VM | mount -t nfs 10.4.0.10:/data/nfs/code /mnt |
挂载成功,可读写 | ✅ |
4.2 验收结果汇总表(评分用)
| 验收项 | 结果 | 截图 |
|---|---|---|
| 公司网站能访问 | ✅ | ![]() |
| Wiki 有文档 | ✅ | ![]() |
| 公共盘能读写 | ✅ | ![]() |
| 财务盘权限正确 | ✅ | 见 4.3 |
| 个人目录隔离 | ✅ | 见 4.4 |
| NFS 挂载成功 | ✅ | 见 4.5 |
4.3 财务盘权限验证(Samba valid users = @finance)
① 张三(财务)能访问 finance —— 输入 zhangsan / zs123456,成功进入并可读写:


② 李四(销售)访问 finance 被拒 —— net use \\10.4.0.10\finance /user:lisi ls123456 返回「系统错误 5 拒绝访问」,权限隔离生效(亦见 4.4 汇总图):

4.4 个人目录隔离验证
- 本人可访问:
\\10.4.0.10\lisi用 lisi 登录 → 命令成功完成,能看到自己的文件 ✅ - 他人被拒:
\\10.4.0.10\lisi用 zhangsan 登录 → 「系统错误 5 拒绝访问」,张三看不到李四的目录 ✅
4.5 NFS 挂载验证(Linux 客户端)
验证结果
① 挂载成功(nfs4)
→ type nfs4 + addr=10.4.0.10:确认为远端 NFSv4 挂载 ✅

② 远端文件可读
NFS-VERIFY-OK from VM2 at Wed Jul 15 15:43:55 CST 2026
→ 成功读取到仅存在于 VM2 服务端的标记文件,排除本地空目录假阳性 ✅
③ 可写可删
-rw-r--r-- 1 root root 15 Jul 15 16:50 /mnt/nfs/from_wsl_test.txt
→ 文件创建、写入、列表均正常,清理后无残留 ✅
写入测试

结论:三项验证全部通过,NFS 代码共享在 Linux 客户端(WSL)上挂载成功且读写正常。
5. 问题与总结
5.1 问题一:Samba 共享 ACCESS_DENIED(父目录权限陷阱)
现象:smbclient 访问 public/finance 均报 ACCESS_DENIED,共享目录权限本身已正确。 原因:共享父目录 /data 权限为 700,Samba 进程无权进入其子目录,导致所有共享不可访问。 解决:将父目录改为 755(chmod 755 /data),子目录共享恢复正常。 要点:Samba 的”有效权限”不仅取决于共享定义,还受整条路径的目录权限约束,排错时应从根目录逐层检查。
5.2 问题二:Wiki 访问后自动跳回 IP 地址
现象:浏览器打开 wiki.mxdx.local 会先加载一下,再 302 跳转到 http://172.16.30.100:8080/...。 原因:MediaWiki 安装时记录的安装地址(IP)被写入 LocalSettings.php 的 $wgServer,每次请求都判定当前域名非”规范地址”而重定向。 解决:将 $wgServer 改为 https://wiki.mxdx.local,并重载 Apache;同时 Nginx 反代需 proxy_set_header Host $host 与 X-Forwarded-Proto $scheme,让后端识别外层协议。
5.3 问题三:DNS 解析到错误网段(10.5.0.10)
现象:部分客户端 ping web.mxdx.local 解析到 10.5.0.10(第5组网段),而非本组 10.4.0.10。 原因:VM1 的 BIND 区域文件中 A 记录沿用了错误的组号。本机因 hosts 文件写死 10.4.0.10 而”看似正常”,掩盖了 DNS 本身错误。 解决:在 VM1 上 sed -i 's/10\.5\.0\.10/10.4.0.10/g' /etc/bind/db.mxdx.local 后 rndc reload;本机 hosts 中写死的 10.4.0.10 仅为本地测试用,正式环境客户端应统一以 VM1 真实 DNS 解析为准。

5.4 问题四:NFS 回环地址无法自测,需临时放行
现象:在 VM2 本机 mount 127.0.0.1:/data/nfs/code 直接报 access denied by server,无法验证 NFS 服务本身是否可用。 原因:/etc/exports 仅放行了正式网段 10.4.0.0/24,回环地址 127.0.0.1 不在允许列表,故被拒。 解决:为自测临时加一行 127.0.0.1(rw,sync,no_root_squash,no_subtree_check),验证挂载与读写正常后,再删除该行、仅保留 10.4.0.0/24 并 exportfs -ra,避免遗留非预期开放。
5.5 问题五:Windows 端换账号验证 Samba 权限失败
现象:VM2 本地 smbclient 用 zhangsan 能进 finance、lisi 被拒(配置完全正确),但 Windows 上无论怎么输密码都被拒,或换账号时不再弹窗、始终用旧身份登录。 原因:Windows 会缓存首次连接 \\10.4.0.10 的凭据(存于凭据管理器 cmdkey),且不允许同一服务器使用多个不同账号的多重连接,导致后续换账号测试全部沿用旧身份。 解决: 1. 每次换账号前 net use * /del /y 断开连接、cmdkey /delete:10.4.0.10 清除缓存凭据,并关闭所有文件管理器窗口; 2. 用命令行直接指定身份验证,绕过弹窗缓存:net use \\10.4.0.10\finance /user:lisi ls123456,返回「系统错误 5」即证明被正确拒绝。
要点:Samba 权限排错要先在服务端用 smbclient 本地自测,快速区分是”服务端配置问题”还是”Windows 客户端凭据问题”,避免在错误方向上耗时。
5.6 问题六:重启后网络中断与配置持久化
现象:虚拟机重启后,VM1 无法 ping 通 VM2(10.4.0.10),Windows 也无法访问 10.4.0.1/10.4.0.10,网页打不开。 原因:① VM1 双网卡均桥接同一物理网络,内核反向路径过滤(rp_filter)将”从不同接口进出”的包丢弃,导致跨网卡路由不通;② Windows 上的静态路由 route add 10.4.0.0 ... 未加 -p,重启后丢失,笔记本失去到内网的路由;③ VM1 的 ip_forward、rp_filter 等 sysctl 参数重启后回到默认值。 解决: 1. VM1 关闭反向路径过滤:sysctl -w net.ipv4.conf.all.rp_filter=0(并写入 /etc/sysctl.conf 持久化); 2. 确认并持久化 IP 转发:sysctl -w net.ipv4.ip_forward=1(写入 /etc/sysctl.conf); 3. Windows 加永久路由:route -p add 10.4.0.0 mask 255.255.255.0 172.16.30.208。 要点:凡是 ip / route / sysctl 这类运行时命令,重启都会失效;涉及网络的关键参数务必写入 /etc/network/interfaces、/etc/sysctl.conf 以及 Windows 的 route -p,完成后重启一次做”断电验证”。
5.8 总结
通过本次实训,完整实现了”网关 + 企业门户 + 知识库 + 文件共享 + 代码共享”的一体化内网办公平台。过程中对 Linux 网络配置、Web 服务器反向代理、Samba/NFS 权限模型、DNS 解析链 有了更深入的理解。最大的体会是:排错要从”整条链路”而非单点出发(如 Samba 看父目录权限、Wiki 看 $wgServer 与反代头、DNS 看区域文件而非仅本机 hosts、重启失效看持久化),才能准确定位根因。
报告生成日期:2026-07-15 | 第四组 | VM2(10.4.0.10)




Comments NOTHING