2011-05-19 20 views
8

Bien, todos sabemos cómo usar PING para probar la conectividad a una dirección IP. Lo que tengo que hacer es algo similar, pero pruebe si mi solicitud de salida a una dirección IP determinada, así como un puerto específico (en el presente caso 1775) es exitosa. La prueba se debe realizar preferentemente desde el símbolo del sistema.¿Cómo puedo probar una conexión saliente a una dirección IP así como a un puerto específico?

+2

Ah, y ACEPTO algunas de las respuestas a las preguntas que tiene pendientes POR FAVOR. – James

Respuesta

5

Si hay un servidor que se ejecuta en el objetivo de IP/puerto, se puede usar Telnet. Cualquier respuesta que no sea "no se puede conectar" indicaría que usted pudo conectarse.

5

Si está probando TCP/IP, una forma económica de probar el puerto/dirección remota es hacer un telnet y ver si se conecta. Para protocolos como HTTP (puerto 80), incluso puede escribir comandos HTTP y obtener respuestas HTTP.

por ejemplo

Command IP   Port 
Telnet 192.168.1.1 80 
52

Aquí hay un sitio pequeño que hice que permite probar cualquier puerto de salida. El servidor escucha en todos los puertos TCP disponibles.

http://portquiz.net

telnet portquiz.net XXXX 
+0

Eso es interesante, pero no es una solución bastante a largo plazo, ¿verdad? Aunque supongo que es muy sencillo escribir el código para. –

+1

Herramienta bastante ingeniosa, Marc. –

+0

@Shurane Sí, es simple: utiliza iptables para redireccionar todos los puertos tcp a 80. Por supuesto depende de que mi servidor esté disponible, pero estoy planificando mantenerlo a largo plazo. También estoy buscando un simple nombre de dominio fácil de escribir para registrarme. Si tiene alguna idea, no dude en decirme. –

8

para automatizar el portquiz.net servicio impresionante, lo hice escribir un script bash:

NB_CONNECTION=10 
PORT_START=1 
PORT_END=1000 

for ((i=$PORT_START; i<=$PORT_END; i=i+NB_CONNECTION)) 
do 
    iEnd=$((i + NB_CONNECTION)) 
    for ((j=$i; j<$iEnd; j++)) 
    do 
     #(curl --connect-timeout 1 "portquiz.net:$j" &> /dev/null && echo "> $j") & 
     (nc -w 1 -z portquiz.net "$j" &> /dev/null && echo "> $j") & 
    done 
    wait 
done 
0

La escritura del golpe ejemplo de @benjarobin para probar una secuencia de puertos no lo hizo trabajo para mí, así que creé este ejemplo mínimo que realmente no es una línea (línea de comandos) que escribe la salida de los puertos abiertos desde una secuencia de 1-65535 (todos los puertos de comunicación aplicables) a un archivo local y suprime todos los demás salida:

for p in $(seq 1 65535); do curl -s --connect-timeout 1 portquiz.net:$p >> ports.txt; done 

Desafortunadamente, esto demora 18.2 horas en ejecutarse, porque la cantidad mínima de tiempo de espera de conexión permitida en segundos enteros por mi versión anterior de curl es 1. Si tiene una versión curl> = 7.32.0 (escriba "curl - V "), puede probar valores decimales más pequeños, dependiendo de qué tan rápido pueda conectarse al servicio. O pruebe con un rango de puerto más pequeño para minimizar la duración.

Además, se agregará al archivo de salida ports.txt, por lo que si se ejecuta varias veces, es posible que desee eliminar primero el archivo.

1

La forma más rápida/más eficiente que he encontrado para esto es que con nmap y portquiz.net se describe aquí: http://thomasmullaly.com/2013/04/13/outgoing-port-tester/ Este escanea a 1000 mejores puertos más utilizados:

# nmap -Pn --top-ports 1000 portquiz.net 

Starting Nmap 6.40 (http://nmap.org) at 2017-08-02 22:28 CDT 
Nmap scan report for portquiz.net (178.33.250.62) 
Host is up (0.072s latency). 
rDNS record for 178.33.250.62: electron.positon.org 
Not shown: 996 closed ports 
PORT  STATE SERVICE 
53/tcp open domain 
80/tcp open http 
443/tcp open https 
8080/tcp open http-proxy 

Nmap done: 1 IP address (1 host up) scanned in 4.78 seconds 

Para escanear a todos ellos (tardó 6 seg en lugar de 5):

# nmap -Pn -p1-65535 portquiz.net 
Cuestiones relacionadas