
简介这份《计算机网络实验报告_双机互联》PDF面向高校计算机网络课程学生及初学组网技术的读者围绕对等网环境下的双机互联实验展开帮助读者理解局域网配置、网络参数设置与连通性测试等基础技能。报告完整记录了实验目的、对等网概念、网络规划、硬件连接、协议安装、IP地址与计算机标识设置、ping命令测试及资源共享等环节并配有拓扑图与操作截图可作为课程实验参考或自学对照材料。资源包共1个PDF文件大小约1.02MB内容紧凑适合打印或电子阅读。目前已有249人学习浏览说明其在同类实验报告中具有一定参考价值。读者可借此掌握星型拓扑组网、网线制作标准、TCP/IP协议配置及共享文件夹访问等实用知识快速完成实验报告撰写与操作复盘。1. 双机互联实验一根网线背后的三层排障逻辑两台电脑用一根网线直连互相 ping 通这件事听起来像是计算机网络课的第一节实验。但我见过太多人在这个实验上翻车——网线插好了IP 也配了ping 就是不通然后开始怀疑网线是坏的、网卡是坏的、系统是坏的。实际上双机互联这个实验之所以经典是因为它用最小的拓扑暴露了网络通信最核心的三层逻辑物理层链路是否建立、数据链路层是否协商成功、网络层地址是否在同一网段。任何一层出问题ping 都会失败但失败的现象和排查手段完全不同。这篇内容面向正在做计算机网络实验的学生和需要快速搭建双机直连环境的工程师把从硬件选型到 ping 通验证的完整路径拆开讲清楚同时把那些实验报告里不会写的踩坑点摊开来说。2. 双机互联的物理层与链路层线序、网卡与协商2.1 直通线还是交叉线先搞清楚你的网卡支不支持自动翻转双机互联最底层的坑就在网线上。早期做这个实验两台电脑网卡直连必须用交叉线一端 568A 线序另一端 568B 线序因为普通网卡的 TX 和 RX 引脚是固定的发和收必须交叉对接。但现在的网卡基本都支持 Auto-MDIX自动翻转插直通线也能通。问题是你实验室那台老机器支不支持不插上去试是不知道的。我一般的做法是先拿一根普通直通线插上试不通再换交叉线。如果手头没有交叉线可以买一个几块钱的 RJ45 交叉转接头比重新压线省事。判断网卡是否支持 Auto-MDIX在 Linux 下可以用ethtool看# 查看网卡是否支持自动翻转Auto-MDIX ethtool eth0 | grep -i auto-negotiation\|mdix # 输出中如果有 Auto-MDIX: on 或类似字段说明支持如果输出里没有 MDIX 相关信息说明这张网卡大概率不支持老老实实上交叉线。Windows 下可以在设备管理器的网卡属性里看高级选项有些驱动会暴露「Auto MDI/MDIX」开关。线序方面568B 的标准是橙白、橙、绿白、蓝、蓝白、绿、棕白、棕。568A 是把橙和绿两组对调。交叉线就是一头 568B 一头 568A。如果你自己压线记住一个原则1-3、2-6 交叉其余不变。2.2 网卡状态与链路协商看灯、看速率、看双工线插上之后第一件事不是配 IP而是确认物理链路有没有起来。网口旁边的指示灯是最直接的信号插上线之后灯亮说明物理层通了灯不亮要么线坏要么网口坏要么网卡被禁用。Linux 下用ip link看接口状态# 查看所有网络接口的状态 ip link show # 关注 eth0或有线网卡名的 state 字段 # UP 表示接口已启用DOWN 表示未启用 # 如果显示 NO-CARRIER说明物理链路没通如果接口是 DOWN先启用sudo ip link set eth0 up然后看链路协商结果# 查看链路速率和双工模式 ethtool eth0 | grep -i speed\|duplex\|link detected # 正常应该显示 Speed: 1000Mb/s, Duplex: Full, Link detected: yes这里有个常见问题两台机器协商出来的速率不一致比如一台 1000M 全双工另一台 100M 半双工。这种情况虽然有时也能通但丢包率会很高ping 会出现间歇性超时。解决办法是手动指定速率和双工模式# 手动设置速率和双工模式需要网卡驱动支持 sudo ethtool -s eth0 speed 1000 duplex full autoneg off注意两端要设成一样的。如果设完直接不通了用ethtool -s eth0 autoneg on恢复自动协商。Windows 下在「网络和共享中心」→「更改适配器设置」→ 右键网卡 →「属性」→「配置」→「高级」选项卡里可以找到「速度和双工」的设置项手动改成一致的值。2.3 用 ping 验证链路层之前先确认 ARP 能不能解析很多人配完 IP 就直接 ping不通就懵了。其实在 ping 之前有一个更底层的验证步骤看 ARP 表能不能解析到对方的 MAC 地址。因为 ping 走的是 IP 层但 IP 包要封装成帧发出去必须先通过 ARP 拿到对方的 MAC 地址。如果 ARP 都解析不了ping 必然不通。# 先 ping 一下对方 IP触发 ARP 解析 ping -c 1 192.168.1.2 # 然后查看 ARP 表 arp -a # 或者 ip neigh show # 如果对方 IP 对应的 MAC 地址显示为 incomplete 或 00:00:00:00:00:00说明 ARP 没解析成功ARP 解析失败的原因通常是物理链路没通、IP 不在同一网段、或者对方开了防火墙屏蔽了 ARP。先排除前两个再查防火墙。3. 网络层配置IP 地址、子网掩码与路由表3.1 IP 地址怎么配同一网段是硬性要求双机互联不需要网关不需要 DNS但两台机器的 IP 必须在同一网段。什么叫同一网段就是把 IP 和子网掩码做按位与运算之后网络号相同。举个例子A 机 IP 192.168.1.1掩码 255.255.255.0网络号是 192.168.1.0B 机 IP 192.168.1.2掩码 255.255.255.0网络号也是 192.168.1.0。同一网段能通。如果 B 机配成 192.168.2.2掩码 255.255.255.0网络号变成 192.168.2.0和 A 机不在同一网段ping 就不通。这时候有人会想加一条路由但双机直连没有路由器加了路由也没有下一跳所以最直接的办法就是把 IP 改到同一网段。Linux 下配 IP# 临时配置 IP重启后失效 sudo ip addr add 192.168.1.1/24 dev eth0 # 查看配置结果 ip addr show eth0Windows 下在网卡属性里选「Internet 协议版本 4 (TCP/IPv4)」手动填 IP 和掩码网关留空。提示如果两台机器都开了 Wi-Fi有线网卡也配了同网段 IP可能会出现路由冲突。建议做这个实验时先禁用 Wi-Fi避免流量走错接口。3.2 子网掩码写错有多致命一个 /24 写成 /25 的翻车记录子网掩码写错是实验报告里最高频的翻车点之一。我见过有人把 255.255.255.0 写成 255.255.255.128结果两台机器一个能通一个不能通。原因很简单/25 的掩码把 192.168.1.0/24 切成了两个子网192.168.1.0~127 和 192.168.1.128~255。如果 A 机 IP 是 192.168.1.1/25B 机是 192.168.1.200/25它们就不在同一子网了。排查方法用ipcalc或在线工具算一下网络号。# 计算网络号 ipcalc 192.168.1.1/25 # 输出会显示 Network: 192.168.1.0/25 ipcalc 192.168.1.200/25 # 输出会显示 Network: 192.168.1.128/25 # 两个网络号不同说明不在同一子网双机互联实验里最稳妥的掩码就是 255.255.255.0/24别搞花活。3.3 路由表怎么看确认流量走的是哪张网卡配完 IP 之后系统会自动生成一条直连路由。用ip route查看# 查看路由表 ip route show # 正常应该有一条类似这样的记录 # 192.168.1.0/24 dev eth0 proto kernel scope link src 192.168.1.1这条记录的意思是目标网段 192.168.1.0/24 的流量走 eth0 接口源地址是 192.168.1.1。如果路由表里没有这条记录或者走的是别的接口比如 wlan0ping 就会从错误的接口发出去自然不通。如果发现路由走错了接口可以手动加一条# 添加直连路由 sudo ip route add 192.168.1.0/24 dev eth0Windows 下用route print查看路由表用route add添加。4. 防火墙与安全软件ping 不通的头号嫌疑犯4.1 Windows 防火墙默认拦 ping入站规则怎么改Windows 防火墙默认会拦截 ICMP 回显请求也就是说对方 ping 你你的机器收到了包但不回。现象就是你能 ping 通对方对方 ping 不通你。这不是网络问题是防火墙问题。解决办法在「高级安全 Windows Defender 防火墙」→「入站规则」里找到「文件和打印机共享 (回显请求 - ICMPv4-In)」启用它。或者直接用命令行# 启用 ICMPv4 入站回显请求规则 netsh advfirewall firewall set rule name文件和打印机共享 (回显请求 - ICMPv4-In) new enableyes如果找不到这条规则可以手动创建# 创建允许 ICMP 入站的规则 netsh advfirewall firewall add rule nameAllow ICMPv4-In protocolicmpv4:8,any dirin actionallow4.2 Linux 的 iptables 与 firewalld临时放行 ICMPLinux 这边如果开了 firewalld 或 iptables 规则也可能拦 ICMP。先看 firewalld 状态# 查看 firewalld 状态 sudo systemctl status firewalld # 如果正在运行临时放行 ICMP sudo firewall-cmd --add-icmp-block-inversion --permanent sudo firewall-cmd --reload或者直接临时关闭防火墙做测试# 临时停止 firewalld仅用于实验排查 sudo systemctl stop firewalld # 测试完记得重新启动 sudo systemctl start firewalldiptables 的话查看当前规则# 查看 iptables 规则 sudo iptables -L -n # 如果 INPUT 链有 DROP 或 REJECT 规则临时清空 sudo iptables -F注意清空 iptables 规则只在实验环境下做生产环境千万别这么干。4.3 第三方安全软件那些悄悄拦包的「管家」国内很多机器上装了安全管家类软件这些软件有自己的网络防护模块会拦截 ICMP 或 ARP。现象是防火墙关了iptables 也清了ping 还是不通。这时候检查一下任务栏看有没有安全软件在跑。临时退出这些软件再试如果通了就是它们在拦。我一般做实验前会先把这些软件退掉省得排查半天以为是网络问题。5. 双机互联避坑指南5 个高频翻车现场5.1 现象网线插上灯不亮换线也不行原因网口坏了或者网卡被禁用。有些笔记本的网口有物理开关或者 BIOS 里禁用了有线网卡。解决先看设备管理器Windows或lspciLinux里有没有识别到网卡。如果识别到了但灯不亮换一台机器试同一个网口确认是网口问题还是网卡问题。笔记本的话检查 BIOS 里有没有禁用 LAN。5.2 现象ping 显示「一般故障」或「传输失败」原因这是 Windows 下常见的 ICMP 错误提示通常意味着路由不可达或 ARP 解析失败。最常见的原因是 IP 不在同一网段或者子网掩码写错。解决用ipconfig /all确认两台机器的 IP 和掩码手动算一下网络号是否一致。然后用arp -a看对方 IP 有没有解析出 MAC 地址。如果 ARP 表里是空的或 incomplete检查物理链路和防火墙。5.3 现象能 ping 通 IP但 ping 不通主机名原因双机互联没有 DNS 服务器主机名无法解析。这不是网络故障是正常现象。解决如果确实需要用主机名互访改 hosts 文件。Windows 在C:\Windows\System32\drivers\etc\hostsLinux 在/etc/hosts加一行192.168.1.2 对方主机名。5.4 现象ping 时通时不通丢包严重原因链路协商不稳定或者网线质量差。劣质网线在千兆速率下容易丢包。解决先用ethtool看协商速率和双工模式两端是否一致。如果不一致手动指定。如果一致但还是丢包换一根质量好点的网线或者把速率降到 100M 试试。5.5 现象一台能 ping 通另一台反过来不行原因单向不通通常是防火墙只拦了一个方向或者路由表不对称。解决先在能通的那台机器上 ping 对方确认双向。然后在不通的那台机器上检查防火墙入站规则以及ip route看有没有到对方网段的路由。Windows 下还要检查是不是网络位置被设成了「公用网络」公用网络模式下防火墙更严格。6. 进阶验证用 tcpdump 抓包看清 ping 的每一步ping 通了不代表你理解了整个过程。如果想真正搞清楚双机互联的通信细节抓包是最直接的手段。在 Linux 上用 tcpdump 抓 ICMP 和 ARP# 抓取 eth0 上的 ICMP 和 ARP 包 sudo tcpdump -i eth0 -n -e icmp or arp # -n 不解析主机名-e 显示 MAC 地址然后在另一台机器上 ping 过来你会看到类似这样的输出ARP, Request who-has 192.168.1.1 tell 192.168.1.2, length 28 ARP, Reply 192.168.1.1 is-at aa:bb:cc:dd:ee:ff, length 28 IP 192.168.1.2 192.168.1.1: ICMP echo request, id 1, seq 1, length 64 IP 192.168.1.1 192.168.1.2: ICMP echo reply, id 1, seq 1, length 64这四行输出完整展示了 ping 的底层流程先 ARP 请求拿 MAC 地址ARP 应答返回然后 ICMP 请求发出ICMP 应答返回。如果 ARP 那两行没有出现说明链路层就没通如果 ARP 有但 ICMP 没有说明 IP 层或防火墙有问题。Windows 下可以用 Wireshark 做同样的抓包过滤条件写icmp || arp。抓包还有一个好处能看清 ping 包的大小和 TTL。默认 ping 包是 64 字节TTL 在 Linux 上通常是 64Windows 上是 128。如果 TTL 异常小说明中间经过了多跳路由那你的「双机直连」可能并不是真的直连。我自己的习惯是每次做双机互联实验ping 通之后都会抓一次包确认 ARP 和 ICMP 的交互过程符合预期。这个习惯帮我排掉过好几次「以为通了其实走错接口」的玄学问题。希望帮到你。本文还有配套的精品资源点击获取