[server] UDP 포트에서 서버에 대한 연결 확인

HP-UX 시스템이 UDP를 사용하여 특정 포트에서 원격 시스템 (제어 할 수없는)과 통신 할 수 있는지 알고 싶습니다.

텔넷을 시도했지만 UDP를 지원하는 것처럼 보이지 않습니다. netcat을 사용하지만 번들을 찾을 수 없습니다. 이 기계는 생산 중이므로 너무 설득하거나 설치하는 것을 엉망으로 만들고 싶지 않습니다 … (nmap, netcat from source …)

이 작업을 수행하는 간단한 방법이 있습니까?



답변

연결 이 없기 때문에 UDP 포트를 핑하는 것은 까다 롭습니다 . 원격 호스트를 제어 할 수없는 경우 UDP 데이터 그램이 실제로 수신되는지 여부를 절대 알 수 없습니다. 나는 통해 이미 원격 호스트에 도달 할 수 있는지 여부를 알고 있다고 가정 ping, traceroute, mtr, 등 (그렇지 않을 경우, 첫 번째 체크!)

다음에는이 없기 때문에 netcatUDP 패킷을 생성하는 방법이 필요합니다.

bash당신이 특수 장치에 데이터를 리디렉션 할 때 쉘은 UDP 패킷을 전송합니다 /dev/udp/host/port. 예를 들면 다음과 같습니다.

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

물론 파이썬은 UDP를 완벽하게 사용할 수 있습니다.

#!/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))

UDP “ping”패킷 생성 방법에 관계없이 대상이 패킷을 받았는지 여부를 알고 싶을 것입니다. 대상 포트가 열려 있으면 (예 : 서비스가 지정된 포트에서 수신 대기중인 경우) 애플리케이션 정의가 수행됩니다. 바라건대, 당신은 원격 시스템으로부터 어떤 행동이나 지시를 보게 될 것입니다.

대상 포트 (즉, 어떤 서비스가 해당 포트에서 청취하지 않습니다) 닫혀있는 경우에, 당신은 해야 응답에서 ICMP 오류 패킷 다시 얻을. 좋아하는 유선 네트워크 스니퍼를 사용하여 감시하십시오. 또는 HP-UX 시스템이 ICMP 오류를 어딘가에 기록합니다 (죄송합니다, HP-UX에 대한 경험이 없습니다).

불행히도 대상이 방화벽으로 설정되어 있으면 대상 포트를 닫을 때 응답이 없을 수 있습니다. 원격 호스트의 응답 여부를 확인하는 유일한 확실한 방법은 UDP 데이터 종속 응용 프로그램을 실행하고 네트워크 트래픽을 감시하는 것입니다.


답변

사용할 수 있습니다 netcat. OSX에서 이것은 내 명령입니다.

$ 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


답변