機房環境
有若干臺機器,通過交換機連接網絡,其中有一臺服務器。機房除服務器以外的其他機器都更換過。
服務器系統環境是Ubuntu12.04LTS
出現的問題
其他機器不能通過局域網訪問服務器,其他機器可以訪問外網,但是服務器不能訪問外網。
解決的流程
其實一開始做了很多無用功。確定服務器上localhost的資源可以在本機通過瀏覽器訪問。檢查網線是不是接上。ifconfig確認是否有分配IP。然后就陷入了不知道該怎么檢查的情況。然后查了一下Ubuntu環境下的網絡故障排查方法。
流程如下:
- $sudo ip link ls eth0 確認網卡狀態
- $sudo ifconfig eth0 查看網卡是否已經分配了IP
- ping 網關,看能否ping通
- $nslookup server 檢查DNS服務器地址,如果出現問題需要對/etc/resolv.conf文件進行修改,設置正確的DNS
- 最后將配置寫入/etc/network/interfaces文件
對于etc/network/interfaces文件的修改,DHCP動態IP的配置:
#The primary network interface
auto eth0 # 設置網卡開機啟動
iface eth0 inet dhcp # 設置網卡動態獲取IP
靜態IP:
auto eth0
iface eth0 inet static # 設為靜態獲取ip
address 192.168.1.101 # 配置ip地址
netmask 255.255.255.0 # 設置子網掩碼
gateway 192.168.1.1 # 設置網關
dns-nameservers 8.8.8.8 114.114.114.114 # 設置DNS服務器,多個地址空格隔開
這次的情況
在ping網關的時候沒有ping通,但是其他機器可以訪問外網,所以否定了交換機的問題。然后我們檢查了外面機器的IP設置,和服務器上的進行比對,發現外面分配的IP和服務器分配的IP不在同一網段。了解這個情況之后就按照其他機器的IP設置情況把服務器上的IP重新分配,進行靜態分配IP,然后將設置情況寫入/etc/network/interfaces和/etc/resolv.conf。之后嘗試使用/etc/init.d/networking restart使配置有效化,但是失敗了。抱著試一試的心態重啟了一次服務器,再次使用ifconfig查看網卡情況的時候發現eth0分配的IP更改過來了。然后經測試發現服務器可以訪問外網了,然后其他機器也能通過局域網訪問到服務器上的資源了。
?
感謝 http://www.lxweimin.com/p/21ee97c0aa38 這篇博文,在這篇文章的引導下,我解決了這次問題。