简介:这份PDF面向计算机网络课程的初学者与实验课学生,聚焦局域网接入Internet时TCP/IP属性的配置与连通性测试,帮助读者在动手实践中理解IP地址、子网掩码、默认网关和DNS服务器的作用与设置方法。资源包共1个PDF文件,大小约557KB,内容以实验指导文档形式呈现,涵盖实验目的、设备与分组要求、预备知识及ping、ipconfig等命令的使用说明,并给出从ping 127.0.0.1到ping远程主机的典型检测次序与故障分析思路。目前已有99人学习。读者可借助它完成两人一组的实验任务,掌握TCP/IP属性修改流程,学会依据ping与ipconfig的返回结果判断本地协议栈、网卡、网关及DNS配置是否正常,从而积累网络排错经验,适合作为课堂实验配套参考或课后复习材料。
1. 从一份实验报告说起:TCP-IP 属性设置与测试到底在测什么
很多人第一次拿到「计算机网络 实验1 TCP-IP属性设置与测试.pdf」这类实验任务时,第一反应是打开虚拟机敲两行ipconfig截图交差。但真正做过排障的人知道,这个实验的核心不是背命令,而是建立一套「先看本机属性、再验证连通性、最后定位故障层」的排查链路。它解决的是最朴素也最高频的问题:两台机器为什么 ping 不通、DNS 为什么解析失败、IP 地址到底是静态配还是 DHCP 拿。适合网络运维、后端开发、嵌入式联网调试,以及准备 linux 面试题测试里网络部分的人。下面按「属性怎么设 → 怎么测 → 坑在哪」把这条链路拆开讲透。
2. TCP-IP 属性设置:从 ipconfig 输出反推该配什么
2.1 四个属性决定一台主机能不能上网
一台主机的 TCP-IP 属性,落到配置界面里其实就四项:IP 地址、子网掩码、默认网关、DNS 服务器。这四项不是随便填的,它们各自对应一个判断逻辑。
IP 地址决定「我是谁」,子网掩码决定「谁和我同网段」,默认网关决定「跨网段找谁转发」,DNS 决定「域名翻译成哪个 IP」。四者缺一,现象完全不同:缺网关只能通内网,缺 DNS 能 ping 通 IP 但打不开域名,掩码配错会出现「同网段却 ping 不通」这种最容易被误判成硬件故障的情况。
在 Windows 上查看当前属性,最直接的是ipconfig /all;在 Linux 上是ip addr加ip route加cat /etc/resolv.conf三条组合。很多人只记ipconfig,但ipconfig不带/all时看不到 DNS 和 DHCP 状态,排障时信息不够。
# Windows:查看完整 TCP-IP 属性,含 DNS、DHCP、MAC ipconfig /all # Linux:分三条看,比一条 ipconfig 更清晰 ip addr show # 看 IP 和掩码 ip route show # 看默认网关 cat /etc/resolv.conf # 看 DNS 服务器逻辑说明:ipconfig /all输出里重点看「IPv4 地址」「子网掩码」「默认网关」「DNS 服务器」四行,以及「DHCP 已启用」是 yes 还是 no。Linux 侧拆成三条是因为ip addr只管地址,路由和 DNS 是独立子系统,混在一起看容易漏。参数上,ip addr show可以加网卡名如ip addr show eth0只看某块网卡,ip route show默认只看主路由表,多网卡场景要加table参数。
2.2 静态配置和 DHCP 怎么选
选静态还是 DHCP,判断标准只有一个:这台机器需不需要一个「别人能稳定找到它」的地址。服务器、打印机、网络设备管理口,配静态;员工笔记本、测试机、临时容器,用 DHCP。
Windows 下改静态,图形界面路径是「网络适配器 → 属性 → Internet 协议版本 4 → 使用下面的 IP 地址」。命令行更可控:
# Windows:用 netsh 配静态 IP,适合脚本化 netsh interface ip set address name="以太网" static 192.168.1.50 255.255.255.0 192.168.1.1 netsh interface ip set dns name="以太网" static 223.5.5.5 # Linux(netplan 体系,Ubuntu 18.04+) # /etc/netplan/01-netcfg.yaml network: version: 2 ethernets: eth0: dhcp4: no addresses: [192.168.1.50/24] gateway4: 192.168.1.1 nameservers: addresses: [223.5.5.5, 119.29.29.29]逻辑说明:netsh那条命令里,name必须和「网络连接」里显示的适配器名完全一致,中文系统常见是「以太网」,写错会报「找不到元素」。Linux 的 netplan 改完必须执行sudo netplan apply,只改文件不 apply 是不生效的,这是新手最常见的翻车点。参数上,/24等价于255.255.255.0,网关必须和本机 IP 在同一网段,否则 apply 会直接报错。
提示:改静态 IP 前先
ipconfig /all记下当前 DHCP 分配的地址和网关,改错了还能照着改回来,这就是排障的后悔药。
2.3 属性配完先自检,别急着 ping 别人
配完属性,正确的顺序是先看本机回环,再看网关,最后才看外网。跳过前两步直接 ping 百度,一旦不通你根本不知道是属性错、网关错还是 DNS 错。
# 第一步:回环,验证协议栈本身正常 ping 127.0.0.1 # 第二步:本机地址,验证网卡和 IP 绑定正常 ping 192.168.1.50 # 第三步:网关,验证二层和路由可达 ping 192.168.1.1 # 第四步:外网 IP,验证路由转发 ping 223.5.5.5 # 第五步:域名,验证 DNS ping www.baidu.com逻辑说明:这五步是一条故障分层链。127.0.0.1 不通说明协议栈或防火墙有问题;本机地址不通说明网卡没起来;网关不通说明网线、VLAN 或掩码有问题;外网 IP 通但域名不通,问题 100% 在 DNS。参数上,ping默认发 4 个包,排障时建议加-t(Windows)或-c 100(Linux)持续压测,看丢包率而不是只看通不通。
3. 连通性测试:ping 和 ipconfig 的组合排查法
3.1 ping 的返回值到底在说什么
ping不是只有「通」和「不通」两种结果。它的输出里藏着大量信息:延迟、TTL、丢包率、错误类型。看懂这些,比多敲十条命令有用。
TTL 值能反推对端系统:Windows 默认 128,Linux 默认 64,经过路由器每跳减一。如果你 ping 一个「Linux 服务器」却收到 TTL=128,那它大概率是 Windows 或者中间有 NAT。延迟突然从 1ms 跳到 200ms,说明路径变了或者链路拥塞。
错误信息更关键。Request timed out是包发出去了没回应,可能是对端防火墙丢弃,也可能是路由不可达。Destination host unreachable是本机路由表里根本没有去往目标的路径,通常是网关没配或网关挂了。ping: baidu.com: temporary failure in name resolution是 DNS 解析失败,跟网络连通性无关,别去查网线。
# Windows:持续 ping 看丢包和抖动 ping -t 192.168.1.1 # Linux:指定包大小和次数,测 MTU 相关问题 ping -c 100 -s 1472 192.168.1.1 # 追踪路径,定位是哪一跳开始不通 tracert 223.5.5.5 # Windows traceroute 223.5.5.5 # Linux逻辑说明:-s 1472是测 MTU 的经典用法,1472 字节数据加 28 字节 IP/ICMP 头正好 1500,如果这个大小不通而小包通,说明路径 MTU 有问题。tracert输出里如果前几跳通、中间某跳开始全是*,问题就在那一跳之后的链路,而不是你的本机属性。
3.2 ipconfig 媒体已断开连接意味着什么
ipconfig输出里出现「媒体已断开连接」,是很多人搜到的高频问题。它的字面意思是网卡没有检测到链路信号,也就是物理层没通。原因通常有三类:网线没插好或坏了、交换机端口没启用、网卡驱动异常。
排查顺序:先换一根网线,再看交换机端口指示灯,最后在设备管理器里看网卡有没有黄色感叹号。如果是虚拟机,检查虚拟网络编辑器的桥接/ NAT 设置,以及宿主机对应的虚拟网卡有没有启用。这个错误跟 IP 配置无关,改 IP 是白费功夫。
# Windows:看网卡链路状态 netsh interface show interface # Linux:看网卡是否 UP 以及有没有 carrier ip link show eth0 ethtool eth0 | grep -i link逻辑说明:netsh interface show interface的「状态」列会显示「已连接」或「已断开」,直接对应媒体状态。Linux 的ip link show里,state UP且LOWER_UP才代表链路和协议都起来了,只有UP没有LOWER_UP说明网线或对端有问题。ethtool的Link detected: yes/no是最直接的物理层判断。
3.3 用 ping 包大小快速判断 MTU 和分片问题
有些场景 ping 小包通、大包不通,比如能 ping 通网关但传文件卡死,或者某些网站能打开首页但加载不了图片。这往往是 MTU 或分片问题。
判断方法是用不同大小的包去 ping,找到「能通的最大包」。Windows 下ping -l 大小 -f 目标,-f表示不分片;Linux 下ping -s 大小 -M do 目标。
# Windows:从 1472 往下试,找到不分片能通的最大值 ping -l 1472 -f 223.5.5.5 ping -l 1400 -f 223.5.5.5 # Linux:-M do 禁止分片 ping -s 1472 -M do 223.5.5.5逻辑说明:如果 1472 不通但 1400 通,说明路径 MTU 小于 1500,常见于 PPPoE 拨号或某些隧道环境。解决办法是把本机 MTU 调小,Windows 用netsh interface ipv4 set subinterface "以太网" mtu=1400 store=persistent,Linux 用ip link set eth0 mtu 1400。参数上,-f和-M do是关键,不加这两个参数系统会自动分片,测不出真实 MTU。
4. 避坑与排查:TCP-IP 属性设置里最容易翻车的五件事
4.1 现象:同网段两台机器 ping 不通,但都能上网
原因:子网掩码配错。比如 A 是192.168.1.10/24,B 是192.168.1.20/25。B 的掩码是 255.255.255.128,它认为192.168.1.10不在自己网段,于是把包发给网关,网关再转回来,如果网关没开代理 ARP 就丢了。
解决:统一同网段所有机器的掩码,用ipconfig /all逐台核对。跨网段通信必须走网关,同网段通信靠 ARP,掩码不一致会破坏这个判断。
4.2 现象:ping 域名报 temporary failure in name resolution
原因:DNS 没配或配错。Linux 下/etc/resolv.conf被 NetworkManager 覆盖,手动改完重启就丢。
解决:不要直接改/etc/resolv.conf,在 netplan 或nmcli里配 DNS。临时验证可以echo "nameserver 223.5.5.5" > /etc/resolv.conf,但要知道这是临时的。用nslookup www.baidu.com 223.5.5.5直接指定 DNS 测试,能区分是 DNS 服务器问题还是本机配置问题。
4.3 现象:ping 内网显示「一般故障」
原因:Windows 下这个提示通常对应 ICMP 被防火墙拦截,或者目标主机开启了「文件和打印机共享」的防火墙规则但没放行 ICMP。
解决:在目标机防火墙入站规则里启用「文件和打印机共享(回显请求 - ICMPv4-In)」。如果是 Linux,检查iptables -L -n或firewall-cmd --list-all有没有 DROP icmp。注意,ping 不通不代表服务不通,很多服务器禁 ping 但 80 端口正常,别把禁 ping 当成宕机。
4.4 现象:改了静态 IP 后彻底断网,连网关都 ping 不通
原因:网关地址填错,或者 IP 和网关不在同一网段。比如 IP 填192.168.1.50,网关填192.168.0.1,本机路由表里根本没有去往192.168.0.1的路径。
解决:网关必须和本机 IP 在同一子网。改之前先ipconfig /all抄下 DHCP 给的网关,照着填。如果已经断网,Windows 下用netsh interface ip set address name="以太网" source=dhcp切回自动获取,Linux 下把 netplan 的dhcp4改回yes再 apply。
4.5 现象:虚拟机里 ping 不通外网,宿主机正常
原因:虚拟机网络模式选错。NAT 模式下虚拟机可以访问外网但外网访问不了虚拟机;桥接模式下虚拟机和宿主机同网段,但需要局域网有 DHCP 或手动配同网段 IP;仅主机模式完全隔离。
解决:先确认需求。要上网选 NAT,要被局域网其他机器访问选桥接。桥接模式下如果局域网没有 DHCP,必须手动配和宿主机同网段的静态 IP 和网关。检查虚拟机网卡是否连接,VMware 里「已连接」和「启动时连接」两个勾都要打上。
5. 进阶技巧:把属性设置和测试写成可复用的自检脚本
单次实验做完就忘,是这类实验最大的浪费。我一般会把「属性检查 + 分层 ping + DNS 验证」写成一个脚本,换台机器直接跑,三秒定位问题层。下面这个 bash 脚本在 Linux 上可直接用,Windows 可以用 PowerShell 改写。
#!/bin/bash # netcheck.sh - TCP-IP 属性与连通性分层自检 GATEWAY=$(ip route | awk '/default/ {print $3}') DNS=$(grep nameserver /etc/resolv.conf | head -1 | awk '{print $2}') TARGET_IP="223.5.5.5" TARGET_DOMAIN="www.baidu.com" echo "=== 本机属性 ===" ip -4 addr show | grep inet echo "网关: $GATEWAY" echo "DNS: $DNS" echo "=== 分层连通性 ===" ping -c 2 127.0.0.1 > /dev/null && echo "[OK] 回环" || echo "[FAIL] 协议栈异常" ping -c 2 "$GATEWAY" > /dev/null && echo "[OK] 网关" || echo "[FAIL] 网关不可达,查网线/VLAN/掩码" ping -c 2 "$TARGET_IP" > /dev/null && echo "[OK] 外网IP" || echo "[FAIL] 路由转发异常" ping -c 2 "$TARGET_DOMAIN" > /dev/null && echo "[OK] DNS解析" || echo "[FAIL] DNS异常,检查 $DNS"逻辑说明:脚本先抓网关和 DNS,再按回环、网关、外网 IP、域名四层依次 ping,每层给出明确的失败提示。这样输出一眼就能看出问题在哪一层,不用人肉判断。参数上,-c 2只发两个包够快,生产排障可以改成-c 10看丢包率。awk '/default/ {print $3}'抓默认路由的网关地址,多网卡场景要指定dev eth0。
再补一个 DNS 专项验证,因为 DNS 问题最容易被误判成「网络不通」:
# 直接指定 DNS 服务器查询,绕开本机配置 nslookup www.baidu.com 223.5.5.5 dig @223.5.5.5 www.baidu.com +short # 对比本机默认 DNS 的结果 nslookup www.baidu.com逻辑说明:如果指定 DNS 能解析而默认不能,说明本机/etc/resolv.conf配错或被覆盖;如果两个都不能,说明 DNS 服务器本身有问题或到 DNS 的网络不通。dig +short只输出解析结果,适合脚本里做判断。
最后说个我自己的习惯:每次配完静态 IP,我一定先ping网关,再ping一个外网 IP,最后ping域名,三步都过了才认为配置完成。这个顺序帮我省掉了无数次「以为配好了结果 DNS 没填」的返工。属性设置和测试从来不是两个独立步骤,而是一条链上的两个环节,配的时候就要想着怎么测,测的时候要能反推配错在哪。希望帮到你。
本文还有配套的精品资源,点击获取