¿Es posible utilizar tablas de IP para reenviar puertos detrás de un enrutador?
Mi configuración es la siguiente: tengo una Raspberry Pi que ejecuta un pequeño sitio web en el puerto 80 y una computadora más robusta que ejecuta un servidor Minecraft en el puerto 25565. He configurado el enrutador para recibir solicitudes de cada puerto y reenviarlas a la ubicación correcta. pero también tengo un 'sitio web' de Minecraft (con el mapa y demás) ejecutándose en el servidor de Minecraft, también en el puerto 80. También tengo myurl.com.
Mi pregunta es: usando tablas de IP, ¿puedo reenviar mc.myurl.com:80 al sitio web del servidor de Minecraft, mientras myurl.com:80 continúa yendo a Raspberry Pi? ¿Cómo configuro esto?
¿Qué pasa si elimino la Raspberry Pi de la ecuación? ¿Tiene mc.myurl.com reenviado a :81 en el mismo servidor? (¿Tendría que abrir :81 en el enrutador?)
Respuesta1
Lo que estás buscando es unproxy inverso. Apache puede jugar esorolepero te aconsejo que uses mejornginxque es más ligero.
Redirigirá el puerto 80
a su Raspberry Pi y configurará Nginx para que represente las solicitudes de mc.myurl.com
la siguiente manera:
server {
listen 80;
server_name mc.myurl.com;
location / {
proxy_pass http://my.mine.craft;
}
}
Ver Nginxdocumentaciónpara más detalles.
Respuesta2
Podrías usar el módulo de proxy inverso de Apache2. Esto redirigirá las solicitudes entrantes mediante el nombre de host del servidor mc a otro servidor http, que se encuentra dentro de su LAN. Sería una idea más sencilla que confiar en los cortafuegos.
Primero, instale el módulo:
apt-get install libapache2-mod-proxy-html
Cree 2 hosts virtuales. Uno responderá a las solicitudes de su sitio y el otro enviará el tráfico a su sitio mc.
<VirtualHost YOUR.INTERNET.IP.ADDR:80>
ServerAdmin [email protected]
ProxyPreserveHost On
ProxyPass / http://LAN.IP.YOUR.MC.SITE:PORT/
ProxyPassReverse / http://LAN.IP.YOUR.MC.SITE:PORT/
ServerName mc.myurl.com
</VirtualHost>
<VirtualHost YOUR.INTERNET.IP.ADDR:80>
ServerAdmin [email protected]
DocumentRoot /var/www/sites/my_site
ServerName myurl.com
ErrorLog logs/intranet-error_log
CustomLog logs/intranet-access_log common
</VirtualHost>
Más documentos aquí:
- apachemod_proxydocumentación
- Hosts virtualesconfiguraciones comunes