在技術(shù)研發(fā)崗位的面試中,網(wǎng)絡(luò)故障排查能力往往是衡量候選人實(shí)踐功底與思維邏輯的重要標(biāo)尺。一位應(yīng)聘阿里HarmonyOS(鴻蒙)網(wǎng)絡(luò)技術(shù)研發(fā)崗的工程師,在二面中遇到了一道經(jīng)典的網(wǎng)絡(luò)內(nèi)網(wǎng)故障場(chǎng)景題。本文將結(jié)合這道面試題的思路,還原并深入剖析一次完整的、經(jīng)典的內(nèi)網(wǎng)故障排障全過(guò)程,這不僅是一次面試復(fù)盤(pán),更是對(duì)網(wǎng)絡(luò)排障方法論的系統(tǒng)性梳理。
面試官描述的場(chǎng)景通常簡(jiǎn)潔而典型:“公司內(nèi)部一臺(tái)部署了關(guān)鍵服務(wù)的服務(wù)器(假設(shè)IP為192.168.1.100)突然無(wú)法被同網(wǎng)段(192.168.1.0/24)的其他主機(jī)訪問(wèn),但該服務(wù)器自身可以ping通網(wǎng)關(guān)(192.168.1.1)。請(qǐng)描述你的排查思路和步驟。”
第一步:明確故障邊界與現(xiàn)象
這是排障的基石。需要立即澄清和確認(rèn):
基于OSI模型或TCP/IP模型,采用從底層到高層、從自身到網(wǎng)絡(luò)的排查順序,是嚴(yán)謹(jǐn)且高效的。
第二步:檢查服務(wù)器自身(物理層、數(shù)據(jù)鏈路層、網(wǎng)絡(luò)層)
1. 本地網(wǎng)絡(luò)接口狀態(tài): ip link show 或 ifconfig 查看網(wǎng)卡(如eth0)是否為 UP 狀態(tài),有無(wú)錯(cuò)誤包(errors, dropped)。
2. IP地址與路由配置: ip addr show 確認(rèn)IP(192.168.1.100)和子網(wǎng)掩碼配置正確。執(zhí)行 ip route show 或 route -n,確保有正確的直連網(wǎng)絡(luò)路由(如 192.168.1.0/24 dev eth0)和默認(rèn)路由(指向192.168.1.1)。題目中能ping通網(wǎng)關(guān),說(shuō)明L1-L3層基礎(chǔ)通信和本地出站路由基本正常。
3. ARP表項(xiàng): arp -an 查看ARP緩存。能否看到同網(wǎng)段其他主機(jī)的MAC地址?如果看不到,可能是ARP請(qǐng)求/回復(fù)出了問(wèn)題。也可以嘗試 ping 一下同網(wǎng)段另一臺(tái)主機(jī),同時(shí)用 tcpdump -i eth0 arp 抓包,看ARP請(qǐng)求是否發(fā)出、是否有回應(yīng)。
第三步:檢查服務(wù)器自身(傳輸層、應(yīng)用層)
這是本題的重點(diǎn)嫌疑區(qū)域,因?yàn)閜ing(ICMP)通但業(yè)務(wù)不通。
netstat -tlnp 或 ss -tlnp 確認(rèn)關(guān)鍵服務(wù)進(jìn)程是否在運(yùn)行,并且是否在正確的IP和端口上監(jiān)聽(tīng)(例如,是監(jiān)聽(tīng)在 0.0.0.0:80 還是 127.0.0.1:80?后者會(huì)導(dǎo)致外部無(wú)法訪問(wèn))。iptables -L -n)、firewalld(firewall-cmd --list-all)或nftables規(guī)則。是否有規(guī)則丟棄(DROP)了來(lái)自內(nèi)部網(wǎng)段的入站(INPUT)連接?特別是近期是否有誤操作添加了限制策略。一個(gè)常見(jiàn)的陷阱是,防火墻可能只允許網(wǎng)關(guān)或特定IP,錯(cuò)誤地阻止了同網(wǎng)段流量。journalctl -u nginx 或應(yīng)用日志文件)獲取錯(cuò)誤信息。第四步:檢查網(wǎng)絡(luò)路徑(聚焦于二層)
由于是同網(wǎng)段通信,不經(jīng)過(guò)網(wǎng)關(guān)(路由器),數(shù)據(jù)交換在二層完成,因此交換機(jī)是關(guān)鍵。
第五步:模擬與測(cè)試(驗(yàn)證假設(shè))
1. 從服務(wù)器向外測(cè)試: 在服務(wù)器上嘗試 telnet 或 curl 同網(wǎng)段其他主機(jī)的服務(wù)端口,測(cè)試出站連接是否正常。
2. 從其他主機(jī)向服務(wù)器測(cè)試: 在另一臺(tái)正常主機(jī)上,使用 telnet 192.168.1.100 端口號(hào)、nmap -p 端口號(hào) 192.168.1.100 或 tcping 工具,精確測(cè)試TCP/UDP端口連通性。同時(shí)用 tcpdump 或 Wireshark 在服務(wù)器端抓包,看請(qǐng)求包是否到達(dá)服務(wù)器網(wǎng)卡。如果抓不到包,問(wèn)題更可能出現(xiàn)在網(wǎng)絡(luò)側(cè)(交換機(jī));如果抓到了包但沒(méi)有回復(fù),問(wèn)題則集中在服務(wù)器自身(防火墻、服務(wù)未響應(yīng))。
3. 臨時(shí)性排除: 在測(cè)試環(huán)境中,可嘗試臨時(shí)禁用服務(wù)器防火墻(iptables -F 或 systemctl stop firewalld),觀察問(wèn)題是否解決。(注意:生產(chǎn)環(huán)境需謹(jǐn)慎,面試中需強(qiáng)調(diào)此操作的風(fēng)險(xiǎn)和回滾計(jì)劃)。
假設(shè)通過(guò)上述排查,最終定位到原因:服務(wù)器上的防火墻近期新增了一條規(guī)則,錯(cuò)誤地將所有來(lái)自192.168.1.0/24網(wǎng)段的入站TCP連接都DROP了,但允許ICMP(ping)和從本機(jī)發(fā)起的出站連接。
解決方案:
1. 立即修正防火墻規(guī)則,放行內(nèi)部業(yè)務(wù)所需端口。例如:iptables -I INPUT -s 192.168.1.0/24 -p tcp --dport 80 -j ACCEPT。
2. 將修正后的規(guī)則保存到防火墻永久配置中。
3. 進(jìn)行全面的業(yè)務(wù)連通性測(cè)試。
4. 復(fù)盤(pán)與改進(jìn): 分析規(guī)則誤添加的原因(人為失誤?自動(dòng)化腳本漏洞?),完善變更管理制度、實(shí)施前peer review、并考慮在網(wǎng)絡(luò)監(jiān)控中增加關(guān)鍵服務(wù)端口的主動(dòng)探測(cè)告警。
這道面試題絕不僅僅是考察幾條Linux命令。它深刻考察了候選人:
ip, ss, tcpdump, iptables 等核心診斷工具。對(duì)于鴻蒙這樣的分布式操作系統(tǒng),其網(wǎng)絡(luò)技術(shù)研發(fā)更是深入到設(shè)備互聯(lián)、自發(fā)現(xiàn)、低時(shí)延通信等復(fù)雜場(chǎng)景,扎實(shí)的基礎(chǔ)網(wǎng)絡(luò)排障能力是構(gòu)建和運(yùn)維這些高級(jí)特性的基石。一次成功的故障排查,就是一次對(duì)系統(tǒng)認(rèn)知深度的完美展現(xiàn)。
如若轉(zhuǎn)載,請(qǐng)注明出處:http://www.emtn.cn/product/73.html
更新時(shí)間:2026-05-15 08:17:49
PRODUCT