天天看點

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

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

轉載自:http://www.jb51.net/LINUXjishu/10954.html

繼續閱讀