2012-12-22 13 views
6

Chcę zainstalować serwer WWW-apache na platformie Linux, która korzysta z portu nr 80, ale nie jestem pewien, czy port jest otwarty czy nie i czy jest używany przez inną aplikację, czy nie.Jak sprawdzić, czy dany port jest otwarty i nieużywany?

  1. Wyjście grep 80 /etc/services jest:

http 80/tcp www www-http #World Wide web Http

http 80/udp www www-http #Hypertext transfer protocol

2. netstat -an | grep 80 | more:

To daje pewne IP, z których jedna jest IP: 80 TIME_WAIT

Czy możesz pomóc i powiedzieć, w jaki sposób mogę się dowiedzieć, czy port 80 jest otwarty i nieużywany, aby można było rozpocząć instalację.

+2

Na co warto , '/ etc/services' jest całkowicie statyczne. Grepping może ci powiedzieć, czy port jest oficjalnie wyznaczony przez IANA lub coś takiego, ale nie mówi, czy jest on w użyciu lokalnym. – tripleee

Odpowiedz

2

Spróbuj rurociągi lsof do grep i wyszukiwaniu numeru portu:

lsof|grep <port> 

Jeśli nic nie pokazuje się, że oznacza, że ​​port nie jest używany

Można zabić proces na określonym porcie używając

kill -9 <pid> 

Gdzie pid jest identyfikatorem procesu uzyskanym od pierwszego polecenia.

+0

Hej Dillon: Daje mi wyjście ... trochę cronda, httpd .... itd. Z jakąś ścieżką po prawej stronie jak/sbin/klogd ...wiele takich jak ten – Richa

+0

Powodem, dla którego uzyskujesz wiele wyników, jest fakt, że używasz portu 80. Istnieje wiele innych procesów uruchomionych na tym porcie. –

+0

o ok, więc to oznacza, że ​​nie mogę użyć portu 80 dla Apache !! :(anyways dzięki za pomoc – Richa

4
 netstat -tln | tail -n +3 | awk '{ print $4 }' 

ten wyświetla adresy bindów punktu końcowego odsłuchiwania tcp. wszystkie inne punkty końcowe są bezpłatne; Także jeśli w Uniksie i nie jesteś korzeń, to nie może wiązać się z „uprzywilejowanej” numer portu (liczba portów niższe niż 1024)

wyjaśnione bardziej szczegółowo:

netstat -tln - wszystko odsłuchu portach TCP

ogon -n + 3 - wykrój nagłówku netstat

awk '{$} nadruk 4' - drukowania czwartą kolumnę, która składa się z [IP] [port]

dla ogólny przypadek, w którym nadal musisz się zająć, aby wyciąć wszystko nieistotne interfejsy; adres nasłuchu 0.0.0.0 nasłuchuje na wszystkich kartach sieciowych, jeśli istnieje adres IP, niż jest to adres IP interfejsu sieciowego samochodu/sieci.

0

W ramach scenariusza byłoby prawdopodobnie chcesz użyć czegoś takiego:

resp=`netstat -tunl | grep ":80 "` 
if [ -z "$resp" ]; then 
    echo "80 Port is free" 
else 
    echo "80 Port is not free" 
fi 
1
sudo netstat -anp | grep ':80' 

To powinno dać pid & nazwę procesu, który posiada port 80

Powiązane problemy