萬盛學電腦網

 萬盛學電腦網 >> 服務器教程 >> LINUX的端口和服務

LINUX的端口和服務

   一、端口和服務的關系

  端口號與相應服務的對應關系存放在/etc/services文件中,這個文件中可以找到大部分端口。使用netstat命令

  顯示的服務名稱也是從這個文件中找的。有人說將這個文件中的相應端口號注釋掉,就可以禁用該端口。

  我試了卻不起作用,這種方法應該是沒有用的,是誤傳!將相應端口號注釋掉,唯一的作用就是使用netsat

  命令時,將不顯示服務名(比如ftp)而是顯示端口號(比如21)。原理也很簡單:netstat無法在/etc/services

  文件中找到端口號對應的服務名,自然就無法顯示了。所以/etc/services文件只是起到端口號與相應服務的

  映射關系,與端口的啟動和關閉沒有關系!

  二、查看本機開放的端口

  1、netstat 查看端口和連接

  netstat 列出目前已經連接的服務名

  netstat -a 列出目前已經連接的和正在監聽的服務名

  netstat -an 列出目前已經連接的和正在監聽的端口號(與上面的命令功能一樣,只是不解釋端口號對應的服務名)

  netstat -ap 在上面命令的基礎上列出連接的PID(進程號),用這個PID,可以使用KILL 來殺死連接

  例如:某個連接的PID=111,想踢出去就使用 KILL -9 111。ok!

  netstat -rn 輸出路由表

  2、nmap

  nmap 127.0.0.1 查看本機開放的端口,會掃描所有端口

  nmap -p 1024 65535? 127.0.0.1 掃描指定端口范圍

  nmap -PT 192.168.1.1-111? 掃描一組范圍的電腦

  三、關閉和開啟端口(服務)

  關閉端口的方法:

  1、因為每個端口都有對應的服務,因此要關閉端口只要關閉相應的服務就可以了。

  2、用IPTABLE對端口進行限制,這樣也能使端口不被訪問,但端口本身並沒有關閉。

  在這兒只介紹關閉服務的方法,IPTABLE的應用以後再討論。

  linux中開機自動啟動的服務一般都存放在兩個地方:

  /etc/init.d/文件夾下的服務:

  這個文件夾下的服務都可以通過運行相應的SCRIPT來啟動或關閉。

  例如:啟動sendmail服務 ./sendmail start (打開了TCP 25端口)

  關閉sendmail服務 ./sendmail stop (關閉TCP 25 端口)

  查看sendmail服務當前狀態 ./sendmail? status (查看服務是否運行)

  /etc/xinetd.d/文件夾下的服務:

  這個文件夾下的服務需要通過更改服務的配置文件,並重新啟動xinetd才可以。

  例如:要啟動其中的auth服務,打開/etc/xinetd.d/auth配置文件,更改“disable=no”,保存退出。運行/etc/rc.d/init.d/xinetd restart

  要停止其中的auth服務,打開/etc/xinetd.d/auth配置文件,更改“disable=yes”,保存退出。運行/etc/rc.d/init.d/xinetd restart

  四、控制開機自動啟動的服務

  上面說的控制服務開關方法是在啟動linux之後進行操作的,如果我想在linux啟動時控制哪些服務啟動、哪些服務關閉怎麼做

  控制服務自動啟動的方法有3個:

  1、更改/etc/rc.d下的對應文件夾:

  如果你登陸的默認界面是字符界面,那麼修改rc.3文件夾,如果登陸界面默認是圖形界面,那麼修改rc.5。

  在文件夾中,每個服務的名字前都帶有“K”或“S”,S就代表這個服務開機自動運行了,把它刪了或前綴改為“K”下次就不會啟動了。

  2、使用ntsysv命令:

  輸入ntsysv命令,將會出現一個服務列表,需要啟動的打“*”,簡單。

  3、使用chkconfig命令:

  讓某個服務不自動啟動:例如httpd:chkconfig --level 35 httpd? off ;35指的是運行級別

  讓某個服務自動啟動:例如httpd:chkconfig --level 35 httpd? on ;

  查看所有服務的啟動狀態:chkconfig --list

  查看某個服務的啟動狀態:chkconfig --list |grep httpd

  端口和服務的操作就到這兒吧。

copyright © 萬盛學電腦網 all rights reserved