Xác minh kết nối với máy chủ trên cổng UDP


14

Tôi muốn biết liệu máy HP-UX có thể giao tiếp với máy từ xa không (mà tôi không có quyền kiểm soát) trên một cổng cụ thể bằng UDP.

Tôi đã thử telnet, nhưng có vẻ như nó không hỗ trợ UDP. Tôi sẽ sử dụng netcat, nhưng tôi không thể tìm thấy bất kỳ gói nào. Máy này đang trong quá trình sản xuất nên tôi không muốn loay hoay với việc cài đặt hoặc cài đặt mọi thứ quá nhiều ... (nmap, netcat từ nguồn ...)

Bất kỳ cách đơn giản để làm điều này?

Câu trả lời:


16

Ping một cổng UDP là một việc khó khăn, vì không có kết nối nào cả . Nếu bạn không có quyền kiểm soát máy chủ từ xa, thì bạn có thể không bao giờ thực sự biết liệu các datagram UDP của mình có thực sự được nhận hay không. Tôi giả sử bạn đã biết liệu máy chủ từ xa có thể truy cập, thông qua ping, traceroute, mtr, vv (Nếu không, kiểm tra xem đầu tiên!)

Tiếp theo, vì bạn không có netcat, bạn sẽ cần một số cách tạo gói UDP.

Các bashvỏ sẽ gửi các gói tin UDP khi bạn chuyển hướng dữ liệu đến các thiết bị đặc biệt /dev/udp/host/port. Ví dụ:

#!/bin/bash
host="10.10.10.10"
port=12345
echo "PING" >/dev/udp/$host/$port

Python, tất nhiên, cũng hoàn toàn có khả năng UDP, vd

#!/bin/python
import socket
host="10.10.10.10"
port=12345
udp_sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
udp_sock.sendto('PING', (host, port))

Bất kể bạn cố gắng tạo gói "ping" UDP như thế nào, bạn sẽ muốn biết liệu mục tiêu có nhận được nó hay không. Nếu cổng đích mở (nghĩa là một dịch vụ đang lắng nghe tại cổng đã cho), thì những gì xảy ra sẽ được xác định bởi ứng dụng. Hy vọng, bạn sẽ nhận thấy một số hành vi hoặc chỉ dẫn từ hệ thống từ xa.

Nếu cổng đích bị đóng (tức là không có dịch vụ nào lắng nghe tại cổng đó), thì bạn sẽ nhận được gói lỗi ICMP phản hồi. Sử dụng trình thám thính mạng cấp dây yêu thích của bạn để xem cho nó. Hoặc, có lẽ hệ thống HP-UX của bạn ghi lại các lỗi ICMP ở đâu đó (xin lỗi, tôi không có bất kỳ kinh nghiệm nào với HP-UX).

Thật không may, nếu mục tiêu được tường lửa, bạn có thể không nhận được phản hồi khi cổng đích bị đóng. Cách chắc chắn duy nhất để biết máy chủ từ xa có phản hồi hay không là chạy ứng dụng phụ thuộc dữ liệu UDP của bạn và xem lưu lượng mạng.


10

Bạn có thể sử dụng netcat. Trong OSX, đây là lệnh của tôi:

$ nc -vnzu <IP> <PORT>
found 0 associations
found 1 connections:
1: flags=82<CONNECTED,PREFERRED>
outif (null)
src <SOURCE IP> port <SOURCE PORT>
dst <DEST IP> port <DEST PORT>
rank info not available

Hoàn hảo, nc hoạt động cho tất cả mọi thứ!
Shoaib Khan
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.