各类资料学习下载合集
链接:https://pan.quark.cn/s/770d9387db5f
你是否遇到过这样的场景:精心编写的客户端-服务器程序,在自己的电脑上用127.0.0.1测试完美运行,但一部署到两台机器上,客户端就怎么也连不上服务器了?此时,Connection refused或No route to host的错误提示令人抓狂。
别担心,这正是每个网络程序员的必经之路。本文将带你拿起网络调试的“三板斧”——ifconfig、ipconfig和ping,一步步定位并解决问题。
一、 知己知彼:查看本机网络信息 (ifconfig&ipconfig)
在开始网络通信前,首先要搞清楚通信双方的“地址”。
1. 在 Linux 上使用ifconfig或ip addr
在 Linux 终端输入ifconfig(或更现代的ip addr),你可以看到本机的网络配置。
ifconfig运行结果解读:
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500 inet 192.168.237.131 netmask 255.255.255.0 broadcast 192.168.237.255 inet6 fe80::20c:29ff:fe40:473a prefixlen 64 scopeid 0x20<link> ether 00:0c:29:40:47:3a txqueuelen 1000 (Ethernet) ... lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536 inet 127.0.0.1 netmask 255.255.0.0 inet6 ::1 prefixlen 128 scopeid 0x10<host> ...inet 192.168.237.131: 这是你的局域网 IPv4 地址,是局域网内其他设备找到你的“门牌号”。inet6 fe80::...: 这是IPv6 地址。lo: 这是本地回环接口,其 IP 地址永远是127.0.0.1。它不经过物理网卡,专门用于本机进程间的网络通信测试。
2. 在 Windows 上使用ipconfig
在 Windows 的cmd或PowerShell中输入ipconfig。
ipconfig运行结果解读:
无线局域网适配器 WLAN: ... IPv4 地址 . . . . . . . . . . . . : 192.168.1.6 子网掩码 . . . . . . . . . . . . : 255.255.255.0 默认网关. . . . . . . . . . . . . : 192.168.1.1 以太网适配器 VMware Network Adapter VMnet8: ... IPv4 地址 . . . . . . . . . . . . : 192.168.237.1 ...IPv4 地址: 192.168.1.6: 这是 Windows 主机在无线局域网中的 IP。- 关键点:
192.168.x.x格式的都是局域网 IP,它们由路由器分配,仅在当前局域网内有效。
二、 投石问路:测试网络连通性 (ping)
ping命令是网络世界的“声纳”。它向目标 IP 发送一个小数据包,并等待对方回复,以此来判断网络通路是否顺畅。
1. 测试外网连通性
想知道你的电脑能不能上网?ping一下百度就知道了。
pingwww.baidu.com运行结果解读:
PING www.a.shifen.com (220.181.38.149) 56(84) bytes of data. 64 bytes from 220.181.38.149 (220.181.38.149): icmp_seq=1 ttl=52 time=9.36 ms 64 bytes from 220.181.38.149 (220.181.38.149): icmp_seq=2 ttl=52 time=9.51 ms220.181.38.149: 这是ping命令通过 DNS 解析出的百度服务器的公网 IP。64 bytes from ... time=9.36 ms: 收到了来自对方的回复,说明你的设备具备上网能力。
2. 测试局域网内主机连通性
假设你的 Linux 虚拟机 IP 是192.168.237.131,Windows 主机 IP 是192.168.1.6。现在,在 Linux 上pingWindows 主机。
# 注意:这个例子中,两台机器不在同一个网段,默认是 ping 不通的。# 让我们假设它们在同一个网段,比如 Windows IP 是 192.168.237.1ping192.168.237.1如果能收到回复,说明两台机器在网络层面是互通的。
<