Usé WebSockify en mi aplicación web para conectarme al servidor VNC usando noVNC para habilitar el acceso remoto a los servidores Linux a través del navegador. Fue una implementación fácil ya que no hubo firewall involucrado y se abrió el puerto WebSocket. Sin embargo, recientemente tuve que migrar a otro servidor que estaba detrás de un firewall y no quería abrir el puerto, ya que podría poner en riesgo todo el sistema. En este artículo, implementaremos WebSockify a través de Apache Reverse Proxy.
¿Qué es noVNC?
noVNC es un cliente HTML para VNC. Usando noVNC, puede conectarse a un servidor VNC desde un navegador.
¿Por qué WebSockify?WebSockify traduce el tráfico de WebSockets al tráfico de socket normal. Websockify acepta el protocolo de enlace de WebSockets, lo analiza y luego comienza a reenviar el tráfico entre el cliente y el objetivo en ambas direcciones.
Foto cortesía:datawookie.dev
Suposición:Se supone que tanto su WebSockify como el servidor web Apache se ejecutan en el mismo host.
Configuración:
- Apache v2.4
- WebSockify para WebSockets en el puerto 6080
- sin VNC instalado
- servidor remoto que ejecuta VNC
- CentOS Linux 7.9
Configurar Apache Reverse Proxy para Websockets
/etc/httpd/conf.modules.d/
carpeta.
LoadModule proxy_module modules/mod_proxy.so LoadModule proxy_http_module modules/mod_proxy_http.so LoadModule proxy_wstunnel_module modules/mod_proxy_wstunnel.so LoadModule rewrite_module modules/mod_rewrite.so
WebSockify se ejecuta en el puerto 6080 y se puede acceder a él a través de la URL:https://localhost:6080
<VirtualHost *:80> ServerName techglimpse.com ProxyRequests on RequestHeader set X-Forwarded-Proto "http" ProxyPass /console https://localhost:6080/ ProxyPassReverse /console https://localhost:6080/ RewriteEngine on RewriteCond %{HTTP:UPGRADE} ^WebSocket$ [NC] RewriteCond %{HTTP:CONNECTION} ^Upgrade$ [NC] RewriteRule .* ws://localhost:6080%{REQUEST_URI} [P] </VirtualHost>
Paso 3: Reinicie el servidor web Apache
# systemctl restart httpd