其實 port 是由某些程式所啟動的,所以要關閉某些 port 時,那就直接將某個程式給他關閉就是了! 那關閉的方法你當然可以使用 kill ,不過,畢竟不是正統的解決之道,因為 kill 這個指令通常具有強制關閉某些程式的功能,但我們想要正常的關閉該程式啊! 所以,就利用系統給我們的 script 來關閉就好了啊。 在此同時,我們就得再來稍微複習一下,一般傳統的服務有哪幾種類型?
stand alone 與 super daemon
在鳥哥的 Linux 私房菜 -- 基礎學習篇內談到, 在一般正常的 Linux 系統環境下,服務的啟動與管理主要有兩種方式:
關於更詳細的服務說明,請參考基礎篇的 認識服務 一文。好,那麼如果我想要將我系統上面的 port 631 關掉的話, 那應該如何關閉呢?最簡單的作法就是先找出那個 port 631 的啟動程式喔!
dhcppc91:~/tools # netstat -tunlp | grep 631
tcp 0 0 0.0.0.0:631 0.0.0.0:* LISTEN 11839/cupsd
udp 0 0 0.0.0.0:631 0.0.0.0:* 11839/cupsd
# 我們可以透過 locate 配合正規表示法找到cupsd這個指令的!
dhcppc91:~/tools # locate cupsd | grep "/cupsd"
...(以上省略)...
/usr/sbin/cupsd
...(以下省略)...
# 然後再由 rpm 來處理!
dhcppc91:~/tools # rpm -qf /usr/sbin/cupsd
cups-1.1.23-40.6
# 找到了!就是這個套件!所以將他關閉的方法可能就是:
dhcppc91:~/tools # rpm -qc cups | grep init
/etc/init.d/cups
/etc/init.d/cupsrenice
dhcppc91:~/tools # /etc/init.d/cups stop <關閉服務>
Ps. 透過上面的這個分析的流程,你可以利用系統提供的很多方便的工具來達成某個服務的關閉! 為啥這麼麻煩?不是利用 kill -9 2030 就可以刪掉該服務了嗎? 是沒錯啦!不過,你知道該服務是做啥用的嗎?你知道將他關閉之後,你的系統會出什麼問題嗎? 如果不知道的話,那麼利用上面的流程不就可以找出該服務套件,再利用 rpm 查詢功能, 不就能夠知道該服務的作用了!
沒有留言:
張貼留言