Preguntas sobre la variable de entorno DISPLAY
Recientemente, experimenté cómo ejecutar una interfaz de usuario gráfica en WSL2. La parte clave es instalar un servidor X11 en el host y definir una variable de entorno DISPLAY en la terminal de WSL2 como export DISPLAY=172.19.224.1:0.0
. Aquí, la IP 172.19.224.1
es la IP de mi host en WSL2. Y este enfoque también funciona en la terminal de un servidor Linux de una máquina virtual.
Mis preguntas son las siguientes:
¿Por qué el :0.0
? Siento que después de los dos puntos debería haber un número entero para un puerto, como 172.19.224.1:3306
para MySQL. ¿Qué significa :0.0
?
Si uso la variable de entorno DISPLAY en la terminal del servidor remoto y el servidor remoto ve mi servidor X11 a través de un enrutador NAT y se utiliza reenvío de puertos, ¿a qué puerto debo reenviar? (Estoy intentando usar la interfaz gráfica de usuario en un servidor remoto, pero descubro que hay un enrutador NAT en medio y se necesita reenvío de puertos).
No sé el nombre del tema ni las palabras clave para buscar. ¿Alguien podría darme algunas pistas?
davy.ai
Respuesta
¿Por qué el
:0.0
?En X11, la pantalla se identifica por un nombre y un número, separados por dos puntos. El primer número antes de los dos puntos se refiere al número de pantalla, y el segundo número después de los dos puntos se refiere al número de la pantalla.
:0.0
se refiere a la Pantalla 0, Pantalla 0. La Pantalla 0 es la pantalla X11 predeterminada en un sistema Unix o Linux, y Pantalla 0 se refiere a la pantalla física que se utilizará en una configuración de múltiples monitores.Entonces, cuando estableces
export DISPLAY=172.19.224.1:0.0
, estás indicando a tu shell de WSL2 que use el servidor X11 que se está ejecutando en tu host con IP172.19.224.1
, en la Pantalla 0 y Pantalla 0.Si uso la variable de entorno DISPLAY en la terminal del servidor remoto y el servidor remoto ve mi servidor X11 a través de un enrutador NAT y se utiliza el reenvío de puertos. ¿A qué puerto debo hacer reenvío?
Cuando reenvías el tráfico X11 a través de un enrutador NAT, necesitas reenviar el puerto 6000 + el número de pantalla que estás usando. Por ejemplo, si has establecido
export DISPLAY=172.19.224.1:1.0
, necesitarás reenviar el puerto 6001.Por lo tanto, si estás utilizando la Pantalla 0 como en el ejemplo anterior, necesitarás reenviar el puerto 6000.
En resumen, el puerto que debes reenviar sería 6000 + el número de pantalla que estás usando.
Pistas para buscar
Podrías intentar usar palabras clave como “reenvío X11 a través de enrutador NAT” o “reenvío de puertos para X11 a través de SSH”. Estos son escenarios comunes para usar X11 a través de una conexión de red.