ScreenshotNeo

BlogGuides

Is Ubuntu Server Headless? Understanding Headless Operation

Ubuntu Server is usually run without a monitor or desktop GUI. Learn what headless means, how to install and access it, and when a GUI still helps.

By the ScreenshotNeo team1 October 20267 min read

Yes, Ubuntu Server is commonly used headless: administrators operate it from a text console or connect remotely, usually with SSH, instead of using a desktop GUI. “Headless” describes how the machine is accessed and whether a display is attached. It does not mean Ubuntu Server cannot run graphical software.

Canonical explains that Ubuntu Server and Ubuntu Desktop select different subsets of packages. Servers rarely include a GUI because shell-based administration uses fewer resources. A server can still run GUI applications, and a graphical management program can run on another computer and connect to it remotely.

What “headless” means on Ubuntu Server

A headless computer normally runs without a directly attached monitor, keyboard or mouse. You interact with it through one of these paths:

  • Local text console: connect a keyboard and display temporarily or use a serial or out-of-band console.
  • SSH: open a secure remote shell from another computer.
  • Remote management software: use a GUI on a workstation while services run on the server.
  • Automation: deploy and manage the machine with scripts, configuration management or cloud-init.

Ubuntu’s Server documentation describes a minimalist system intended for server applications. The absence of a desktop package is a normal installation choice, not a technical limitation.

Does Ubuntu Server have a GUI?

A default Ubuntu Server installation normally provides a command-line environment rather than a full desktop. You can install a desktop environment later, but doing so adds packages, services, memory use and maintenance work. The terminal remains the efficient administration method for most servers.

Canonical’s Ubuntu Server tutorial puts it plainly: Servers rarely even have a GUI installed for precisely this reason. That statement describes the usual configuration, not an absolute rule.

How to install Ubuntu Server for headless use

  1. Download the Ubuntu Server installer image from Canonical and write it to bootable media.
  2. Boot the target machine and complete the interactive installer. Installation and later headless operation are separate questions: you may use a monitor during setup and remove it afterward.
  3. Configure storage, networking, a user account and SSH when the installer offers the SSH setup screen. Canonical’s basic installation guide documents this flow.
  4. Record the server’s IP address or hostname before disconnecting the local display.
  5. From another computer, connect with SSH and finish configuration remotely.

The cited installation tutorial recommends 2 GB of RAM and 5 GB of disk for its minimal tutorial system. Treat those numbers as requirements for that tutorial, not universal requirements for every Ubuntu release or workload.

Connect without a monitor using SSH

Install and enable the SSH server

If SSH was not selected during installation, use a local console, recovery console or provider console once:

sudo apt update
sudo apt install openssh-server
sudo systemctl enable --now ssh
sudo systemctl status ssh

Ubuntu’s OpenSSH documentation explains that sshd listens for client connections, authenticates users and creates the remote-control session.

Find the server address

hostname -I
ip address

Connect from Linux or macOS

ssh your_user@SERVER_IP

Connect from Windows

Recent Windows versions include the OpenSSH client. Run the same command in PowerShell:

ssh your_user@SERVER_IP

Use a key instead of a password

ssh-keygen -t ed25519
ssh-copy-id your_user@SERVER_IP
ssh your_user@SERVER_IP

After confirming key login works, you can harden SSH by disabling password authentication and root login. Change one setting at a time, validate the configuration, and keep an existing session open while testing:

sudo sshd -t
sudo systemctl reload ssh

When SSH is your only administrative route, a bad configuration can lock you out or prevent the service from starting. Ubuntu explicitly warns about this risk. Keep an alternate console or recovery method available where feasible.

Local console versus remote administration

Method Best for Dependency Main risk
Local text console Installation, recovery and network failures Physical or out-of-band access Requires being near the machine or having a console provider
SSH Routine administration and automation Running SSH service, network path and valid credentials Misconfiguration can cause remote lockout
GUI on a workstation Visual VM or service management GUI client plus remote protocol More software and authentication to maintain

Can a headless server run graphical software?

Yes. Headless refers to the absence of a directly attached display, not to whether graphical libraries exist. You can run a browser, rendering job or other GUI-dependent program with a virtual display such as Xvfb, or use a remote desktop service when there is a practical reason.

For virtualization, Canonical’s virt-manager documentation recommends installing the graphical application on a workstation or test machine rather than on a production server. The workstation’s virt-manager can connect to a remote libvirt service over SSH. The server remains headless while the administrator gets a graphical control panel.

Common headless server tasks

Update packages

sudo apt update
sudo apt full-upgrade

Check services and logs

systemctl --failed
systemctl status SERVICE_NAME
journalctl -u SERVICE_NAME --since today

Check listening ports

sudo ss -tulpn

Copy files securely

scp ./local-file your_user@SERVER_IP:/tmp/
rsync -av ./project/ your_user@SERVER_IP:~/project/

Run a long task after disconnecting

tmux new -s maintenance
# run your command
# press Ctrl-b then d to detach
tmux attach -t maintenance

When should you install a desktop?

Install a desktop only when a workload or operator genuinely needs it, such as a local graphical application, a specialized configuration tool or an interactive test environment. For routine web servers, databases, containers and automation, a shell is usually simpler and consumes fewer resources.

If you need visual administration, keep the GUI on a separate workstation when possible. This preserves the smaller server footprint while still allowing tools such as virt-manager to connect remotely.

Troubleshooting headless Ubuntu Server

Symptom Likely cause Fix
Connection refused SSH is not installed, running or reachable on the expected port Use a console to run sudo systemctl status ssh; install openssh-server; check firewall and address.
Connection timed out Wrong IP, routing problem, firewall or security group Verify hostname -I, test reachability, and allow the configured SSH port through every network firewall.
Authentication fails Wrong username, key permissions or server-side authentication settings Confirm the account, use verbose output with ssh -v, and check ~/.ssh/authorized_keys permissions.
SSH broke after editing configuration Syntax or policy error in sshd_config Use an existing session or console, run sudo sshd -t, correct the file and reload SSH. Keep an alternate access path.
Server appears frozen Resource exhaustion, crashed service or network failure Use the provider or local console, inspect journalctl, memory and disk usage, then check failed services.
GUI application will not start over SSH No display server or display forwarding configured Use a headless mode or virtual display such as Xvfb, or run the GUI on a workstation and connect remotely.
Remote GUI tool cannot connect to libvirt Remote libvirt transport or SSH authorization is incomplete Verify SSH independently first, then follow the virt-manager remote connection configuration for the server.

Performance, reliability and cost considerations

  • Performance: omitting a desktop reduces background services and resource use. The actual gain depends on installed packages and workload.
  • Reliability: fewer running components can simplify updates and troubleshooting, while remote-only access makes console recovery important.
  • Network dependence: SSH requires a working network path. Plan an alternate console for outages, firewall mistakes and kernel or boot problems.
  • Security: use key authentication, least-privilege accounts, timely updates and carefully reviewed firewall rules. Validate SSH configuration before reloading it.
  • Cost: headless operation can avoid a permanently attached monitor and keyboard, but hosting, power, backups and out-of-band access still have their own costs.

Or skip the browser setup

If your headless server task is generating screenshots of documentation, dashboards or deployed pages, ScreenshotNeo provides a single HTTP request instead of installing and maintaining a browser stack. It accepts a URL and returns PNG, JPEG, WebP or PDF. Before capture it accepts cookie or consent banners and removes more than 60 known consent platforms, newsletter popups and chat widgets; each step can be turned off. Bot checks, CAPTCHAs, blank pages, timeouts, failed loads and cache hits are not billed, and response headers identify the page verdict and billing result.

See the ScreenshotNeo API documentation for all options, including full-page capture, CSS element selection, device presets, dark mode, custom headers and cookies, JavaScript, waits, blocking rules, PDF output, caching, signed links, asynchronous jobs, bulk capture and usage reporting.

curl -G "https://api.screenshotneo.com/v1/shot" -d access_key=YOUR_API_KEY --data-urlencode url=https://stripe.com -o shot.webp
import requests
r = requests.get("https://api.screenshotneo.com/v1/shot", params={"access_key": "YOUR_API_KEY", "url": "https://stripe.com"}, timeout=90)
open("shot.webp", "wb").write(r.content)
const q = new URLSearchParams({ access_key: 'YOUR_API_KEY', url: 'https://stripe.com' });
const res = await fetch(`https://api.screenshotneo.com/v1/shot?${q}`);

An MCP server also lets Claude, Cursor and other MCP clients call take_screenshot, get_page_info and capture_pdf. The free plan includes 1,000 screenshots per month with no card; paid plans start at $5 for 3,000 shots. Create a free ScreenshotNeo account.

FAQ

Is Ubuntu Server always headless?

No. It is commonly installed without a GUI, but you can attach a display or install graphical packages.

Can I install Ubuntu Server without SSH?

Yes. You can administer it from a local or provider console, then install and configure OpenSSH later.

Can I SSH into Ubuntu Server immediately after installation?

Only if an SSH server was installed, networking is working, the service is running and firewall rules permit access.

Do headless servers need a monitor for boot?

No. A monitor may help during installation or recovery, but normal operation can continue without one.

Can I manage a headless VM graphically?

Yes. Run virt-manager on a workstation and connect to the remote server over SSH, as described in Canonical’s virtualization documentation.