⑴ linux雙網卡dns超時
1、首先需要對線路進行排查,以確保路由器、Moden及集線器、交換機、網卡各介面插接可靠,且網線完好無損。
2、在確保硬體線路及設備連接正確的情況下,採取以下方法逐個排查故障所在,首先進入MSDOS界面,執行命令Ping192.168.0.1來判斷本機與路由器的連通情況,當無超時現象發生時,即表明線路連接情況正確。
3、當其中一個DNS無法正常通過Ping命令訪問時,可以嘗試更改其它DNS,有關DNS地址的具體信息,大家可以咨詢當地電信運營商並從其獲取,然後將有效DNS輸入到IP協議中並作為首選DNS。
⑵ 五個最常出現的Linux故障處理方法
除了檢查本機防火牆和雲控制台安全組之外,可以通過 telnet 去連接
運行命令 tailf /var/log/messages
當linux服務啟動失敗的時候,系統會提示我們使用 journalctl -xe 命令來查詢詳細信息,定位服務不能啟動的原因。
mod_evasive是Apache防禦攻擊的模塊,有助於防止DoS、DDoS以及對Apache伺服器的暴力攻擊。它可以在攻擊期間提供規避行動,並通過電子郵件和系統日誌工具報告濫用行為。該模塊的工作原理是創建一個IP地址和URI的內部動態表,並拒絕以下任何一個IP地址:
如果滿足上述任何條件,則發送403響應並記錄IP地址。
⑶ Linux系統CPU/內存使用率過高的問題排查
伺服器出現由內存問題引發的故障,例如系統內部服務響應速度變慢、伺服器登錄不上、系統觸發 OOM(Out Of Memory)等。通常情況下當實例內存使用率持續高於90%時,可判斷為實例內存使用率過高。CPU/內存使用率過高的問題原因可能由硬體因素、系統進程、業務進程或者木馬病毒等因素導致。
筆者以前寫過一篇文章- Linux 下的 60 秒分析的檢查清單 ,適用於 任何性能問題 的分析工作,這一篇文章是關於CPU/內存使用率的具體的排查思路總結。
執行 top 命令後按 M ,根據駐留內存大小進行排序,查看 「RES」 及 「SHR」 列是否有進程佔用內存過高。按 P,以 CPU 佔用率大小的順序排列進程列表,查看是否有進程佔用cpu過高。
如果有異常進程佔用了大量 CPU 或內存資源,記錄需要終止的進程 PID,輸入k,再輸入需要終止進程的 PID ,按 Enter。
另外說明一下,top 運行中可以通過 top 的內部命令對進程的顯示方式進行控制,最常用的是M和P。
CPU 空閑但高負載情況,Load average 是 CPU 負載的評估,其值越高,說明其任務隊列越長,處於等待執行的任務越多。執行ps -axjf命令,查看進程狀態,並檢查是否存在 D 狀態進程。D 狀態指不可中斷的睡眠狀態,該狀態進程無法被殺死,也無法自行退出。若出現較多 D 狀態進程,可通過恢復該進程依賴資源或重啟系統進行解決。
Linux 系統通過分頁機制管理內存的同時,將磁碟的一部分劃出來作為虛擬內存。而 kswapd0 是 Linux 系統虛擬內存管理中負責換頁的進程。當系統內存不足時,kswapd0 會頻繁的進行換頁操作。換頁操作非常消耗 CPU 資源,導致該進程持續佔用高 CPU 資源。
執行top命令,找到 kswapd0 進程。觀察 kswapd0 進程狀態,若持續處於非睡眠狀態,且運行時間較長並持續佔用較高 CPU 資源,執行 vmstat ,free,ps 等指令,查詢系統內進程的內存佔用情況,重啟系統或終止不需要且安全的進程。如果 si,so 的值也比較高,則表示系統存在頻繁的換頁操作,當前系統的物理內存已經不能滿足您的需要。 si 表示每秒從交換區寫入內存的大小(單位:kb/s) , so 每秒從內存寫到交換區的大小。
執行cat/proc/meminfo |grep-i shmem命令查看共享內存。
buddy可以以頁為單位獲取連續的物理內存了,即4K為單位。slab負責需要頻繁的獲取/釋放並不大的連續物理內存,比如幾十位元組。執行cat /proc/meminfo | grep -i SUnreclaim命令查看slab 內存。
標準的 4KB 大小的頁面外,內存大頁管理內存中的巨大的頁面,處理較少的頁面映射表,從而減少訪問/維護它們的開銷。執行cat /proc/meminfo | grep -iE "HugePages_Total|Hugepagesize" 查看內存大頁。
內存使用率計算:
(Total - available)100% / Total
(Total - Free - Buffers - Cached - SReclaimable + Shmem)* 100% / Total
cat /proc/meminfo查看信息含義:
⑷ Linux啟動故障處理
【摘要】
當Linux系統出現故障無法正常啟動系統時,Linux准備了單用戶模式、救援模式等方式可以讓我們有效的處理這類問題。本文簡單分享一個利用救援模式解決Redhat系統無法啟動的案例。
【正文】
一、 問題背景
1) 問題描述
一台部署了RHEL 7.2的物理伺服器,突發死機故障,在嘗試重啟時,發現伺服器無法正常進入操作系統,直接進入emergency mode。本文主要分享操作系統啟動異常的問題排查過程。(伺服器死機據後續日誌分析,確定為內核的bug所致,本文不進行累述)
2) 故障現象
系統啟動後,提示無法找到/dev/mapper/rhel-root,並直接進入emergency mode。
二、 排查思路
1) 收集系統啟動異常的相關提示信息,獲取到問題關鍵點:
Warning:/dev/rhel/root does not exist
初步定為配置文件問題或者邏輯卷root本身問題;
2) 嘗試在應急模式下檢查邏輯卷狀態,發現當前情況並不穩定,常用命令無法使用、顯示多為亂碼;
3) 嘗試進入單用戶模式,發現情況和應急模式一樣;
Redhat 7.2進入單用戶模式:
1、開機啟動至內核選擇界面,選擇第一項,按e進行編輯
2、定位到linux16這一行,找到ro,修改其為rw init=/sysroot/bin/sh
3、按ctrl+X啟動至單用戶模式
4) 利用系統安裝光碟,進入Linux救援模式,進行排查。
Redhat 7.2救援模式啟動方法:
1、把光碟加入光碟機,然後啟動,以光碟進行引導,選擇救援模式(中間具體的步驟不再細說)
2、文件系統掛載到/mnt/sysimage目錄下,這時切換到此目錄下使用chroot /mnt/sysimage這條命令即可
5) 在救援模式下,首先查看伺服器lv的情況,發現所有lv
status均為未激活狀態。
查看lv
#Lvdisplay
修改lv
#vgchange -a y /dev/docker/root
6) 在嘗試修改root的lv status時,發現root所在的vg名和啟動時所指定的vg名不一致,基本確定問題點;
7) 修復
l 編輯文件/etc/default/grub
l 修改此文件中GRUB_CMDLINE_LINUX一行中rd.lvm.lv為合適的值
l 再執行以下命令重做grub :
n UEFI: grub2-mkconfig -o /boot/efi/EFI/redhat/grub.cfg
n 非UEFI:grub2-mkconfig -o /boot/grub2/grub.cfg
l 查看文件grub.cfg中是否修改為rd.lvm.lv=rhel/root
l 修改/etc/grub2.cfg中root=後接的lv路徑改為實際的路徑。
8) 系統啟動後,通過history日誌,確定為該系統業務部署時,使用了vgrename命令修改了vg名。
三、 總結
對於Linux的問題處理,需要對Linux的運行原理有所理解,這此前提下才能根據有限的提示信息判斷問題方向、確定排查范圍、找到解決方法。同時,提醒各位初學linux的同事么,在進行linux的一些操作時,需要充分考慮這些操作可能造成的影響,避免類似上述的問題發生。
轉自 嘉為教育-rhce認證_rhce培訓_linux培訓_linux認證_linux考證
⑸ 盤Linux服務端的測試及故障處理辦法
1、查看系統負載情況
在服務端命令窗口下執行w命令可得到三組數據(例如 0.40 0.30 1.20),分別為系統前一分鍾、前5分鍾、前15分鍾負載情況,一般負載情況在2以下基本正常,如果長時間高於3則可認為系統負載過高,重點檢查硬碟工作狀況。
2、測試各硬碟讀取速度判斷硬碟故障
在服務端命令窗口中執行如下命令
hdparm -t /dev/hda (IDE硬碟)
hdparm -t /dev/sda (SATA、SCSI、硬RAID卡陣列)
hdparm -t /dev/md0 (軟RAID設備)
測試結果在空載情況下應 >40M/s ,在負載情況下平均應 > 20M/s 為正常,如測試結果極低則需要進一步使用硬碟專用檢測工具測試是否為硬碟故障。
3、處理網路盤上數據無法正常讀寫問題
當在客戶機上啟動執行網路盤上游戲經常出現異常錯誤時,很可能是網路盤上的文件系統或數據出現損壞,可使用如下辦法嘗試修復。
在一台客戶機上登陸為超級工作站連接網路盤,例如網路盤為H:,在DOS命令窗口下執行 chkdsk H:/F 對網路盤文件系統進行檢查修復,修復完成後重新啟動客戶機看修復是否起到相應的作用,如故障依舊則考慮對網路盤重新格式化拷貝數據。
4、客戶端無法連接網路盤的情況處理
有新的機器名需要連接網路磁碟時必須開啟服務端虛擬磁碟管理器窗口
當伺服器出現非法關機重啟的情況時,很可能出現虛擬磁碟網路服務沒有正常啟動導致客戶端無法連接網路磁碟,此時正常重新啟動伺服器或在命令行窗口下執行 landisk restart 來啟動虛擬磁碟服務解決。
網眾虛擬磁碟客戶機系統還原功能失效情況的處理辦法
a、分區或全盤恢復還原失效的客戶機系統。
b、在伺服器端虛擬磁碟管理器中刪除還原失效的客戶機。
c、客戶機重新連接伺服器,設置還原即可。
網眾虛擬網路磁碟如何在沒有盤符時進行磁碟掃描
a.在伺服器上運行命令cmd,進入命令行狀態
b.運行cd (這是方便生成的文件直接存放在c:目錄下)
c.運行mountvol > 1.bat (這會生成一個名為1.bat的批處理文件。)
d.將1.bat復制到桌面上。
e.編輯1.bat
找到 ?Volume{01847d10-ae98-11d9-a5d6-806d6172696f}
無載入點
無載入點的這行的上面就是去掉了盤符的'盤的磁碟卷標。保留這一行內容其它的全部刪除掉。
f.最後生成留下的文件應該如下面的格式
chkdsk/f ?Volume{01847d10-ae98-11d9-a5d6-806d6172696f}
要注意啊!一定要chkdsk/f要加上f參數,才能真正修復,還有磁碟卷標的最後一個字元不是 而生成的文件是帶了的,要把它刪除掉。
最後說說什麼時候才能用這個批處理進行掃描
a.當你發現在用超級用戶更新之後,有的機看得到網路磁碟,有的機看不到網路磁碟,或者是打得開盤卻看不到內容不得時,可以使用。
b.當伺服器重新啟動時,提示有磁碟掃描,並自動進行掃描時,本來以前是必須要等這個掃描過程完成才能進入WINDOWS,但現在你就可以直接跳過掃描,等系統進了WINDOWS再運行這個批處理了。這樣就不會影響到客人玩游戲。
c.磁碟掃描完成之後,客戶機有可能要重新啟動才能正常看到網路盤的文件。
d.一定要注意,這是一個非常危險的命令,你在使用時必須要保證沒有超級用戶存在(就是標記為紅色的電腦)否則有可能造游戲盤上所有的文件丟失得一干二凈!
⑹ 詳解SELinux故障排查和陷阱規避
維護我們伺服器的安全是一項艱巨的工作,與第三方解決方案提供商打交道時尤為如此。在許多情況下,面臨的挑戰是要求禁用SELinux,以便應用程序可以順利運行。幸好,這種情況越來越少了。在大多數情況下,一番分析足以找到正確的故障排查或解決方法。
SELinux是一個標簽系統,它告訴我們系統中的每個文件、目錄或對象都有對應的標簽(Label)。策略控制這些元素之間的交互關系,內核則執行這些規則。
兩個最重要的概念是標簽(文件、進程和埠等)和類型強制(根據進程的類型將進程彼此隔離開來)。
標簽使用的格式為:user:role:type:level(可選)。
要找出當前配置,請運行getenforce和sestatus兩個命令:
# getenforce
Enforcing
# sestatus
SELinux status: enabled
SELinuxfs mount: /sys/fs/selinux
SELinux root directory: /etc/selinux
Loaded policyname: targeted
Current mode: enforcing
Modefrom config file: enforcing
Policy MLS status: enabled
Policy deny_unknown status: allowed
Memory protection checking: actual (secure)
Max kernel policy version: 32
最佳實踐告訴我們,我們測試一個新的第三方應用程序時,應該在許可模式下臨時配置SELinux,以便確定哪些策略或布爾值(更改行為的簡單字元串)必不可少。運行該命令:
# setenforce 0
查看日誌,您可以找到SELinux使應用程序正常運行所需的條件。
SELinux試圖告訴我什麼?
SELinux中生成警報的錯誤只有四個主要原因:
標簽。
SELinux需要知道。
SELinux策略及/或應用程序可能有錯誤。
您的信息可能被泄露。
最後一種情況是由於對攻擊漏洞進行了修改或避免了活動跟蹤,不過在這兩種情況下,都必須查看這些警報,這點暫且不介紹。
標簽
標簽問題:/srv/myweb中的文件未正確標記,因而無法訪問。
SELinux為同一服務所涉及的每個元素分配一個標簽:
二進制文件:/usr/sbin/httpd→httpd_exec_t
配置文件:/etc/httpd→httpd_config_t
日誌文件:/var/log/httpd→httpd_log_t
內容目錄:/var/www/html→httpd_sys_content_t
啟動腳本:/usr/lib/systemd/system/httpd.service→httpd_unit_file_t
進程:/usr/sbin/httpd→httpd_t
埠:80/tcp,443/tcp→httpd_t和httpd_port_t
在Web伺服器上,在httpd_t上下文中運行的進程只能與帶有httpd_something_t標簽的對象進行交互。
解決方案:正確標記文件。
如果您知道正確的標簽,請運行:
# semanage fcontext -a -t httpd_sys_content_t '/srv/myweb(/.*)?'
如果您知道擁有相等標簽的文件,請運行:
# semanage fcontext -a -e /srv/myweb /var/www
針對這兩種情況,恢復文件的默認上下文:
# restorecon -vR /srv/myweb
標簽問題:如果某個文件被移動而不是被拷貝,它保留原始標簽。
$ mv index.html /var/www/html/
解決方案:正確標記文件。
將上下文更換成正確的標簽:
# chcon -t httpd_system_content_t /var/www/html/index.html
更換擁有參考標簽的上下文:
# chcon --reference /var/www/html/ /var/www/html/index.html
針對這兩種情況,恢復文件的默認上下文:
# restorecon -vR /var/www/html/
SELinux需要知道
服務定製:Web伺服器將在埠8585上偵聽請求。
要把所需的埠添加到上下文,請運行:
# semanage port -a -t http_port_t -p tcp 8585
為服務添加功能:Web伺服器將能夠發送電子郵件。
要啟用郵件發送功能,開啟布爾值,運行:
# setsebool -P httpd_can_sendmail 1
-P標志使變更在布爾值中具有持久性。
要獲得所有布爾值,運行:
# getsebool -a
要檢查布爾值的狀態,運行:
# semanage boolean -l
策略故障排查
服務未運行:使用wicd而不是NetworkManager服務來處理無線連接。
檢查audit.log文件,查找被拒絕的訪問:
# grep denied audit.log | cut -d{ -f2 | sort -n | uniq -u
create } for pid=2670 comm="wicd" scontext=system_u:system_r:NetworkManager_t:s0 tcontext=system_u:system_r:NetworkManager_t:s0 tclass=appletalk_socket permissive=1
create } for pid=2670 comm="wicd" scontext=system_u:system_r:NetworkManager_t:s0 tcontext=system_u:system_r:NetworkManager_t:s0 tclass=ax25_socket permissive=1
ioctl }for pid=2670 comm="wicd" path="socket:[52681]" dev="sockfs" ino=52681 ioctlcmd=0x8b01 scontext=system_u:system_r:NetworkManager_t:s0 tcontext=system_u:system_r:NetworkManager_t:s0 tclass=ax25_socket permissive=1
ioctl }for pid=2670 comm="wicd" path="socket:[52684]" dev="sockfs" ino=52684 ioctlcmd=0x8b01 scontext=system_u:system_r:NetworkManager_t:s0 tcontext=system_u:system_r:NetworkManager_t:s0 tclass=appletalk_socket permissive=1
setattr }for pid=2214 comm="wicd" name="dhclient.conf.template" dev="dm-0" ino=437068 scontext=system_u:system_r:NetworkManager_t:s0 tcontext=unconfined_u:object_r:etc_t:s0 tclass=file permissive=0
注意:上下文NetworkManager_t和etc_t所涉及的一些元素需要許可權,需要訪問不同的文件和套接字創建。
創建type enforcement (.te)文件,擁有策略的必要許可權:
# vi my_wicd.te
mole my_wicd 1.0;
require {
type NetworkManager_t;
type etc_t;
class ipx_socketcreate;
class ax25_socket {create ioctl };
class appletalk_socket {create ioctl };
class file setattr;
}
#============= NetworkManager_t ==============
allow NetworkManager_t etc_t:file setattr;
allow NetworkManager_t self:appletalk_socket {create ioctl };
allow NetworkManager_t self:ax25_socket {create ioctl };
allow NetworkManager_t self:ipx_socketcreate;
要編譯策略,安裝軟體包selinux-policy-devel,並生成策略軟體包:
# make -f /usr/share/selinux/devel/Makefile my_wicd.pp
要激活剛生成的模塊,運行:
# semole -i my_wicd.pp
策略錯誤信息:試圖訪問我的網站時,我在日誌中看到了SELinux錯誤。
為SELinux錯誤信息排查故障時常見的陷阱之一是,根據發現的所有錯誤信息創建策略。在大多數情況下,如果setroubleshoot包已安裝,同樣的提醒會給出所有可能的變通選項,按最好到最差的順序排列。
要查看今天生成的setroubleshoot提醒,運行:
# journalctl -t setroubleshoot --since today
Dec 08 13:08:33 lab.example.com setroubleshoot[12013]: failed to retrieve rpm info for /var/www/html/index.html
Dec 08 13:08:34 lab.example.com setroubleshoot[12013]: SELinux is preventing /usr/sbin/httpd from getattr access on the file /var/www/html/index.html. For complete SELinux messages run: sealert -l 011df984-4eb6-4079-98ab-cba173c4342e
Dec 08 13:08:34 lab.example.com setroubleshoot[12013]: SELinux is preventing /usr/sbin/httpd from getattr access on the file /var/www/html/index.html.
***** Plugin restorecon (99.5 confidence) suggests ************************
If you wantto fix the label
/var/www/html/index.html default label should be httpd_sys_content_t.
Then you can run restorecon. The access attempt may have been stopped e to insufficient permissions to access a parent directory, in which case try to change the following command accordingly.
Do
# /sbin/restorecon -v /var/www/html/index.html
***** Plugin catchall (1.49 confidence) suggests **************************
If you believe that httpd should be allowed getattr accesson the index.html file by default.
Then you should report this as a bug.
You can generate alocal policy mole to allow this access.
Do
allow this accessfor now by executing:
# ausearch -c'httpd' --raw | audit2allow -M my-httpd
# semole -X 300 -i my-httpd.pp
在這里,最好的解決辦法就是修復文件的標簽。
小結
為SELinux排查故障可能很難,但如果運用這里介紹的幾個概念,並了解服務的組成,您就可以處理它帶來的各種難題。
切記:SELinux是一種標簽系統。
⑺ Linux診斷機器故障工具—dmesg命令
1、簡介
dmesg 命令主要用來顯示內核信息。使用 dmesg 可以有效診斷機器硬體故障或者添加硬體出現的問題。另外,使用 dmesg 可以確定您的伺服器安裝了哪些硬體。每次系統重啟,系統都會檢查所有硬體並將信息記錄下來。執行/bin/dmesg 命令可以查看該記錄,開機信息亦保存在/var/log目錄中,名稱為dmesg的文件里。
2、dmesg命令常用格式
[root@RedHat_test ~]# dmesg [-cn][-s <緩沖區大小>]
-c: 當完成列印顯示後清除環緩沖內的內容。
-s: 緩沖區大小。定義一個大小為"緩沖區大小"的緩沖區用於查詢內核環緩沖區。默認大小為8196(此大小與2.0.33 和2.1.103 內核的默認syslog 緩沖區大小一致),如果你設置了一個大於默認值的環緩沖區,那你就可以用這個選項定義一個相當的緩沖區來查看完整的環緩沖區內容。
-n: 級別。設置級別為記錄控制台啟動信息的級別。比如,-n 1指的就是將此級別設為最低級,除了內核恐慌信息之外不會向控制台顯示信息。所有級別的啟動信息還將記錄到/proc/kmsg,文件中,因此,syslogd(8)同樣可以用來對信息的輸出進行控制。當使用-n選項時,dmesg將不會 清除內核環緩沖區中的內容。當同時使用以上兩個選項時,只有最後一個選項才會產生效果。
3、將系統啟動信息保存到文件中
[root@RedHat_test ~]# dmesg > messages.txt
4、單頁輸出
[root@RedHat_test ~]# dmesg | more
[root@RedHat_test ~]# dmesg | less
5、以可讀性較好的形式輸出信息
[root@RedHat_test ~]# dmesg -H
6、設置記錄信息的層級
[root@RedHat_test ~]# dmesg -n 3
7、列印輸出內存
[root@RedHat_test ~]# dmesg | tail -f #列印輸出最近一次的信息
[root@RedHat_test ~]# dmesg | head -20 #列印輸出前20行的信息
[root@RedHat_test ~]# dmesg | tail -20 #列印輸出最後20行日誌
8、實時監控dmesg日誌的輸出信息
[root@RedHat_test ~]# watch "dmesg | tail -20"
9、搜索包含特定字元串的被檢測到的硬體
[root@RedHat_test ~]# dmesg | grep DMA #查看硬碟的運行模式
[root@RedHat_test ~]# dmesg | grep eth #查看乙太網的連接信息
[root@RedHat_test ~]# dmesg | grep sda #查看硬碟設備
[root@RedHat_test ~]# dmesg | grep ttyS* #查看串口的相關信息
[root@RedHat_test ~]# dmesg | grep -i memory #查看內存狀況
[root@RedHat_test ~]# dmesg | grep -i usb #查看usb介面
[root@RedHat_test ~]# dmesg |egrep -i "(apm|acpi)" #探測系統內核模塊,檢測ACPI的載入情況
10、將開機信息發郵件
[root@RedHat_test ~]# dmesg >boot.messages
[root@RedHat_test ~]# mail -s "Boot Log of Linux Server" [email protected] <boot.messages
11、列印並清除內核環形緩沖區
[root@RedHat_test ~]# dmesg -c
關於運維學習、分享、交流,筆者開通了微信公眾號【運維貓】,感興趣的朋友可以關注下,歡迎加入,建立屬於我們自己的小圈子,一起學運維知識。
⑻ linux如何排查心跳閃斷
linux排查心跳閃斷方法:
1、修改/etc/ssh/sshd_config文件,代碼:sudovim/etc/ssh/sshd_config。
2、查找是否有ClientAliveInterval0和ClientAliveCountMax3,如何沒有,則在文件後添加,代碼:ClientAliveInterval60,ClientAliveCountMax3。
3、ClientAliveInterval指定了伺服器端向客戶端請求消息的時間間隔,默認是0,不發送。ClientAliveInterval60表示每分鍾發送一次,然後客戶端響應,這樣就保持長連接了。ClientAliveCountMax,使用默認值3即可.ClientAliveCountMax表示伺服器發出請求後客戶端沒有響應的次數達到一定值,就自動斷開.
4、重起sshd服務:servicesshdrestart。
⑼ Linux網路異常排查思路與方法
處理問題時必定不能盲狙,將所有解決辦法都試上一遍。這生產環境中,解決出現的問題是最優先的事情,當然前提是這問題會影響用戶的使用或即將影響到的。
處理每個問題必然可按具體問題進行分類,根據每一類按對應的解決思路來執行。
但像處理一個網路問題的時候,上至系統防火牆的配置、下至硬體故障。如果處理一個問題都按固定流程來進行的話,那必然效率將非常低下。下為處理網路故障的一般流程。
1、網路硬體問題檢查。 (機率較低)
2、檢查網卡能否正常工作。 (較高、主要表現為人為配置錯誤)
3、檢查區域網之間聯機是否正常。(非常高)
4、檢查DNS是否設定正確。 (較低)
5、服務是否正常打開。 (低)
6、檢查訪問許可權是否打開。 (較高)
假如從1至6是標準的處理網路問題的流程,這樣的處理方式效率低下。處理問題可以有整體的流程,但是實際操作中可先對出現機率更高的步驟進行檢查、或採取2分法縮小產生問題的范圍,雖然上述較的兩個方法不一定對所有問題都試用,但對於大多數的網路問題來說處理效率有者顯著的提升。
個人總結的情況如下。
1、lsmod | grep ip 查看相關的網卡模塊是否已載入
2、ifconfig -a 能使用該命令查找到對應網卡配置信息,則說明網卡驅動程序正常
3、使用ping命令、依次ping自己、ping區域網主機、ping網關
ping自己異常,問題:服務異常、網卡配置未生效
ping區域網主機異常,問題:配置文件有誤、網卡配置未生效、網線損壞
ping網關異常,問題:配置文件有誤、網卡配置未生效
4、當前3步還不能正常上外網的話。所有route查看默認路由表。
處理方法:刪除不必要的路由信息,並保證默認路由是從對應網關地址出去的。
5、臨時停止iptables服務、SELinux服務、NetworkManager服務
6、如能上網但訪問域名有異常時,那將需要檢查/etc/hosts、/etc/resolv.conf兩個配置
7、假如以上6步檢查完畢之後,還發現不能上網。有如下可能。
7.1、主機MAC地址被路由器禁止上網
7.2、外網服務異常。如寬頻賬號欠費、光纖被挖斷等物理攻擊。