2012-12-22 20 views
6

Tôi muốn cài đặt webserver-apache trên nền tảng Linux sử dụng cổng số 80 nhưng tôi không chắc chắn liệu cổng có đang mở hay không và đang được một số ứng dụng khác sử dụng hay không.Làm thế nào để kiểm tra xem một cổng nào đó đang mở và chưa sử dụng?

  1. Sản lượng grep 80 /etc/services là:

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:

Nó cung cấp cho một số IP của một trong số đó là IP: 80 TIME_WAIT

Bạn có thể vui lòng giúp đỡ và nói làm thế nào tôi có thể tìm hiểu xem cổng 80 là mở và không sử dụng để tôi có thể bắt đầu cài đặt.

+2

Đối với những gì nó có giá trị , '/ etc/services' là hoàn toàn tĩnh. Tham lam nó có thể cho bạn biết nếu một cổng được chính thức chỉ định bởi IANA hoặc một số như vậy, nhưng không cho biết có hay không nó là sử dụng tại địa phương. – tripleee

Trả lời

2

Hãy thử đường ống lsof vào grep và tìm kiếm một số cổng:

lsof|grep <port> 

Nếu không có gì xuất hiện có nghĩa là cổng không được sử dụng

Bạn có thể giết chết một quá trình trên một cổng cụ thể sử dụng

kill -9 <pid> 

Trường hợp pid là id tiến trình thu được từ lệnh đầu tiên.

+0

Hey Dillon: Nó cho tôi đầu ra ... một số crond, httpd .... vv với một số đường dẫn trên phía bên phải như/sbin/klogd ...rất nhiều thứ như vậy – Richa

+0

Lý do tại sao bạn nhận được nhiều kết quả là vì bạn đang sử dụng cổng 80. Có rất nhiều quy trình khác đang chạy trên cổng đó. –

+0

oh okay, vậy có nghĩa là tôi không thể sử dụng cổng 80 cho Apache !! :(anyways cảm ơn sự giúp đỡ của bạn – Richa

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

tùy chọn này hiển thị địa chỉ liên kết của điểm cuối nghe tcp. tất cả các thiết bị đầu cuối khác đều miễn phí; Ngoài ra nếu trên Unix và bạn không phải là gốc, thì bạn không thể liên kết với một số cổng 'đặc quyền' (số cổng thấp hơn so với 1024)

giải thích chi tiết hơn:

netstat -tln - tất cả nghe cổng tcp

đuôi -n 3 - cắt của tiêu đề của netstat

awk '{print $ 4}' - in cột thứ tư mà bao gồm [ip]: [cổng]

cho trường hợp chung bạn vẫn cần phải quan tâm để cắt bỏ tất cả giao diện không liên quan; một địa chỉ nghe 0.0.0.0 đang lắng nghe trên tất cả các card mạng, nếu có một địa chỉ IP hơn là IP cụ thể của giao diện mạng/xe mạng.

0

Là một phần của một kịch bản có thể bạn sẽ muốn sử dụng một cái gì đó như thế này:

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' 

Điều đó sẽ cung cấp cho bạn pid & Tên của quá trình giữ cổng 80

Các vấn đề liên quan