it-swarm-vi.tech

Làm cách nào để kiểm tra xem cổng có bị chặn trên máy Windows không?

Trên nền tảng Windows, tôi phải kiểm tra các tùy chọn gốc nào để kiểm tra xem một cổng (ví dụ 3306) trên máy cục bộ của tôi (như trong localhost), có bị chặn không?

109
Boris Pavlović

Vì bạn đang ở trên máy Windows, những điều này có thể được thực hiện,

  • Thực hiện lệnh sau và tìm kiếm trình nghe ": 3306" (bạn không đề cập đến UDP/TCP). Điều này sẽ xác nhận có một cái gì đó chạy trên cổng.

    netstat -a -n

  • Sau này, nếu bạn đang mong đợi các kết nối đến trên cổng này và cảm thấy rằng tường lửa có thể đang chặn chúng, bạn có thể bắt đầu đăng nhập tường lửa và kiểm tra nhật ký cho các kết nối bị mất

    • Chuyển đến Tường lửa Windows, Cài đặt nâng cao
    • Nhấp vào nút Cài đặt bên cạnh "Kết nối khu vực địa phương"
    • Chọn "Nhật ký gói tin bị rơi"
    • Nhìn vào vị trí tệp nhật ký (nếu không có mặt xác định một)
    • Nhấn vào OK
    • Bây giờ, khi nỗ lực kết nối được thực hiện (giả sử bạn biết khi nào việc này được thực hiện), hãy xem tệp nhật ký để biết thông tin về cổng 3306.
    • Nếu điều này được nhìn thấy, bạn sẽ muốn thêm một ngoại lệ cho cổng này.
  • Có thêm một lệnh để kiểm tra trạng thái tường lửa
    [.__.] (Cập nhật cho người dùng Windows 7 - như được giới thiệu bởi Nick bên dưới - sử dụng tường lửa advhwall )

    tường lửa Netsh cho thấy nhà nước

    • điều này sẽ liệt kê các cổng bị chặn cũng như các cổng nghe hoạt động với các hiệp hội ứng dụng
  • Lệnh này sẽ kết xuất chi tiết cấu hình tường lửa của Windows

    tường lửa hiển thị cấu hình


Nếu bạn có một khối hoạt động (các kết nối đến đang bị tường lửa loại bỏ) sau khi bạn bắt đầu đăng nhập, bạn sẽ thấy điều đó trong nhật ký.

Nếu bạn đang chạy một ứng dụng/dịch vụ đang nghe trên 3306, thì cấu hình tường lửa sẽ hiển thị nó để được kích hoạt. Nếu điều này không được nhìn thấy, có lẽ bạn đã bỏ lỡ thêm một ngoại lệ với tường lửa để cho phép ứng dụng/dịch vụ này.

Cuối cùng, cổng 3306 thường được sử dụng cho MySQL. Vì vậy, tôi cho rằng bạn đang chạy máy chủ MySQL trên máy tính windows này. Do đó, bạn sẽ thấy một người nghe cho 3306 chấp nhận kết nối đến. Nếu bạn không thấy điều đó, bạn cần phải làm việc với ứng dụng của mình (MySQL) để bắt đầu trước.

113
nik

NETSTAT sẽ cho bạn biết nếu cổng là lắng nghe nhưng nó sẽ không cho bạn biết nếu cổng đó là open với thế giới bên ngoài. Điều tôi muốn nói là điều này là NETSTAT có thể cho thấy 0.0.0.0 đang LẮNG NGHE trên cổng 3306 nhưng tường lửa vẫn có thể chặn cổng đó đang ngăn kết nối bên ngoài; vì vậy nó không đủ để chỉ dựa vào NETSTAT.

Cách tốt nhất để kiểm tra xem một cổng có bị chặn hay không là thực hiện quét cổng từ máy khách.

Có nhiều cách để thực hiện quét cổng nhưng vì bạn đã đề cập đến trên Windows nên tôi sẽ đề xuất tiện ích dòng lệnh của Microsoft PortQry và phiên bản đồ họa PortQryUI

Để kiểm tra tất cả các cổng mở:

portqry.exe -n #.#.#.#   

Để kiểm tra một cổng cụ thể:

portqry.exe -n #.#.#.# -e #

Ví dụ: để kiểm tra giao diện Web của bộ định tuyến tại 192.168.1.1:

portqry.exe -n 192.168.1.1 -e 80

Trả về:

TCP port 80 (http service): LISTENING

Khi thử nghiệm trên một máy cục bộ không có HTTPD chạy trả về:

TCP port 80 (http service): NOT LISTENING

Sử dụng tiện ích PortScan, bạn sẽ nhận được một trong 3 kết quả.

  • Listening có nghĩa là máy chủ đang lắng nghe trên cổng được chỉ định
  • Filtered có nghĩa là nó đã nhận được gói TCP gói xác nhận với cờ Đặt lại có khả năng chỉ ra sự cố tường lửa hoặc phần mềm
  • Not Listening có nghĩa là nó hoàn toàn không nhận được phản hồi

telnet là một tùy chọn dòng lệnh khác thường được cài đặt trên HĐH theo mặc định. Tiện ích dòng lệnh này có thể được sử dụng một cách nhanh chóng để xem cổng có đáp ứng yêu cầu mạng hay không.

Để sử dụng telnet bạn chỉ cần đưa ra lệnh sau từ lệnh Nhắc:

telnet localhost 3306

Lệnh trên sẽ cung cấp cho bạn một dấu hiệu nhanh nếu cổng 3306 trên localhost đang phản hồi.

25
Tim Penner

Vì PowerShell 4.0, bạn có thể sử dụng lệnh Test-NetConnection

Nếu bạn muốn kiểm tra Cổng 3306 như trong ví dụ của bạn, lệnh là

Test-NetConnection -ComputerName localhost -Port 3306

Tài liệu thử nghiệm NetNet-NetConnection

21
Marcel Janus

Nếu bạn có thể telnet đến cổng từ máy cục bộ (sử dụng địa chỉ IP bên ngoài), nhưng không phải từ máy khác - thì nó đang bị chặn ở đâu đó giữa.

Lưu ý rằng tường lửa trên máy cục bộ của bạn có thể ngăn chặn ngay cả hành động đầu tiên.

5
Brent