Câu trả lời:
Giả sử rằng đó là cổng TCP (chứ không phải UDP) mà bạn đang cố sử dụng:
Trên chính máy chủ, sử dụng netstat -an
để kiểm tra xem cổng nào đang lắng nghe.
Từ bên ngoài, chỉ cần sử dụng telnet host port
(hoặc telnet host:port
trên các hệ thống Unix) để xem kết nối có bị từ chối, chấp nhận hoặc hết thời gian không.
Trong bài kiểm tra sau, sau đó nói chung:
Trên Windows 7 hoặc Windows Vista, tùy chọn mặc định 'telnet' không được nhận dạng dưới dạng lệnh nội bộ hoặc bên ngoài, chương trình có thể hoạt động hoặc tệp bó. Để giải quyết vấn đề này, chỉ cần kích hoạt nó: Nhấp vào * Bắt đầu ** → Bảng điều khiển → Chương trình → Bật hoặc tắt tính năng của Windows . Trong danh sách, cuộn xuống và chọn Telnet Client và nhấp OK.
Could not open connection to the host, on port *x*: Connect failed
chỉ ra?
telnet api-3t.sandbox.paypal.com 443
tôi nhận được Connecting to api-3t.sandbox.paypal.com...Could not open connection to the host on port 443: Connect failed
Đây có phải là do tường lửa đang chặn nó không?
o host port
vs dòng lệnh mở (cmd.exe) và sau đó nhậptelnet host port
Trên Windows bạn có thể sử dụng
netstat -na | find "your_port"
để thu hẹp kết quả. Bạn cũng có thể lọc cho LISTENING
, ESTABLISHED
, TCP
và như vậy. Mặc dù vậy, nó rất nhạy cảm.
find
không hoạt động trong Windows 10 đối với tôi, nhưng netstat -na | findstr "8080"
đã hoạt động
Nếu bạn đang kiểm tra từ bên ngoài, không phải từ chính máy chủ và bạn không muốn cài đặt telnet (vì nó không đi kèm với các phiên bản Windows cuối cùng) hoặc bất kỳ phần mềm nào khác, thì bạn có PowerShell gốc:
Test-NetConnection -Port 800 -ComputerName 192.168.0.1 -InformationLevel Detailed
(Thật không may, điều này chỉ hoạt động với PowerShell 4.0 hoặc mới hơn. Để kiểm tra phiên bản PowerShell của bạn, hãy nhập $PSVersionTable
.)
PS: Lưu ý, ngày nay có một số tuyên bố trên twittersphere gợi ý rằng câu trả lời này có thể được cải thiện bằng cách đề cập đến "Kết nối thử nghiệm" từ PowerShell Core hoặc phím tắt "tnc". Xem https://twitter.com/david_obrien/status/1214082339203993600 và giúp tôi chỉnh sửa câu trả lời này để cải thiện nó!
(Nếu bạn có PSVersion <4.0, bạn sẽ không gặp may. Hãy xem bảng này:
Mặc dù bạn có thể nâng cấp phiên bản PowerShell của mình bằng cách cài đặt Windows Management Framework 4.0 , nhưng tôi không làm được điều đó, lệnh ghép ngắn Test-NetConnection vẫn không khả dụng).
Trên máy Windows, bạn có thể sử dụng PortQry từ Microsoft để kiểm tra xem ứng dụng đã nghe trên một cổng cụ thể chưa bằng lệnh sau:
portqry -n 11.22.33.44 -p tcp -e 80
portqry -n 11.22.33.44 -p udp -e 19132
Tôi đã làm như thế:
netstat -an | find "8080"
từ telnet
telnet 192.168.100.132 8080
Và chỉ cần chắc chắn rằng tường lửa đã tắt trên máy đó.
netstat -an | find "8080"
nó nói,no such file named "8080"
Nếu telnet
không có sẵn, tải xuống PuTTY . Nó là một máy khách Telnet, SSH, v.v ... vượt trội hơn rất nhiều và sẽ hữu ích trong nhiều tình huống, không chỉ trong trường hợp này, đặc biệt nếu bạn đang quản trị một máy chủ.
Bạn có muốn một công cụ để làm điều đó? Có một trang web tại http://www.canyouseeme.org/ . Nếu không, bạn cần một số máy chủ khác gọi lại cho bạn để xem cổng có mở không ...
Trên Windows Server, bạn có thể sử dụng
netstat -an | where{$_.Contains("Yourport")}
PsPing từ Sysiternals cũng rất tốt.
Một tiện ích khác mà tôi đã tìm thấy và cũng tốt và nhỏ, đó là PortQry Command Line Port Scanner phiên bản 2.0 .
Bạn có thể ping một máy chủ và một cổng và nó sẽ cho bạn biết trạng thái của cổng. Có một tiện ích dòng lệnh và giao diện người dùng cho nó.