Làm cách nào để xem cổng nào đang mở trên máy của tôi?


148

Tôi muốn xem cổng nào đang mở trên máy của tôi, ví dụ: cổng nào máy tôi đang nghe. Ví dụ, cổng 80 nếu tôi đã cài đặt một máy chủ web, v.v.

Có lệnh nào cho việc này không?

Câu trả lời:


113

nmap Cài đặt nmap

Nmap ("Network Mapper") là một tiện ích nguồn mở và miễn phí để khám phá mạng hoặc kiểm tra bảo mật

nmap 192.168.1.33 Pc nội bộ hoặc nmap external ip address

thêm thông tin man nmap


11
Cảm ơn, nmap localhostđã làm việc tuyệt vời.
Jonas

11
Hãy nhớ rằng có một sự khác biệt giữa nmap localhostnmap 192.168.0.3(hoặc bất kỳ máy IP nào của bạn)
LassePoulsen

6
Tôi nghĩ netstat là một câu trả lời tốt hơn cho điều này. netstat sẽ liệt kê những gì hệ thống đang nghe trực tiếp và không sử dụng một ứng dụng bổ sung hoặc thực hiện các cuộc gọi không cần thiết qua localhost hoặc nghĩ về mạng.
Mathieu Trudel-Lapierre

2
Điều này thật ngu ngốc. Nếu bạn có quyền truy cập vào máy tính, chỉ cần sử dụng netstat -ln. Bạn sẽ thấy ngay tất cả các cổng mở.
Alexis Wilke

1
nmap localhostkhông tìm thấy các dịch vụ chỉ liên kết với localhost. Ví dụ, tôi chạy influxdvới bind-address:localhost:8086. Điều đó đã không xuất hiện trong sudo nmap localhost, nhưng đã xuất hiện trong sudo netstat -tulpn.
Dan Dascalescu

279

Tôi đã luôn sử dụng cái này:

sudo netstat -ntlp | grep LISTEN

4
sudo netstat -ntlp | grep LISTEN... sử dụng sudokhác ... pid sẽ không được in.
Rafaf Tahsin

6
-lđã lọc để nghe. grep LISTENSẽ không giúp gì ngoài việc ẩn 2 dòng thông tin tiêu đề.
Dan Dascalescu

3
-t: tcp , -l: socket socket , -p: hiển thị pid và tên chương trình , -n: in 127.0.0.1:80thay vì localhost:http. Tham khảo: linux.die.net/man/8/netstat
Rick

1
cài đặt netstatvớisudo apt-get install net-tools
RichArt

2
Lệnh mở rộng là sudo netstat --tcp --listening --programs --numeric. Không cần sử dụng greptrừ khi bạn muốn loại bỏ các tiêu đề cột.
Patrick Dark

60

Các cách tốt khác để tìm hiểu các cổng đang lắng nghe và các quy tắc tường lửa của bạn là gì:

  • sudo netstat -tulpn

  • sudo ufw status


Tôi thay đổi câu trả lời nmapmột lần nữa, khả năng sử dụng netstatlà tào lao.
Jonas

2
@Jonas: xem bình luận của tôi dưới câu trả lời nmap. Nó sẽ không liệt kê các dịch vụ chỉ liên kết với localhost.
Dan Dascalescu

27

Để liệt kê các cổng mở sử dụng netstatlệnh.

Ví dụ:

    $ sudo netstat -tulpn | grep LISTEN
    tcp        0      0 127.0.0.1:53            0.0.0.0:*               LISTEN      5452/dnsmasq    
    tcp        0      0 127.0.0.1:631           0.0.0.0:*               LISTEN      1037/cupsd      
    tcp6       0      0 ::1:631                 :::*                    LISTEN      1037/cupsd

Trong ví dụ trên, ba dịch vụ được liên kết với địa chỉ loopback.

Các dịch vụ IPv4 được liên kết với địa chỉ loopback "127.0.0.1" chỉ khả dụng trên máy cục bộ. Địa chỉ loopback tương đương cho IPv6 là ":: 1". Địa chỉ IPv4 "0.0.0.0" có nghĩa là "bất kỳ địa chỉ IP nào", điều đó có nghĩa là các máy khác có khả năng kết nối với bất kỳ giao diện mạng được định cấu hình cục bộ nào trên cổng cụ thể.

Một phương pháp khác là sử dụng lsoflệnh:

    $ sudo lsof -nP -i | grep LISTEN
    cupsd     1037   root    9u  IPv6  11276      0t0  TCP [::1]:631 (LISTEN)
    cupsd     1037   root   10u  IPv4  11277      0t0  TCP 127.0.0.1:631 (LISTEN)
    dnsmasq   5452 nobody    5u  IPv4 212707      0t0  TCP 127.0.0.1:53 (LISTEN)

Để biết thêm chi tiết xem man netstathoặc man lsof.


3
Tôi nghĩ rằng -ltùy chọn là liệt kê LISTENcác cổng ing. Vì vậy, grep sẽ là thừa ở đây?!
Alexis Wilke

24

Điều này đủ để cho thấy rằng có một quá trình lắng nghe địa chỉ IP 0.0.0.0(cần thiết để nó sẽ trả lời bất kỳ yêu cầu nào) trên cổng 80 (số cổng máy chủ web tiêu chuẩn). Trong trường hợp của tôi, điều này cho thấy nó là máy chủ weblighttpd

$ sudo netstat -ntlp | grep :80
tcp        0      0 0.0.0.0:80              0.0.0.0:*               LISTEN          2495/lighttpd

Nếu sau này bạn muốn đảm bảo rằng điều duy nhất bạn cho phép thông qua tường lửa của mình là cổng 80, tôi thường sử dụng ShieldsUp từ www.grc.com để thực hiện kiểm tra tường lửa.


11

sudo iptables -Lsẽ liệt kê các quy tắc cổng cho máy tính của bạn. Lưu ý rằng nếu bạn đang sử dụng tường lửa ufw hoặc wallwall, đầu ra có thể khó đọc. Trong trường hợp đó thay vì sử dụng sudo ufw statusví dụ.

Điều này không hữu ích lắm vì ngay cả khi một cổng được truy cập mở vẫn sẽ bị từ chối nếu không có quá trình lắng nghe trên cổng đó.


4

Nếu bạn đang tìm kiếm giám sát liên tục các cổng cho máy chủ hoặc cục bộ, tôi nghĩ bạn cũng có thể sử dụng phiên bản đồ họa của nmap tức là Zenmap cho phiên bản chi tiết hơn

Zenmap là giao diện người dùng đồ họa (GUI) chính thức cho Trình quét bảo mật Nmap.

Hỗ trợ có sẵn (Linux, Windows, Mac OS X, BSD, v.v.)

Có một cái nhìn để xem công cụ này:

nhập mô tả hình ảnh ở đây

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.