Introduction: Operate Your RaspberryPi Headless

About: Jack passed away May 20, 2018 after a long battle with cancer. His Instructables site will be kept active and questions will be answered by our son-in-law, Terry Pilling. Most of Jack's instructables are tuto…

Operating a computer headless means that you access the computer over a local network, so you don't need a keyboard, mouse, or monitor. The RaspberryPi is the server, and the computer you are using to access it is the client. You will notice that in the picture the only wires connected to the RaspberryPi are the power and an ethernet cable. This tutorial will show how to setup your RaspberryPi so it can be accessed from another computer on your local area network. Next it shows how to setup your client computer to access the RaspberryPi, and it provides a GUI based utility to make everything easy.

Step 1: Setup the RaspberryPi

For now you want your RaspberryPi hooked up to a monitor, keyboard, and mouse. It is much easier to get everything working this way.

Boot your RaspberryPi and start raspi-config with the command:

sudo raspi-config

Open the Advanced Options menu and enable ssh.

Install tightvncserver with the command: sudo apt-get install tightvncserver

Run tightvncserver with the command: tightvncserver

You will be asked for a password for tightvncserver.

Now run the command: ifconfig

Your MAC address is called "HWaddr" in ifconfig. It will be six hex numbers seperated by colons.

Your IP address is called "inet addr" in ifconfig. It will be four decimal numbers seperated by periods.

Write down both of these numbers, you will need them later.

When you are finished reboot.


Most routers have a setting to reserve an IP address for a specific machine. Setup a reserved IP address for your RPi so the script described in the next step will always find it. This will link a MAC address to a permanent IP address.

Step 2: Setup the Client Computer

The installation procedure for setting up the client computer to communicate with the Raspberry is for a Linux desktop and has been tested with Ubuntu. It should work the same on any derivative of Debian. If you are running Windows use Putty.

On your client computer:

Open a terminal and install tightvncviewer and zenity with the command:

sudo apt-get install vncviewer zenity

Download the file and copy it into your home directory.

Edit the file you downloaded to replace [IP ADDRESS] with your IP address.

Make it executable with the command: sudo chmod +x


The zenity program gives you a GUI interface to access the RaspberryPi.

With some versions of zenity you can double click on the desired option and it will work. On others you must click on the option then click on OK.

The script provides three options:

ssh - You have a terminal attached to the PRi you can run any text based program in the terminal.

The +X on the command line allows you to run graphic programs on the RPi and display the results on the desktop screen.

For a quick demonstration of how this works type "xclock" into the terminal.


sftp - This option opens a file manager window so you can easily move files to and from your RPi. In the script it specifies the nautilus file manager. If you are using another file manager you will need to change this line in the script.


VNC - This option gives you the RaspberryPi desktop. You may want to change the geometry settings to better fit your screen.


Open a terminal and try running the script with the command


to make sure you can communicate with the RPi before moving on to the next step.


Step 3: Go Headless

Now you can disconnect the keyboard, mouse, and monitor.

Open a terminal on your client computer and run the script with the command: ./

You should see a terminal window and the window to select what you want to do. It will look something like the first picture.

The second shows the full RaspberryPi desktop running in a VNC window.

Raspberry Pi Contest

Participated in the
Raspberry Pi Contest