IP地址与子网划分:网络世界的门牌号
每台设备接入网络,都得有个唯一标识,就像快递送货要看门牌号一样。IP地址就是这个“门牌”。常见的IPv4地址由四段数字组成,比如192.168.1.100。但光有IP不够,还得知道它属于哪个网络段——这就靠子网掩码。
举个例子:你家路由器默认分配的IP通常是192.168.1.x,子网掩码是255.255.255.0,这意味着前三个字段相同的设备在同一个局域网里,可以直接通信。一旦跨网段,就得靠网关转发。
网关和路由:数据包的导航系统
当你的服务器要访问外网,数据不能瞎跑,得知道下一跳往哪走。网关就是出口,通常是一个路由器的内网IP,比如192.168.1.1。所有发往外部网络的数据,都会先送到这里。
而路由表决定了数据怎么走。Linux下用ip route命令就能查看当前路由规则。比如一条记录:
default via 192.168.1.1 dev eth0表示默认流量都从eth0网卡发出,交给192.168.1.1处理。DNS:把域名翻译成IP
没人记得住所有服务器的IP,所以有了域名。但机器只认IP,中间这层转换靠DNS。当你在服务器上执行ping www.baidu.com,系统会先向DNS服务器查询对应的IP地址。
运维常遇到的问题是DNS解析失败。这时候可以试试用dig或nslookup工具排查。比如:
dig www.example.com +short看看能不能拿到结果。如果本地查不到,可能是配置错了/etc/resolv.conf文件里的nameserver。TCP与UDP:两种不同的传话方式
TCP像打电话,讲究确认机制,三次握手建立连接,保证数据不丢、不错序。网页浏览、数据库连接基本都用TCP。
UDP则像发短信,发出去就完事,不确认对方有没有收到。适合实时性要求高、能容忍少量丢失的场景,比如视频直播、DNS查询。
运维排查时常用netstat或ss命令看端口状态。比如检查Web服务是否监听了80端口:
ss -tuln | grep :80如果没输出,说明服务没起来或者绑定错了地址。防火墙与安全组:守住网络大门
服务器上线第一件事就是设好访问控制。Linux常用的iptables或更现代的nftables,可以定义哪些IP能访问哪些端口。云环境还有安全组,逻辑类似,但配置更图形化。
一个典型的安全组规则可能是:只允许公网IP访问443端口(HTTPS),SSH(22端口)仅限公司IP登录。写iptables的话可能长这样:
iptables -A INPUT -p tcp --dport 22 -s 10.0.0.50 -j ACCEPT
iptables -A INPUT -p tcp --dport 22 -j DROP意思是只有来自10.0.0.50的连接才能进SSH,其他一律拒绝。网络排错常用命令组合
线上服务挂了,第一步往往是看网络通不通。ping是最基础的工具,测试目标主机是否可达。但如果对方禁了ICMP,你就得换招。
这时候用telnet或nc测端口连通性更准。比如检测Redis是否可连:
nc -zv 172.16.10.20 6379返回“succeeded”才算通。再复杂点的问题,就得抓包了。tcpdump是神器。想看某台服务器是否收到了请求,可以这么抓:
tcpdump -i eth0 host 172.16.10.20 and port 80 -nn观察是否有进来的SYN包,判断问题是出在网络层还是应用层。