资讯详情

资讯详情

南京邮电大学计算机网络实验一:Windows Server 2019与Ubuntu 16.04双系统Web/FTP服务器搭建实战

简介这份资源是南京邮电大学计算机网络实验一的完整实验报告面向计算机、通信相关专业学生及需要完成网络操作系统课程实验的学习者聚焦Windows Server 2019与Ubuntu 16.04双平台下Web与FTP服务器的搭建与配置。报告涵盖Windows Server 2019工作环境配置、本地用户与本地组管理、IIS下Web服务器搭建并在网页显示学号加姓名、Apache与PHP服务安装、以及Windows和Linux下FTP服务器的部署与测试同时附有问题解决方法、心得体会与改进建议。资源包共1个doc文件约1.69MB内容为可直接参考的实验报告文档结构完整、步骤清晰便于对照复现实验流程、整理报告框架与排错思路。目前已有328人学习下载适合作为课程实验参考与期末复习材料。1. 从两台虚拟机说起这套实验资源到底能帮你搞定什么很多人第一次拿到南京邮电大学计算机网络实验一的任务书时心里是发虚的——要在 VMware 里同时跑起 Windows Server 2019 和 Ubuntu 16.04还要在两边分别把 Web 服务器和 FTP 服务器搭起来最后网页上得显示自己的学号和姓名FTP 目录里得躺着同样命名的文件。听起来像是运维的活实际上这是网络操作系统安装与配置这门课最核心的一次综合演练。它解决的不是“会不会点下一步”的问题而是让你亲手摸清 IIS、Apache、vsftpd 这三类服务在 Windows 和 Linux 两套体系下的配置逻辑差异。适合正在做这份实验报告、被 IIS 绑定和 vsftpd 权限卡住、或者想拿它当网络服务入门模板的计算机专业学生和刚转运维的从业者。我拆完这套材料后最大的感受是它表面考的是安装实际考的是你对“服务—端口—权限—目录”这条链路的理解深度。2. Windows Server 2019 侧IIS 站点绑定与本地用户体系2.1 为什么先配本地用户和组而不是直接开 IIS任务书里把“本地用户以及本地组的创建与配置”排在 Web 服务器搭建之前这个顺序不是随便写的。IIS 的网站身份验证、FTP 的登录隔离底层都依赖 Windows 的本地账户体系。如果你跳过这步直接建站后面做“用户登录后显示学号姓名”时就会发现匿名账户和指定账户的权限边界根本分不清。常见做法是先在“服务器管理器 → 工具 → 计算机管理 → 本地用户和组”里建一个专用账户比如netlab密码设成符合复杂度要求的字符串然后把它从 Users 组里摘出来单独控制。这样做的目的是让后续 IIS 和 FTP 都能引用同一个身份源避免出现“网站能匿名访问但 FTP 登不上”的割裂情况。具体操作上我一般会建两个组WebUsers和FtpUsers把netlab同时加进去。这样在 IIS 的授权规则里可以按组放行而不是逐个账户点。参数上注意Windows Server 2019 默认密码策略要求至少 8 位、含大小写和数字如果你在虚拟机里图省事设了123456后面配置 FTP 时会被“密码不符合策略”直接拦下这个坑我后面还会细说。2.2 安装 IIS 并添加网站物理路径与绑定的三个关键参数安装 IIS 的入口在“服务器管理器 → 添加角色和功能 → 基于角色或基于功能的安装 → Web 服务器(IIS)”。勾选时至少要把“Web 服务器 → 常见 HTTP 功能 → 默认文档”和“应用程序开发 → ASP.NET”带上否则你放个index.html进去可能因为默认文档列表里没有它而报 404。安装完成后在“管理工具”里打开 IIS 管理器右键“网站 → 添加网站”这里三个参数决定成败参数建议值说明网站名称NetLabWeb仅作标识不影响访问物理路径C:\inetpub\netlab提前建好避免用系统默认目录绑定类型http实验环境不配证书https 会额外报错IP 地址本机网卡 IP 或“全部未分配”虚拟机桥接模式下建议指定具体 IP端口8080 或 80若 80 被默认网站占用换 8080添加完成后把你的index.html放进物理路径内容里写上“学号姓名”。这里有个细节IIS 默认文档列表里index.html通常排在default.htm之后如果你两个文件都存在访问时会优先显示default.htm。我一般会直接把默认网站停掉只留自己新建的站点省得端口和默认文档打架。2.3 用浏览器验证并排查 404 与 401配置完站点后在虚拟机内部浏览器访问http://localhost:8080或者在宿主机访问http://虚拟机IP:8080。如果出现 404先看物理路径下文件是否存在、文件名是否和默认文档列表匹配如果出现 401.2说明匿名身份验证被关了去 IIS 的“身份验证”里把“匿名身份验证”启用。这一步的验证逻辑是先确认服务在监听再确认目录可读最后确认身份验证模式。很多同学卡在“网页打不开”就重装 IIS其实九成问题出在绑定端口和防火墙入站规则上。Windows Server 2019 默认开启防火墙你换了 8080 端口就得手动放行否则宿主机永远访问不到。3. Ubuntu 16.04 侧ApachePHP 与 vsftpd 的配置链路3.1 安装 Apache 和 PHP 并让 index.php 生效Ubuntu 16.04 下装 Apache 和 PHP 的命令很直接但装完之后能不能解析 PHP 才是分水岭。任务书要求“安装 Apache 以及 PHP 服务完成 web 服务器地搭建”这意味着你最终要能访问一个.php文件并看到输出。常见做法是sudo apt-get update sudo apt-get install apache2 php libapache2-mod-php -y这三条命令里apache2是 Web 服务器本体php是解释器libapache2-mod-php是让 Apache 把.php请求交给 PHP 处理的桥接模块。装完后默认站点目录在/var/www/html你可以直接在里面建一个info.php?php // 输出学号和姓名同时打印 PHP 环境信息用于验证模块加载 echo 学号XXXXXXXX 姓名XXX; phpinfo(); ?保存后访问http://localhost/info.php如果能看到学号姓名和 PHP 信息页说明 Apache 和 PHP 已经打通。如果浏览器直接下载了这个文件或者显示源码说明libapache2-mod-php没装或者没启用用sudo a2enmod php7.0启用后重启 Apache 即可。Ubuntu 16.04 默认 PHP 版本是 7.0这个版本号在启用模块时要写对写成php7.4会报模块不存在。3.2 vsftpd 的安装与本地用户登录配置Linux 侧的 FTP 服务器任务书指定了“在文件夹中创建学号姓名的文件”这意味着你需要一个可写的 FTP 目录和能登录的账户。安装 vsftpd 本身不难sudo apt-get install vsftpd -y难的是配置文件/etc/vsftpd.conf里那几个开关。默认情况下匿名访问是开的本地用户登录是关的。你要做的是把下面几项改对# 允许本地系统用户登录 FTP local_enableYES # 允许写操作否则无法创建文件 write_enableYES # 本地用户登录后的根目录默认是家目录 local_root/home/netlab/ftp # 限制用户只能在自己的目录里活动 chroot_local_userYES # 配合 chroot 使用允许可写根目录 allow_writeable_chrootYES改完后重启服务sudo service vsftpd restart。这里有个血泪经验如果你不设allow_writeable_chrootYESvsftpd 会因为“根目录可写”而拒绝用户登录报 500 OOPS 错误。这个报错信息很模糊新手容易以为是密码错了其实是 chroot 的安全限制在作祟。3.3 用命令行 FTP 客户端验证文件创建配置完成后在 Ubuntu 本机或者另一台虚拟机上用ftp命令连接ftp 127.0.0.1 # 输入用户名 netlab 和对应密码 # 登录成功后执行 put /etc/hostname 学号姓名.txt ls如果ls能看到你上传的文件说明写权限和目录映射都对了。注意put后面的目标文件名如果包含中文部分 FTP 客户端会乱码建议先用英文名测试确认链路通了再改成“学号姓名”的格式。这一步的验证逻辑是先确认能登录再确认能写最后确认文件落在正确的物理目录里。你可以退出 FTP 后用ls /home/netlab/ftp在系统层面再确认一次避免“FTP 里看到了但系统里找不到”的假象。4. 避坑与排查从 500 OOPS 到 IIS 条件不足4.1 现象IIS 安装时报“条件不足无法安装”原因Windows Server 2019 在虚拟机里如果没激活或者缺少某些系统组件添加角色向导会在最后一步报错。任务书里也提到了“Web 服务器无法安装条件不足重新配置服务器得到解决”。解决先检查虚拟机是否分配了足够的磁盘空间建议 40GB 以上然后确认“服务器管理器 → 本地服务器 → IE 增强的安全配置”是否关闭。如果还不行用 PowerShell 以管理员身份运行Install-WindowsFeature Web-Server -IncludeManagementTools这条命令会绕过图形向导直接装报错信息更具体。4.2 现象vsftpd 登录报 500 OOPS: vsftpd: refusing to run with writable root inside chroot()原因chroot_local_userYES把用户锁在家目录但家目录对用户是可写的vsftpd 认为这有安全风险。解决在/etc/vsftpd.conf末尾加一行allow_writeable_chrootYES然后重启服务。如果加完还报错检查家目录的权限是不是 777改成 755 再试。4.3 现象Apache 访问 PHP 文件直接显示源码原因libapache2-mod-php没装或者没启用Apache 把.php当普通文本处理了。解决运行sudo a2enmod php7.0然后sudo service apache2 restart。如果提示模块不存在用apt-cache search php查一下实际安装的 PHP 版本号Ubuntu 16.04 默认是 7.0但如果你手动装过其他版本模块名要对应改。4.4 现象宿主机访问虚拟机 Web 服务超时原因虚拟机的网络模式是 NAT宿主机无法直接访问虚拟机的 IP。解决把 VMware 的网络适配器改成桥接模式让虚拟机和宿主机在同一网段或者在 NAT 模式下配置端口转发把宿主机的 8080 转发到虚拟机的 80。另外别忘了检查 Ubuntu 的ufw防火墙sudo ufw allow 80放行 HTTP 端口。4.5 现象FTP 上传中文文件名乱码原因vsftpd 默认字符集和客户端不一致。解决在/etc/vsftpd.conf里加utf8_filesystemYES重启服务。如果还乱码换用 FileZilla 等支持字符集协商的客户端或者在命令行里先用英文名上传再在系统层面用mv改成中文名。5. 进阶技巧把两台虚拟机的服务串起来验证5.1 用 Windows 侧浏览器访问 Ubuntu 的 Apache这个操作能一次性验证两个系统的网络连通性和服务可用性。在 Windows Server 2019 的 IE 里访问http://Ubuntu的IP/info.php如果能看到学号姓名说明VMware 虚拟网络通了、Ubuntu 的 Apache 在监听、PHP 模块正常、防火墙没拦。这一步比单独在 Ubuntu 本机访问更有说服力因为它模拟了真实的跨主机访问场景。我一般会把这个验证放在实验报告的最后一张截图里比单机截图更能说明问题。5.2 用 Ubuntu 的 FTP 客户端连 Windows 的 FTP 站点反过来在 Ubuntu 终端里执行ftp Windows的IP用之前建的netlab账户登录尝试put一个文件。这一步会暴露 Windows 防火墙的入站规则问题——IIS 的 FTP 站点默认只允许本机访问你需要在“Windows Defender 防火墙 → 入站规则”里找到“FTP 服务器”相关规则并启用。如果连不上先telnet Windows的IP 21看端口通不通不通就是防火墙通了但登录失败就是 IIS 的 FTP 授权规则没配对。5.3 一个容易被忽略的验证习惯做完所有配置后我习惯把两台虚拟机的服务状态、端口监听、关键配置文件各截一张图然后重启一次虚拟机再验证一遍。很多同学配置完当时能用重启后 IIS 站点没启动、vsftpd 没设开机自启实验报告交上去被老师一问就露馅。Windows 侧用services.msc确认“World Wide Web Publishing Service”和“Microsoft FTP Service”是自动启动Ubuntu 侧用systemctl enable apache2 vsftpd设开机自启。从那以后我每次做完网络服务实验都强制走一遍“重启再验证”的流程这个习惯帮我省掉了无数次返工。希望帮到你。本文还有配套的精品资源点击获取
觉得有用,分享给同行:

为您的企业打造数字门面

稳重轻奢商务风格,端正雅致视觉,长效耐看不易过时。

立即咨询 →