Introduction

Thin client computing centralizes desktop environments on a powerful server while users interact through lightweight terminals. This model slashes endpoint hardware costs, simplifies patch management, and keeps data centralized rather than scattered across hundreds of laptops. We compare three open-source thin client server platforms: LTSP (Linux Terminal Server Project), ThinLinc (by Cendio, free for up to 10 users), and NoMachine NX (remote desktop with free edition).

Why Self-Host Your Thin Client Infrastructure?

Thin clients flip the traditional desktop model on its head: instead of managing individual workstations, you manage one server image that serves dozens of users simultaneously. This centralization means a single OS update patches all users at once, a single antivirus scan covers everyone, and hardware failures at the endpoint are a non-event — just swap the thin client and the user’s session resumes exactly where they left off.

Cost savings compound quickly. A Raspberry Pi 4 running as a thin client costs under $100, versus $800+ for a business desktop. Multiply that across 50 seats and you’ve saved $35,000 in hardware alone. And since thin clients have no moving parts and minimal power draw, electricity and maintenance costs drop too.

For complementary server management, see our self-hosted server management web UI guide. If you need remote access infrastructure, check our SSH bastion and jump server guide.

Tool Comparison

FeatureLTSPThinLincNoMachine NX
TypeFull terminal server stackCommercial VDI (free ≤10 users)Remote desktop protocol + server
GitHub Stars372+Closed source (free binary)Closed core (some open components)
ArchitectureX11 forwarding + local appsAgent-based VDINX protocol (X11 compression)
Client SupportAny PXE-capable deviceWindows, macOS, Linux, web clientWindows, macOS, Linux, iOS, Android
Audio ForwardingPulseAudioFull (PulseAudio)Full (ALSA/Pulse)
USB RedirectionLimitedFull USB passthroughUSB forwarding
Printer RedirectionCUPS integrationNative printer mappingCUPS forwarding
Session PersistenceNo (stateless by default)Yes (suspend/resume)Yes (disconnect/reconnect)
GPU AccelerationNoVirtualGL supportLimited
Max Free UsersUnlimited10 concurrentUnlimited (Free Edition)
Web UI AdminVia Cockpit/WebminBuilt-in Web AdminBuilt-in Web Admin
LicenseGPL v2Proprietary (free tier)Proprietary (free tier)

LTSP: The Classic Linux Terminal Server

LTSP (Linux Terminal Server Project) has been the backbone of open-source thin client computing for over two decades. It transforms a standard Linux server into a terminal server that PXE-boots diskless thin clients over the network.

How LTSP works:

  1. Client boots via PXE and loads a minimal Linux kernel/initrd from the LTSP server
  2. The initrd mounts the root filesystem via NBD (Network Block Device) or NFS
  3. User logs in via the display manager (LightDM/GDM)
  4. Desktop session runs on the LTSP server; display rendered locally on the thin client via X11

Setting Up LTSP on Ubuntu Server

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
# Install LTSP server packages
sudo apt update
sudo apt install --install-recommends ltsp dnsmasq nfs-kernel-server

# Generate the thin client image
sudo ltsp image /

# Configure dnsmasq for PXE + DHCP + TFTP
sudo tee /etc/dnsmasq.d/ltsp.conf << 'EOF'
# DHCP
dhcp-range=192.168.67.100,192.168.67.250,12h
dhcp-option=option:router,192.168.67.1
# PXE boot
dhcp-boot=ltsp/ltsp.img
# TFTP
enable-tftp
tftp-root=/srv/tftp
EOF

# Start services
sudo systemctl enable --now dnsmasq nfs-kernel-server

# Add users who will access thin clients
sudo adduser alice
sudo adduser bob

ThinLinc: Professional VDI with a Generous Free Tier

ThinLinc, developed by Swedish company Cendio, delivers a polished VDI experience with features that rival enterprise solutions — and its free tier supports up to 10 concurrent users without time limits.

Standout features:

  • Seamless session migration: Disconnect from one client, reconnect from another, pick up exactly where you left off
  • Web Access: HTML5 client means users can connect from any browser without installing software
  • USB passthrough: Redirect USB devices (scanners, smart card readers, signing pads) to the remote session
  • VirtualGL: Hardware-accelerated OpenGL for CAD, GIS, and 3D applications

Docker Compose for ThinLinc Server

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
version: "3.8"
services:
  thinlinc-server:
    image: ghcr.io/cendio/thinlinc-server:latest
    container_name: thinlinc-server
    hostname: thinlinc
    privileged: true
    ports:
      - "22:22"
      - "300:300"
      - "301:301"
      - "10100:10100"
    volumes:
      - thinlinc-data:/var/opt/thinlinc
      - ./users:/etc/thinlinc/users
    environment:
      - TL_LICENSE_SERVER=localhost
      - TL_MAX_USERS=10
    restart: unless-stopped

volumes:
  thinlinc-data:

Note: ThinLinc’s Docker image requires privileged mode for creating user sessions. For production, run ThinLinc directly on the host OS for better performance and security isolation.

NoMachine NX: High-Performance Remote Desktop

NoMachine NX uses a custom X11 protocol compression that delivers remarkably smooth remote desktop experiences even over high-latency connections. While NoMachine Enterprise is paid, the Free Edition is full-featured for personal and small business use.

Why NoMachine stands out:

  • Adaptive compression: Dynamically adjusts quality based on available bandwidth
  • Multi-platform: Native clients for Windows, macOS, Linux, iOS, and Android
  • Audio/video streaming: Plays remote video with synchronized audio
  • File transfer: Drag-and-drop files between local and remote

Installing NoMachine Free Edition

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
# Download and install NoMachine server (Linux)
wget https://download.nomachine.com/download/8.14/Linux/nomachine_8.14.2_1_amd64.deb
sudo dpkg -i nomachine_8.14.2_1_amd64.deb

# The server starts automatically on port 4000
# Access via NoMachine client or web browser at https://server-ip:4443

# For headless servers, install a virtual desktop:
sudo apt install xfce4 xfce4-goodies
# Configure NoMachine to create virtual desktops on demand
sudo tee -a /usr/NX/etc/server.cfg << 'EOF'
CreateDisplay 1
DisplayOwner nx
DisplayGeometry 1920x1080
EOF
sudo /etc/NX/nxserver --restart

Choosing the Right Thin Client Platform

The choice between LTSP, ThinLinc, and NoMachine depends on your use case:

  • LTSP is ideal for schools, libraries, and labs where users need identical Linux desktops, and you want fully open-source infrastructure with no user limits. It requires Linux clients and moderate Linux administration skills.

  • ThinLinc suits professional environments (engineering, finance, healthcare) where users need session persistence, USB device passthrough, and web-based access. The free 10-user tier is perfect for small businesses testing VDI.

  • NoMachine NX excels for remote workers who need high-quality desktop streaming with low latency. Its adaptive compression handles challenging network conditions well, making it the best choice for users connecting over the internet.

Performance Tuning for Thin Client Servers

A well-tuned thin client server can handle 50% more concurrent users than an out-of-the-box installation. Here are the key optimization areas:

CPU pinning and isolation: Use taskset or cgroups to dedicate specific CPU cores to the display manager and X11 server. Reserve cores 0-3 for system processes and kernel, and allocate cores 4-31 to user sessions. This prevents a single compute-heavy user from starving the display pipeline and causing lag for everyone else.

Network tuning: Thin clients are extremely sensitive to latency. Enable BBR congestion control (sysctl net.core.default_qdisc=fq; sysctl net.ipv4.tcp_congestion_control=bbr) for better throughput on long-fat pipes. Set net.core.rmem_max and net.core.wmem_max to 16MB to accommodate X11 protocol bursts (large clipboard transfers, window resize floods). Use jumbo frames (MTU 9000) on your thin client VLAN if your switches support it.

Storage I/O: Place user home directories on fast NVMe storage. A single user launching Firefox can generate hundreds of small I/O operations — multiply by 50 users and a spinning disk will choke. Use noatime mount option to eliminate unnecessary metadata writes, and consider tmpfs for /tmp and browser caches to reduce I/O pressure.

Memory overcommit: Calculate RAM requirements as: 512MB baseline + (per-user application memory). For a typical office workload (Firefox + LibreOffice), budget 1.5GB per user. For development workloads (IDE + compiler + browser), budget 4GB per user. Enable zram compression (modprobe zram; echo 16G > /sys/block/zram0/disksize) to effectively double your usable RAM without touching swap.

FAQ

What’s the difference between thin clients and remote desktop (RDP/VNC)?

Thin clients PXE-boot from a central server and run the entire desktop session server-side — the thin client is just a display terminal. Remote desktop (RDP/VNC) connects to an already-running desktop session on a full workstation. Thin clients are stateless and disposable; remote desktops are stateful and tied to a specific machine.

How many thin clients can one server support?

A modern server with 32 CPU cores and 128GB RAM can support 40-60 lightweight Linux desktop users (web browsing, office suite, email). For heavier workloads (CAD, video editing, IDEs), plan for 10-20 users. LTSP scales horizontally — you can add more application servers behind a load balancer.

Can LTSP serve Windows thin clients?

LTSP serves Linux desktop environments to thin clients. The thin client hardware boots a Linux kernel, so the client device itself needs PXE-capable network hardware. If users need Windows applications, you can run them on the LTSP server via Wine, or use a hybrid approach with a Windows RDS server accessible from the Linux desktop.

Is ThinLinc really free for 10 users?

Yes. Cendio offers a free license for up to 10 concurrent users with no time limit and all features included — USB redirection, web access, VirtualGL, and session suspension. The only restriction is the concurrent user cap. For 11+ users, you need a paid license.

Does NoMachine work over the internet without port forwarding?

NoMachine supports UPnP for automatic port mapping on compatible routers, but for secure internet access without port forwarding, you should use a VPN (WireGuard or Tailscale/Headscale) to connect to the NoMachine server. NoMachine Enterprise includes a “Cloud Server” relay option, but that requires a paid license.


💰 想测试你的市场判断力?我用 Polymarket 做预测市场交易——这是全球最大的预测市场平台,从大选结果到技术监管时间线,什么都可以押注。和赌博不同,这是真正的信息市场:你懂的信息越多,胜率越高。我靠预测技术相关事件的走向已经赚了不少。用我的邀请链接注册:Polymarket.com