Jetson Remote
Jetson Remote Lab — Guía de Configuración Completa
Escritorio Linux virtual accesible desde cualquier navegador · Streaming de cámara en tiempo real · Servicios de inicio automático 24/7 · Sin necesidad de monitor HDMI
📐 Arquitectura del Sistema
Jetson Linux
│
├── TigerVNC (:1)
│ └── Escritorio virtual XFCE
│
├── noVNC (6080)
│ └── Acceso por navegador (WebSocket)
│
├── FFmpeg / GStreamer
│ └── Captura de cámara USB (/dev/video0)
│
├── MediaMTX (8554 / 8888)
│ └── Streaming RTSP / HLS / WebRTC
│
└── Cloudflare Tunnel (opcional)
└── Acceso remoto seguro por internet
1. Instalación Base
1.1 Actualización del Sistema
sudo apt update && sudo apt upgrade -y
2. Instalación de TigerVNC
2.1 Instalar Paquetes
sudo apt install tigervnc-standalone-server tigervnc-common -y
3. Entorno de Escritorio XFCE
3.1 Instalar XFCE
sudo apt install xfce4 xfce4-goodies -y
3.2 Configurar Sesión VNC
vncserver :1 -geometry 1280x720 -depth 24 -SecurityTypes None
Puerto por defecto:
5901
3.3 Configurar Inicio de XFCE
nano ~/.vnc/xstartup
Contenido:
#!/bin/sh
unset SESSION_MANAGER
unset DBUS_SESSION_BUS_ADDRESS
startxfce4 &
Asignar permisos:
chmod +x ~/.vnc/xstartup
4. Instalación de noVNC
4.1 Verificar Instalación
ls /usr/share/novnc/utils/
Salida esperada:
launch.sh
websockify
4.2 Iniciar noVNC Manualmente
/usr/share/novnc/utils/launch.sh --vnc localhost:5901 --listen 6080
5. Acceso desde el Navegador
http://IP_JETSON:6080/vnc.html?autoconnect=true&resize=remote
Funcionalidades:
- ✅ Conexión automática
- ✅ Redimensionado dinámico
- ✅ Pantalla completa
- ✅ Soporte de portapapeles
- ✅ Reconexión automática
6. Deshabilitar Servidor Vino (Conflicto)
pkill vino-server
Deshabilitar inicio automático:
mkdir -p ~/.config/autostart
cp /usr/share/applications/vino-server.desktop ~/.config/autostart/
nano ~/.config/autostart/vino-server.desktop
Agregar la siguiente línea:
Hidden=true
7. Verificación de Puertos
sudo ss -tulpn | grep 590
Resultado esperado:
| Puerto | Servicio |
|---|---|
| 5901 | Xtigervnc |
| 6080 | noVNC |
8. Servicios systemd (Inicio Automático)
8.1 Servicio TigerVNC
sudo nano /etc/systemd/system/tigervnc.service
[Unit]
Description=Servidor TigerVNC
After=network.target
[Service]
Type=forking
User=jetson
PAMName=login
PIDFile=/home/jetson/.vnc/%H:1.pid
ExecStart=/usr/bin/vncserver :1 -geometry 1280x720 -depth 24 -SecurityTypes None
ExecStop=/usr/bin/vncserver -kill :1
Restart=on-failure
[Install]
WantedBy=multi-user.target
8.2 Servicio noVNC
sudo nano /etc/systemd/system/novnc.service
[Unit]
Description=Cliente Web noVNC
After=network.target tigervnc.service
[Service]
Type=simple
User=jetson
ExecStart=/usr/share/novnc/utils/launch.sh --vnc localhost:5901 --listen 6080
Restart=always
RestartSec=2
[Install]
WantedBy=multi-user.target
8.3 Habilitar e Iniciar Servicios
sudo systemctl daemon-reload
sudo systemctl enable tigervnc
sudo systemctl enable novnc
sudo systemctl start tigervnc
sudo systemctl start novnc
8.4 Verificar Estado
sudo systemctl status tigervnc
sudo systemctl status novnc
9. Streaming de Cámara
9.1 Verificar Dispositivo de Cámara
ls /dev/video*
9.2 Servicio camera.service
sudo nano /etc/systemd/system/camera.service
[Unit]
Description=Servicio de Streaming de Cámara
After=network.target mediamtx.service
[Service]
Type=simple
ExecStart=/usr/bin/ffmpeg -f v4l2 -i /dev/video0 \
-vcodec libx264 -preset ultrafast -tune zerolatency \
-f rtsp rtsp://localhost:8554/cam
Restart=always
RestartSec=5
[Install]
WantedBy=multi-user.target
10. Servidor MediaMTX
| Protocolo | Puerto |
|---|---|
| RTSP | 8554 |
| HLS | 8888 |
11. Logs y Diagnóstico
Logs en Tiempo Real
journalctl -u camera -f
journalctl -u mediamtx -f
journalctl -u novnc -f
Vista General de Puertos
sudo ss -tulpn
12. Solución de Ventanas Fuera de Pantalla (VNC)
Problema común: La ventana aparece fuera del área visible.
Soluciones:
| Atajo | Acción |
|---|---|
ALT + clic | Mover ventana |
ALT + F7 | Modo mover |
ALT + F10 | Maximizar ventana |
13. Cloudflare Tunnel (Opcional)
Permite acceso público seguro sin necesidad de abrir puertos en el router.
Configurar desde el Panel de Cloudflare Zero Trust → Tunnels → Crear tunnel → apuntar a
localhost:6080
14. URL de Acceso Final
http://IP_JETSON:6080/vnc.html?autoconnect=true&resize=remote
✅ Resultado Final
| Funcionalidad | Estado |
|---|---|
| Escritorio Linux virtual completo | ✔ |
| Acceso desde el navegador | ✔ |
| Streaming de cámara en tiempo real | ✔ |
| Servicios con inicio automático | ✔ |
| Sin necesidad de monitor HDMI | ✔ |
| Arquitectura estable 24/7 | ✔ |
| Listo para laboratorio IoT remoto | ✔ |
Hecho con ❤️ por Marlon · Jetson Remote Lab

