一、CentOS 7 系統(tǒng)簡(jiǎn)介

在服務(wù)器操作系統(tǒng)的江湖里,CentOS 7 可是大名鼎鼎!要是說 Ubuntu 是桌面用戶的心頭好,那 CentOS 7 絕對(duì)是公司、企業(yè)、IDC 等領(lǐng)域的 “寵兒”。它為啥這么受歡迎呢?穩(wěn)定性超強(qiáng),全球好多著名網(wǎng)站都靠它 “撐腰”,穩(wěn)穩(wěn)運(yùn)行不宕機(jī)。而且它出身名門,是 Red Hat Enterprise Linux 的免費(fèi)開源再編譯版本,既繼承了 RHEL 的卓越穩(wěn)定性,又免費(fèi)更新,這誰能不愛!CentOS 7 兼容性也是杠杠的,各種硬件平臺(tái)、主流數(shù)據(jù)庫、Web 服務(wù)器軟件等,它都能輕松 “拿捏”,不管是虛擬化、容器技術(shù),還是云計(jì)算、大數(shù)據(jù)處理場(chǎng)景,都有它的身影。再加上 YUM 包管理器讓軟件包管理變得 So Easy,還有強(qiáng)大的網(wǎng)絡(luò)功能,簡(jiǎn)直是運(yùn)維小伙伴的得力助手。今天,咱就深入 CentOS 7 的世界,重點(diǎn)聊聊端口查看那些事兒,一起揭開它神秘的面紗吧!
二、查看端口前的準(zhǔn)備工作
在咱們動(dòng)手查看端口之前,得先做好兩件小事。第一件,得確保你是以管理員權(quán)限登錄系統(tǒng)的,要是權(quán)限不夠,好多操作可都沒法進(jìn)行,就像你沒鑰匙進(jìn)不了門一樣。要是不清楚有沒有管理員權(quán)限,試試在命令行輸入 “sudo -v”,要是系統(tǒng)沒報(bào)錯(cuò),還提示讓你輸入密碼,那就妥了,有管理員權(quán)限。要是報(bào)錯(cuò)說 “sudo:未找到命令”,也別慌,用 “yum install sudo” 這條命令安裝一下就行。第二件事,CentOS 7 默認(rèn)沒有預(yù)裝查看端口需要的 net-tools 工具包,所以得手動(dòng)安裝。打開終端,輸入 “yum install net-tools -y”,回車,系統(tǒng)就會(huì)自動(dòng)下載安裝啦。安裝完怎么知道成沒成功呢?簡(jiǎn)單,輸入 “ifconfig”,要是能看到網(wǎng)卡信息,像 IP 地址、子網(wǎng)掩碼啥的,那就說明 net-tools 安裝成功,可以繼續(xù)后面的操作啦。這兩步準(zhǔn)備工作就像跑步前的熱身,做好了,后面查看端口才能順順利利。
三、查看已開放端口
準(zhǔn)備工作做好了,接下來就進(jìn)入正題 —— 查看已開放端口。在 CentOS 7 里,查看端口主要靠 “firewall-cmd” 這個(gè)強(qiáng)大的命令。輸入 “firewall-cmd --zone=public --list-ports”,回車,就能看到當(dāng)前系統(tǒng)在 public 區(qū)域(這是防火墻默認(rèn)區(qū)域,類似小區(qū)里的公共區(qū)域,網(wǎng)絡(luò)訪問大多經(jīng)過這兒)開放的端口列表啦。比如說,運(yùn)行完命令,終端顯示 “80/tcp 443/tcp 22/tcp”,這就意味著 80、443、22 這三個(gè)端口是對(duì)外開放的。80 端口通常是 Web 服務(wù)器用的,像咱們?cè)L問網(wǎng)站敲網(wǎng)址不用輸端口號(hào),默認(rèn)就是訪問 80 端口;443 端口用于 HTTPS 加密訪問,保障數(shù)據(jù)傳輸安全;22 端口則是 SSH 遠(yuǎn)程登錄端口,運(yùn)維人員經(jīng)??克h(yuǎn)程操控服務(wù)器。要是啥都沒顯示,別慌,可能是防火墻規(guī)則限制,暫時(shí)沒開放端口,或者你之前改過默認(rèn)區(qū)域,得用對(duì)應(yīng)的區(qū)域名替換 “public” 再試試。通過查看開放端口,咱們就能心里有數(shù),知道系統(tǒng)對(duì)外 “敞開” 了哪些 “大門”,方便后續(xù)排查網(wǎng)絡(luò)問題、配置服務(wù)器應(yīng)用啥的,是不是超實(shí)用!
四、查看監(jiān)聽端口
有時(shí)候,咱們不光想知道哪些端口開放了,還想瞅瞅哪些端口正在被監(jiān)聽,這就輪到 “netstat -lnpt” 命令登場(chǎng)啦。“-l” 參數(shù)表示只顯示處于監(jiān)聽狀態(tài)的套接字,就像你只關(guān)注那些豎起 “耳朵” 等待連接的端口;“-n” 參數(shù)是不進(jìn)行 DNS 輪詢,直接顯示 IP 地址,速度更快,不用慢悠悠地查詢域名對(duì)應(yīng)信息;“-p” 參數(shù)超厲害,它能把使用端口的進(jìn)程標(biāo)識(shí)符(PID)和程序名稱都顯示出來,讓咱們一眼看穿是哪個(gè) “小家伙” 在占用端口;“-t” 參數(shù)則指明只查看 TCP 端口,要是你想看 UDP 端口,把 “-t” 換成 “-u” 就行。不過要注意哦,CentOS 7 默認(rèn)沒有預(yù)裝 netstat 命令,要是你直接運(yùn)行報(bào)錯(cuò) “未找到命令”,別慌,用 “yum install net-tools -y” 安裝一下 net-tools 工具包就行。安裝好后,在終端輸入 “netstat -lnpt”,回車,就能看到類似下面的信息:從這個(gè)結(jié)果能看出,22 端口(被 sshd 進(jìn)程占用,用于 SSH 登錄)、25 端口(sendmail 進(jìn)程在用,和郵件服務(wù)有關(guān))、80 端口(httpd 進(jìn)程負(fù)責(zé),Web 服務(wù)靠它)都處于監(jiān)聽狀態(tài),隨時(shí)準(zhǔn)備為對(duì)應(yīng)的服務(wù) “站崗放哨”,接收外來連接請(qǐng)求。通過查看監(jiān)聽端口,咱們能精準(zhǔn)定位系統(tǒng)里正在運(yùn)行的網(wǎng)絡(luò)服務(wù),要是遇到端口沖突、服務(wù)啟動(dòng)失敗等問題,就可以順著這條線索排查,快速揪出 “搗亂分子”,讓系統(tǒng)恢復(fù)正常運(yùn)行。
五、檢查端口被哪個(gè)進(jìn)程占用
有時(shí)候咱們遇到端口相關(guān)問題,像啟動(dòng)服務(wù)時(shí)提示端口已被占用,這時(shí)候就得揪出是哪個(gè) “調(diào)皮鬼” 進(jìn)程占著端口不撒手。用 “netstat -lnpt | grep [端口號(hào)]” 就能定位到占用端口的進(jìn)程。比如說,咱們懷疑 80 端口被異常占用,在終端輸入 “netstat -lnpt | grep 80”,回車,可能會(huì)得到類似這樣的結(jié)果:從這兒就能看出,是 PID 為 1234 的 httpd 進(jìn)程在占用 80 端口。要是你還想進(jìn)一步查看這個(gè)進(jìn)程的詳細(xì)信息,就用 “ps -ef | grep [進(jìn)程 ID]” 命令,像上面例子,輸入 “ps -ef | grep 1234”,回車,終端會(huì)顯示:這里面,“root” 是啟動(dòng)進(jìn)程的用戶,“1234” 是進(jìn)程 ID,“1” 是父進(jìn)程 ID,“10:00” 是進(jìn)程啟動(dòng)時(shí)間,“/usr/sbin/httpd -DFOREGROUND” 是進(jìn)程運(yùn)行的命令,通過這些信息,咱們就能對(duì)占用端口的進(jìn)程了如指掌,要是發(fā)現(xiàn)它是 “非法占用”,就能采取相應(yīng)措施,比如關(guān)閉進(jìn)程啥的,讓端口恢復(fù) “自由身”,保障系統(tǒng)正常運(yùn)行。
六、實(shí)戰(zhàn)演練
光說不練假把式,下面咱們來個(gè)實(shí)戰(zhàn)演練。假設(shè)你在 CentOS 7 系統(tǒng)上搭建了一個(gè)網(wǎng)站,想看看 Web 服務(wù)的 80 端口情況,跟著下面步驟來就行。首先,打開終端,輸入 “firewall-cmd --zone=public --list-ports”,看看 80 端口有沒有開放,如果沒開放,輸入 “firewall-cmd --zone=public --add-port=80/tcp --permanent” 開放端口,再輸入 “firewall-cmd --reload” 讓配置生效。接著,輸入 “netstat -lnpt” 瞅瞅 80 端口有沒有被監(jiān)聽,要是顯示 “tcp6 0 0 :::80 :::* LISTEN [進(jìn)程 PID 和名稱]”,就說明正常監(jiān)聽啦,像常見的 “httpd” 進(jìn)程。要是懷疑端口被異常占用,輸入 “netstat -lnpt | grep 80”,找到占用進(jìn)程,再用 “ps -ef | grep [進(jìn)程 ID]” 深挖進(jìn)程信息,確認(rèn)沒問題,網(wǎng)站就能順利運(yùn)行,盡情對(duì)外展示風(fēng)采啦!通過這次實(shí)戰(zhàn),是不是感覺查看端口也沒那么神秘,多練幾次,你就是 CentOS 7 端口管理小能手。
七、總結(jié)
好啦,今天咱們一起深入學(xué)習(xí)了 CentOS 7 查看端口的幾種超實(shí)用方法?!癴irewall-cmd” 能讓咱們快速知曉已開放端口,了解系統(tǒng)對(duì)外的 “溝通窗口”;“netstat -lnpt” 則專注于監(jiān)聽端口,幫咱們找出那些時(shí)刻準(zhǔn)備服務(wù)的 “小衛(wèi)士”;要是遇到端口被占的麻煩,“netstat -lnpt | grep [端口號(hào)]” 結(jié)合 “ps -ef | grep [進(jìn)程 ID]” 就能精準(zhǔn)定位 “肇事者”。在操作過程中,大家千萬別忘了準(zhǔn)備工作,管理員權(quán)限和安裝 net-tools 工具包是關(guān)鍵。查看端口在日常運(yùn)維、排查故障、保障服務(wù)器安全穩(wěn)定運(yùn)行等方面可是大有用處。希望大家多動(dòng)手實(shí)踐,把這些技能牢牢掌握。要是在操作中遇到問題,或者有啥獨(dú)特的端口管理小竅門,歡迎在留言區(qū)分享交流,咱們一起進(jìn)步,下期再見咯!