Tengo un dominio (por ejemplo example.com
), una dirección IP estática (por ejemplo ) 212.5.5.5
y dispositivos locales en ,,, 192.168.0.1:80
( este no es un sitio web).192.168.0.2:80
192.168.0.3:80
192.168.0.4:80
192.168.0.4:47
¿Cómo accedo a estos dispositivos usando subdominios (por ejemplo, device1.example.com
, device2.example.com
etc.)?
Actualmente solo pude conseguir example.com:80
y example.com:47
trabajar, que apuntan a 192.168.0.4:80
y 192.168.0.4:47
.
Sé que no puedes configurar el puerto en el servidor DNS.
¿Cómo debo superar mi problema?
Respuesta1
Puede tener un servidor público que ejecute el proxy inverso nginx que redirige el tráfico según el subdominio al servidor correcto.
Configuración de nginx en su servidor "principal":
server {
server_name device1.example.com;
location / {
proxy_pass http://192.168.0.1:80;
}
}
server {
server_name device2.example.com;
location / {
proxy_pass http://192.168.0.2:80;
}
}
server {
server_name device3.example.com;
location / {
proxy_pass http://192.168.0.3:80;
}
}
Respuesta2
Necesitará usar puertos alternativos para todo excepto uno de ellos. Por ejemplo, 212.5.5.5:80 reenviaría a 192.168.0.1:80, pero luego 212.5.5.5:81 reenviaría a 192.168.0.2:80 y 212.5.5.5:82 reenviaría a 192.168.0.3:80, y así en. Esto debería ser configurable en la mayoría de los dispositivos NAT modernos.
Otra forma, si está dispuesto a utilizar IPv6, es simplemente activar la transferencia de IPv6 en su dispositivo NAT o enrutador. Básicamente, eso expone todas las direcciones IPv6 de su LAN a la Internet pública, permitiéndole acceder a ellas directamente desde el exterior. Como puede imaginar, existe cierto riesgo asociado con esto. Depende de usted decidir si ese riesgo es tolerable.
Respuesta3
No debes exponer estos servicios a Internet directamente. No puede auditar estos dispositivos para asegurarse de que sean seguros y simplemente exponerlos filtra información sobre el estado de su red interna.
La solución correcta es configurar un servidor VPN que le otorgue acceso remoto a una red interna. Lo ideal es que la red interna esté separada de la principal y solo se use para estos dispositivos expuestos. Eso limita el daño si son pirateados.
El software VPN de código abierto está maduro, auditado y los problemas de seguridad se comprenden bien. Te limitas a una superficie de ataque mucho más pequeña.
Respuesta4
Primero puede asegurarse de que todos necesiten acceder a estos servicios desde Internet (= que realmente estén destinados a ser públicos). De lo contrario, podría considerar configurar un servidor VPN y acceder a los servicios dentro de su red.
Supongo que los servicios que están en el puerto 80
son servidores web que brindan servicios web típicos. En tal caso, se aplican las soluciones de proxy inverso sugeridas en otras respuestas.
Puede ser que sean servicios que estén preparados/destinados a ejecutarse con una SRV
entrada en su DNS. La idea es que resuelvas un registro conocido para un servicio, que a su vez te da el nombre:puerto al que conectarte. Para tomar el ejemplo de Minecraft:
- usted configura su cliente para conectarse
minecraft.example.com
- su cliente sabe que puede consultar
_minecraft._tcp.minecraft.example.com.
para obtener la IP real y el puerto al que conectarse.
Esta es una característica extremadamente útil pero debe implementarse en elclientepara el servicio al que estás accediendo