<p><strong>#一、安裝以前查看端口是否被佔用</strong></p> <li><a href="http://my.oschina.net/u/193184/blog/146885#OSC_h3_1">查看端口占用狀況的命令:lsof -i</a></li> <li><a href="http://my.oschina.net/u/193184/blog/146885#OSC_h3_2">查看某一端口的佔用狀況: lsof -i:端口號</a></li> <li><a href="http://my.oschina.net/u/193184/blog/146885#OSC_h3_3">結束佔用端口的進程:killall 進程名</a></li> <p>lsof -i:80 <br />COMMAND   PID     USER   FD   TYPE DEVICE SIZE/OFF NODE NAME <br />apache2  1630     root    3u  IPv4   7860      0t0  TCP *:http (LISTEN) <br />apache2 23493 www-data    3u  IPv4   7860      0t0  TCP *:http (LISTEN) <br />apache2 23494 www-data    3u  IPv4   7860      0t0  TCP *:http (LISTEN) <br />apache2 23523 www-data    3u  IPv4   7860      0t0  TCP *:http (LISTEN) <br />apache2 23524 www-data    3u  IPv4   7860      0t0  TCP *:http (LISTEN) <br />apache2 23525 www-data    3u  IPv4   7860      0t0  TCP *:http (LISTEN)</p> <p> </p> <p>#<strong>二、如何經過Linux系統下iptables防火牆開啓/關閉指定端口方法</strong></p> <p>排除端口沒有被佔用以後,還須要判斷防火牆是否關閉了端口,防止端口不可用。</p> <p>linux端口和服務:</p> <p>1、端口和服務的關係 <br />端口號與相應服務的對應關係存放在/etc/services文件中,這個文件中能夠找到大部分端口。使用netstat命令 <br />顯示的服務名稱也是從這個文件中找的。</p> <p><font style="background-color: #666666" color="#ffffff">有人說將這個文件中的相應端口號註釋掉,就能夠禁用該端口。我試了卻不起做用,這種方法應該是沒有用的,是誤傳!</font></p> <p><font style="background-color: #666666" color="#ffffff">將相應端口號註釋掉,惟一的做用就是使用netsat命令時,將不顯示服務名(好比ftp)而是顯示端口號(好比21)。</font></p> <p><font style="background-color: #666666" color="#ffffff">原理也很簡單:netstat沒法在/etc/services文件中找到端口號對應的服務名,天然就沒法顯示了。</font></p> <p><font style="background-color: #666666" color="#ffffff">因此/etc/services文件只是起到端口號與相應服務的映射關係,與端口的啓動和關閉沒有關係!</font></p> <font color="#000000"></font> <p> <br />2、查看本機開放的端口 <br />一、netstat  查看端口和鏈接 <br />netstat  列出目前已經鏈接的服務名 <br />netstat -a  列出目前已經鏈接的和正在監聽的服務名 <br />netstat -an  列出目前已經鏈接的和正在監聽的端口號(與上面的命令功能同樣,只是不解釋端口號對應的服務名) <br />netstat -ap  在上面命令的基礎上列出鏈接的PID(進程號),用這個PID,可使用KILL 來殺死鏈接 <br />    例如:某個鏈接的PID=111,想踢出去就使用 KILL -9 111。ok! <br />netstat -rn  輸出路由表</p> <p> <br />二、nmap <br />nmap  127.0.0.1  查看本機開放的端口,會掃描全部端口 <br />nmap  -p 1024  65535? 127.0.0.1  掃描指定端口範圍 <br />nmap -PT 192.168.1.1-111? 掃描一組範圍的電腦</p> <p> <br />3、關閉和開啓端口(服務) <br />關閉端口的方法: <br />一、由於每一個端口都有對應的服務,所以要關閉端口只要關閉相應的服務就能夠了。 <br />二、用IPTABLE對端口進行限制,這樣也能使端口不被訪問,但端口自己並無關閉。 <br /></p> <p>在這兒只介紹關閉服務的方法,IPTABLE的應用之後再討論。 <br />linux中開機自動啓動的服務通常都存放在兩個地方: <br />/etc/init.d/文件夾下的服務: <br />這個文件夾下的服務均可以經過運行相應的SCRIPT來啓動或關閉。 <br />例如:啓動sendmail服務  ./sendmail start (打開了TCP 25端口) <br />關閉sendmail服務  ./sendmail stop (關閉TCP 25 端口) <br />  查看sendmail服務當前狀態  ./sendmail? status (查看服務是否運行) <br />/etc/xinetd.d/文件夾下的服務: <br />這個文件夾下的服務須要經過更改服務的配置文件,並從新啓動xinetd才能夠。 <br />例如:要啓動其中的auth服務,打開/etc/xinetd.d/auth配置文件,更改「disable=no」,保存退出。運行/etc/rc.d/init.d/xinetd restart  <br />要中止其中的auth服務,打開/etc/xinetd.d/auth配置文件,更改「disable=yes」,保存退出。運行/etc/rc.d/init.d/xinetd restart  <br />4、控制開機自動啓動的服務 <br />上面說的控制服務開關方法是在啓動linux以後進行操做的,若是我想在linux啓動時控制哪些服務啓動、哪些服務關閉怎麼作 <br />控制服務自動啓動的方法有3個: <br />一、更改/etc/rc.d下的對應文件夾: <br />  若是你登錄的默認界面是字符界面,那麼修改rc.3文件夾,若是登錄界面默認是圖形界面,那麼修改rc.5。 <br />  在文件夾中,每一個服務的名字前都帶有「K」或「S」,S就表明這個服務開機自動運行了,把它刪了或前綴改成「K」下次就不會啓動了。 <br />二、使用ntsysv命令: <br />  輸入ntsysv命令,將會出現一個服務列表,須要啓動的打「*」,簡單。 <br />三、使用chkconfig命令: <br />讓某個服務不自動啓動:例如httpd:chkconfig --level 35  httpd? off  ;35指的是運行級別 <br />讓某個服務自動啓動:例如httpd:chkconfig --level 35  httpd? on ; <br />  查看全部服務的啓動狀態:chkconfig --list  <br />  查看某個服務的啓動狀態:chkconfig --list |grep httpd</p> <p> </p> <p>4、防火牆如何關閉和開啓端口。</p> <p>開啓81端口: <br />iptables -I INPUT -i eth0 -p tcp --dport 81 -j ACCEPT <br />iptables  -I OUTPUT -o eth0 -p tcp --sport 81 -j ACCEPT <br /></p> <p>關閉81端口: <br />iptables -I INPUT -i eth0 -p tcp --dport 81 -j DROP <br />iptables -I OUTPUT -o eth0 -p tcp --sport 81 -j DROP <br /></p> <p>而後保存 <br />/etc/rc.d/init.d/iptables save</p> <p>可使用lsof命令來查看某一端口是否開放.查看端口能夠這樣來使用. <br />lsof -i:81 <br />若是有顯示說明已經開放了.若是沒有顯示說明沒有開放</p>linux