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?
Respuesta
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.
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
Aquí hay un sitio pequeño que hice que permite probar cualquier puerto de salida. El servidor escucha en todos los puertos TCP disponibles.
telnet portquiz.net XXXX
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. –
Herramienta bastante ingeniosa, Marc. –
@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. –
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
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.
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
- 1. ¿Cómo puedo probar una conexión a un servidor con C# dada la dirección IP del servidor?
- 2. Cómo determinar si una dirección IP pertenece a un país
- 3. expressjs enlazar a una dirección IP específica
- 4. Convirtiendo un int a una dirección IP
- 5. rastrear una dirección IP y un puerto en particular
- 6. Determinación de la dirección IP y el puerto de una conexión TCP/IP entrante en Erlang
- 7. Cómo escanear un puerto esperando una conexión en una red
- 8. ¿Es posible ocultar la dirección IP en una conexión PHP?
- 9. ¿Cómo puedo hacer Compojure escuchar a una sola dirección IP
- 10. ¿Cómo puedo determinar a qué compañía pertenece una dirección IP?
- 11. ¿Cómo burlarse de una conexión Socket saliente?
- 12. ¿Cómo vincular un Socket Raw a un puerto específico?
- 13. ¿Cómo puedo obtener el puerto ethernet dada la dirección IP?
- 14. Enlazar IIS Express a una dirección IP
- 15. Geocodificar una dirección IP?
- 16. la conversión de una dirección IP a un número:
- 17. ¿Cómo incremento una dirección IP representada como una cadena?
- 18. Python: obtenga la dirección IP local utilizada para enviar datos IP a una dirección IP remota específica
- 19. ¿Cómo reenviar un subdominio a un nuevo puerto en la misma dirección IP utilizando Apache?
- 20. ¿Cómo puedo permitir el acceso a una sola dirección IP a través de Nginx.conf?
- 21. recibir paquetes transmitidos cuando se escucha a un puerto específico
- 22. ¿Cómo puedo enviar datos con PHP a una dirección IP a través de UDP?
- 23. ¿Puedo abrir una conexión websocket a un servidor local que se ejecuta en un puerto arbitrario?
- 24. ¿Existe una función que pueda tomar una dirección IP como cadena y decirme si es una dirección IP no enrutable?
- 25. seleccionar la IP saliente para solicitar curl
- 26. Entero a la dirección IP - C
- 27. Cómo bloquear una dirección IP usando web.xml?
- 28. ¿Alguien puede suplantar una dirección IP a cualquier número?
- 29. Cómo crear una conexión de socket TCP usando C a un puerto predefinido
- 30. conversión de una dirección IP a nombre de host
Ah, y ACEPTO algunas de las respuestas a las preguntas que tiene pendientes POR FAVOR. – James