简介:这份《计算机网络实验报告_双机互联》PDF面向高校计算机网络课程的学生与自学者,聚焦局域网组建与对等网互联这一基础实验场景,帮助读者理解双机通信的完整配置流程。资源包内仅含1个PDF文件,大小约1.02MB,内容以实验报告形式呈现,涵盖实验目的、对等网概念、网络规划、硬件连接、协议安装、IP地址与计算机标识设置、ping连通性测试及资源共享等模块,并配有拓扑图与操作截图辅助理解。报告完整记录了从星型拓扑规划、网卡与双绞线制作,到TCP/IP协议配置、工作组设置、共享文件夹访问的实操过程,可作为课程作业参考或实验预习复习材料。目前已有249人学习,适合需要掌握对等网搭建与基本网络命令的初学者对照练习。
1. 双机互联实验:一根网线背后的三层排错逻辑
两台电脑用一根网线直连,互相 ping 通,这大概是计算机网络课里最不起眼的一个实验。但真到动手的时候,翻车的人远比想象中多:网线插上了,网卡灯也亮了,ping就是不通,屏幕上跳出「一般故障」或者「请求超时」,然后对着两台机器发呆。这个实验报告要解决的核心问题其实就一句话——在没有交换机、没有路由器、没有 DHCP 服务器的条件下,让两台机器通过一条物理链路完成 IP 层互通。它属于最基础的对等网(Peer-to-Peer)组网场景,也是理解「物理层→数据链路层→网络层」这条链路怎么逐层打通的最小实验单元。适合刚学完 IP 地址和子网掩码、准备第一次动手连线的同学,也适合工作几年但一直没搞明白「为什么网线直连要交叉线」的工程师回头补课。下面按「先想清楚再动手」的顺序,把选型、配置、验证和排错一次讲透。
2. 直连之前先想清楚:网线、网卡与 IP 的三件事
双机互联看着简单,但它同时踩在物理层、数据链路层和网络层三个层面上。任何一层没对齐,ping都不会通。所以动手前必须把三件事想明白:用什么线、网卡处于什么状态、IP 怎么规划。这三件事决定了后面 80% 的故障来源。
2.1 直通线还是交叉线:先看网卡支不支持自动翻转
早期做双机互联,标准答案是「必须用交叉线」。原因是网卡的 RJ45 接口里,发送引脚(TX)和接收引脚(RX)是固定的:一台机器的 TX 要接到另一台机器的 RX 上,信号才能对上。如果两台机器都用直通线,TX 对 TX、RX 对 RX,物理链路根本建立不起来。
但现在的网卡基本都支持Auto-MDIX(自动线序翻转),网卡会自动检测对端是直通还是交叉,然后内部把收发引脚调过来。所以现实情况是:千兆及以上的网卡,直通线也能直连。判断方法很简单,看插上网线后网卡指示灯的状态,或者进系统看链路是否 up。
| 场景 | 推荐线序 | 说明 |
|---|---|---|
| 两台老设备(百兆及以下) | 交叉线 | 不支持 Auto-MDIX,必须交叉 |
| 至少一端支持千兆 | 直通线可用 | Auto-MDIX 自动翻转 |
| 不确定 | 交叉线 | 兼容性最好,不会错 |
提示:如果手头只有直通线又怀疑是线序问题,先别急着做交叉线,进系统看链路状态。链路 up 说明物理层通了,问题在更上层。
2.2 网卡状态:别让「已断开」骗了你
物理链路通了,不代表网卡就绪。Windows 下经常出现「网络电缆被拔出」但网线明明插着的情况,原因通常是网卡被禁用、驱动异常,或者网卡节能设置把链路关了。
排查顺序:
- 设备管理器里看网卡有没有黄色感叹号,有就是驱动问题。
- 网络连接里看适配器是不是「已禁用」,右键启用。
- 网卡属性 → 电源管理 → 取消「允许计算机关闭此设备以节约电源」。
- 高级选项里看「速度和双工」是不是被锁死在某个不匹配的值,改成「自动协商」。
Linux 下用ip link看接口状态,state UP才算链路就绪。如果是DOWN,先ip link set eth0 up,再看ethtool eth0里的Link detected: yes。
2.3 IP 规划:同网段、不冲突、别用保留地址
双机互联不需要网关,但两台机器的 IP 必须在同一个子网里。常见做法是:
- A 机:
192.168.1.1/24 - B 机:
192.168.1.2/24 - 子网掩码:
255.255.255.0
这里有几个容易踩的点:
- 不要用
192.168.0.1或192.168.1.1之外的地址段,除非你确认没有冲突。有些路由器默认占用了这些地址,虽然直连时路由器不在链路上,但习惯上还是避开。 - 不要配网关。直连场景没有网关,配了反而可能导致系统把包发给一个不存在的下一跳。
- 不要用
169.254.x.x。这是 APIPA 自动分配的地址,出现它说明 DHCP 没拿到地址,系统自己兜底了,两台机器不一定在同一网段。
Linux 下临时配 IP:
# 给 eth0 配 192.168.1.1/24,不配网关 sudo ip addr add 192.168.1.1/24 dev eth0 sudo ip link set eth0 up # 查看结果 ip addr show eth0ip addr add是临时生效,重启就没了。/24表示子网掩码 255.255.255.0。dev eth0指定网卡名,实际名字可能是enp3s0之类,用ip link先确认。
Windows 下在「网络和共享中心 → 更改适配器设置 → 属性 → IPv4」里手动填:
- IP 地址:
192.168.1.1 - 子网掩码:
255.255.255.0 - 默认网关:留空
- DNS:留空
配完用ipconfig确认,看到IPv4 地址和子网掩码正确即可。
3. 从 ping 通到 ping 稳:验证链路的三层命令
IP 配好了,接下来就是验证。很多人只会敲一个ping,通了就完事,不通就抓瞎。其实验证要分层做:先看链路层通不通,再看网络层通不通,最后看通得稳不稳。每一层都有对应的命令和判断标准。
3.1 链路层验证:ARP 表里有没有对方的 MAC
ping之前,先确认链路层能不能解析到对方的 MAC 地址。因为 IP 包要封装成帧发出去,必须知道目的 MAC。如果 ARP 解析失败,ping会直接报「无法访问目标主机」。
Windows:
# 先 ping 一下触发 ARP,然后看 ARP 缓存 ping 192.168.1.2 arp -aLinux:
ping -c 2 192.168.1.2 ip neigh show dev eth0如果 ARP 表里出现了192.168.1.2对应的 MAC 地址,说明链路层通了。如果显示INCOMPLETE或失败,说明 ARP 请求发出去没收到回应,问题在物理层或数据链路层。
注意:ARP 表有老化时间,Windows 默认几分钟,Linux 默认几十秒。如果刚配完 IP 就查,可能还没触发 ARP,先 ping 一下再看。
3.2 网络层验证:ping 的返回码怎么读
ping通了不代表没问题,返回的信息里藏着很多线索。常见的几种结果:
| 返回信息 | 含义 | 排查方向 |
|---|---|---|
来自 192.168.1.2 的回复: 字节=32 时间<1ms TTL=128 | 正常 | 无 |
请求超时 | 包发出去没回应 | 对方防火墙、IP 冲突、链路不通 |
无法访问目标主机 | ARP 解析失败 | 物理层、网卡、线序 |
一般故障 | 本地协议栈或路由问题 | 网关配置、路由表、协议栈异常 |
传输失败。常见故障 | 网卡驱动或链路问题 | 驱动、网卡硬件 |
「一般故障」这个词在热搜里出现频率很高,它通常不是网络不通,而是本地系统的问题。常见原因:
- 配了网关但网关不可达,系统尝试走网关失败。
- 路由表里有冲突条目。
- 防火墙或安全软件拦截了 ICMP。
- 协议栈异常,重启网卡或重置 Winsock 可解决。
Windows 下重置命令:
netsh winsock reset netsh int ip reset # 重启电脑Linux 下检查路由表:
ip route show # 如果看到 default via 192.168.1.254 之类的条目,而 192.168.1.254 不存在,删掉它 sudo ip route del default3.3 稳定性验证:大包、连续 ping 和双向测试
ping通一次不算通,要测稳定性。三个维度:
大包测试:默认ping是 32 字节,太小了,掩盖不了 MTU 问题。用-l(Windows)或-s(Linux)发大包:
# Windows:发 1472 字节的包,加上 28 字节头正好 1500 ping -l 1472 192.168.1.2 # Linux:同样 ping -s 1472 192.168.1.2如果小包通、大包不通,通常是 MTU 或网卡双工模式问题。双工不匹配(一端全双工一端半双工)会导致大包丢包严重。
连续测试:ping -t(Windows)或ping(Linux 默认一直 ping),观察一段时间内的丢包率。直连链路丢包率应该是 0%,如果有丢包,检查网线质量、网卡双工设置。
双向测试:A ping B 通了,还要 B ping A。有些防火墙只拦入站不拦出站,单向通的情况很常见。
# A 机 ping -c 100 192.168.1.2 # B 机 ping -c 100 192.168.1.1两边都跑 100 个包,看丢包率和延迟。直连场景延迟应该小于 1ms,丢包率 0%。
4. 双机互联避坑:五条血泪经验
这个实验看起来简单,但坑特别多。下面五条是我自己踩过和帮别人排查时遇到最多的,每条按「现象 → 原因 → 解决」写清楚。
4.1 现象:网卡灯亮,但 ping 报「无法访问目标主机」
原因:网卡灯亮只代表物理层有信号,不代表链路层能通信。最常见的是线序不对——两台老机器用直通线,TX 对 TX,物理层有信号但数据帧发不出去。另一种可能是网卡双工模式不匹配,一端全双工一端半双工,链路能 up 但通信异常。
解决:先换交叉线试。如果换了还不行,进网卡高级设置,把「速度和双工」改成「自动协商」或手动统一为「100Mbps 全双工」。Linux 下用ethtool -s eth0 autoneg on开启自动协商。
4.2 现象:ping 显示「一般故障」
原因:这个报错基本不是网络不通,而是本地系统的问题。最常见的是配了网关但网关不可达,系统尝试走网关失败后返回这个错误。其次是路由表冲突、防火墙拦截 ICMP、协议栈异常。
解决:先检查有没有配网关,直连场景把网关留空。然后ip route show看路由表,删掉多余的 default 路由。Windows 下netsh winsock reset重置协议栈。最后检查防火墙,临时关闭测试。
4.3 现象:小包能通,大包不通
原因:MTU 问题或双工不匹配。直连场景 MTU 默认 1500,但如果网卡双工不匹配,大包在传输过程中容易出错。另一种可能是网卡驱动有 bug,对大包处理异常。
解决:先统一双工模式为自动协商。如果还不行,临时把 MTU 调小测试:
# Linux 临时改 MTU sudo ip link set eth0 mtu 1400 # Windows netsh interface ipv4 set subinterface "以太网" mtu=1400 store=persistent如果调小 MTU 后大包能通,说明链路质量有问题,换网线或换网卡。
4.4 现象:A 能 ping 通 B,B ping 不通 A
原因:单向通通常是防火墙问题。Windows 防火墙默认拦截入站 ICMP,A ping B 时,B 的防火墙可能放行了(或者 B 的防火墙配置允许),但 B ping A 时 A 的防火墙拦截了。另一种可能是 A 机配了错误的静态 ARP 或路由。
解决:检查两边防火墙的入站规则,临时关闭测试。Windows 下:
# 允许 ICMP 入站 netsh advfirewall firewall add rule name="Allow ICMP" protocol=icmpv4:8,any dir=in action=allowLinux 下:
sudo iptables -A INPUT -p icmp --icmp-type echo-request -j ACCEPT4.5 现象:IP 配好了,但ipconfig显示169.254.x.x
原因:这是 APIPA 地址,说明系统没拿到 DHCP 地址,自己兜底分配了一个。直连场景本来就不该有 DHCP,出现这个说明网卡被设置成了「自动获取 IP」,而链路上没有 DHCP 服务器。
解决:手动配静态 IP。Windows 下在 IPv4 属性里选「使用下面的 IP 地址」,填192.168.1.1和255.255.255.0。Linux 下用ip addr add配。配完ipconfig /release再ipconfig /renew刷新一下。
5. 进阶技巧:用双机互联做带宽和延迟的粗略测量
双机互联实验做完ping只是及格线。如果想再往前走一步,可以用这条直连链路做点更有意思的事——粗略测一下带宽和延迟。不需要专业仪器,系统自带的工具就够。
5.1 用 iperf3 测直连带宽
iperf3是测带宽的常用工具,一端跑服务端,一端跑客户端。
服务端(B 机):
iperf3 -s客户端(A 机):
# 测 10 秒,输出结果 iperf3 -c 192.168.1.2 -t 10输出里的Bitrate就是带宽。千兆网卡直连,正常应该在 900Mbps 以上。如果只有 100Mbps 左右,检查网卡是不是协商到了百兆,或者网线只有百兆规格(比如只接了 4 根线)。
5.2 用 ping 的 TTL 和延迟估算链路质量
ping返回的TTL值可以粗略判断对端系统类型:Windows 默认 128,Linux 默认 64。经过路由器会递减,直连场景不会变。
延迟方面,直连应该在 1ms 以下。如果看到时间=2ms或更高,检查是不是走了无线网卡,或者系统负载太高。
# Linux 下更精确的延迟统计 ping -c 100 -i 0.2 192.168.1.2 | tail -3-i 0.2表示每 0.2 秒发一个包,tail -3看最后的统计行,里面有min/avg/max/mdev,mdev是抖动,直连场景应该很小。
5.3 一个容易被忽略的细节:关闭多余网卡
如果机器上同时有有线和无线网卡,系统可能会把流量走无线,导致直连链路测出来的数据不准。测试前把无线网卡禁用,或者用route命令指定走有线接口。
Linux 下:
# 查看路由,确认 192.168.1.0/24 走的是 eth0 ip route get 192.168.1.2Windows 下:
# 查看路由表 route print如果发现192.168.1.0的网关指向了无线网卡的网关,删掉那条路由,或者把有线网卡的优先级调高。
我自己做这个实验的习惯是:配完 IP 先ping三次,通了再ping -t跑一分钟看丢包,最后用iperf3测一下带宽。三步走完,这条链路才算真正验证过。很多同学做完ping就交报告,结果答辩时被问「带宽多少」就卡住了。多花十分钟测一下,报告里多一行数据,说服力完全不一样。希望帮到你。
本文还有配套的精品资源,点击获取