Guide
What is IPMI, and how is it used in homelabs?
IPMI (Intelligent Platform Management Interface) is a standard way to manage a server through a small computer on its motherboard, the BMC (baseboard management controller). The BMC has its own network port and runs whenever the server is plugged in, so you can turn the server on and off, see its screen from power-on, install an operating system and read its sensors, even when the operating system is down.
In a homelab, that means no more carrying a monitor and keyboard to the rack. This guide explains what IPMI does, how homelabs use it, the ipmitool commands worth knowing, and how to reach it from anywhere without putting it on the internet.
- Power, console and sensors without the OS
- ipmitool basics
- Kept off the internet
Updated · Works with IPMI, iDRAC and iLO, from Windows, Linux or a browser
IPMI, BMC, iDRAC, iLO: what the words mean
- IPMI is the standard, around since 1998. Version 2.0 added encryption for using it over the network, which is what
ipmitool -I lanplusspeaks. - The BMC is the chip that does the work: a tiny computer with its own network connection, its own firmware and its own users and passwords, separate from the server's operating system.
- The vendors' names: Dell calls its BMC iDRAC, HPE calls it iLO, and Supermicro boards just say IPMI or BMC. Each adds a web page and a remote console (virtual console, iKVM) on top of IPMI. There are walkthroughs for accessing Dell iDRAC and its virtual console, the HPE iLO remote console and Supermicro IPMI and the iKVM console.
- Redfish is the newer standard many BMCs also speak: an HTTPS API that is slowly taking over from IPMI for scripts and monitoring.
What homelabs use IPMI for
- Power: turn a server on, shut it down cleanly or reset it from your desk, so it can stay off when you don't need it.
- The screen from power-on: BIOS settings, the boot menu, or a kernel that won't boot, through the BMC's remote console.
- Installing an operating system without a USB stick: the console mounts an ISO file from your PC as a virtual drive.
- Health: temperatures, fan speeds, power supplies and the hardware event log, where memory and disk errors show up first.
- A text console over the network (serial over LAN) when there's no picture, or no operating system network at all.
- Scripts: power a backup server on at night, or check every server's sensors from one machine.
How to use IPMI, step by step
Step 1: Plug in the BMC's network port
Most server boards have a separate port for the BMC, often above the USB ports or marked iDRAC, iLO or IPMI. Plug it into your management network if you have one, so the BMC stays apart from everything else. Some boards can share one of the server's own ports instead.
Step 2: Give it an address
Set a fixed address (or DHCP with a reserved one) in the BIOS setup's IPMI, BMC, iDRAC or iLO section. From Linux on the server itself,
ipmitoolcan read and set it. Channel 1 is the usual one, but some boards use another:sudo ipmitool lan print 1 sudo ipmitool lan set 1 ipsrc static sudo ipmitool lan set 1 ipaddr 10.0.0.40 sudo ipmitool lan set 1 netmask 255.255.255.0 sudo ipmitool lan set 1 defgw ipaddr 10.0.0.1
Step 3: Sign in and change the password
Open
https://and the BMC's address in a browser on the same network. The certificate is self-signed, so the browser warns you once. Default users vary by maker (ADMIN on Supermicro, root on Dell, Administrator on HPE), and recent hardware prints a unique password on a label. If yours still uses an old well-known default, change it first.Step 4: Update the BMC firmware
Get it from the server maker's support site. Newer firmware usually brings an HTML5 console that runs in the browser (older ones download a Java file instead) and fixes security holes.
Step 5: Install ipmitool on a machine next to it
Any Linux box on the same network will do, even a Raspberry Pi:
sudo apt install ipmitoolon Debian, Ubuntu and Raspberry Pi OS, orsudo dnf install ipmitoolon Fedora.
ipmitool basics: connect to a remote server's BMC
ipmitool talks to a BMC in two ways. On the server itself, as root, it uses the board's local interface, with no network and no password (if it can't find one, load the driver with sudo modprobe ipmi_devintf). From another machine, -I lanplus connects over the network to the BMC's address:
# On the server itself sudo ipmitool mc info # the BMC's firmware and IPMI version sudo ipmitool sensor # every sensor with its reading and limits # From another machine on the same network ipmitool -I lanplus -H 10.0.0.40 -U admin -a chassis power status ipmitool -I lanplus -H 10.0.0.40 -U admin -a chassis power on ipmitool -I lanplus -H 10.0.0.40 -U admin -a chassis power soft # ask the OS to shut down ipmitool -I lanplus -H 10.0.0.40 -U admin -a chassis bootdev bios # next boot goes to BIOS setup ipmitool -I lanplus -H 10.0.0.40 -U admin -a sdr type Temperature ipmitool -I lanplus -H 10.0.0.40 -U admin -a sel list # the hardware event log ipmitool -I lanplus -H 10.0.0.40 -U admin -a sol activate # serial console, leave with ~.
-H is the BMC's address (not the server's own), -U the BMC user, and -a asks for the password instead of leaving it in your shell history. For scripts, -E reads it from the IPMI_PASSWORD variable. Serial over LAN only shows something when the server's BIOS and operating system send their console to the serial port.
On Dell and HPE servers, IPMI over the network is often switched off out of the box; turn it on in the iDRAC's or iLO's network settings if you want ipmitool to reach it. Makers also have their own tools on top, such as Dell's racadm and Supermicro's IPMIView desktop utility.
Keep IPMI off the internet
Never forward a port to a BMC
- Put BMCs on their own network or VLAN, not on the same network as guests or the internet.
- Use a long, unique password for every BMC user, and disable the users you don't need.
- If you only use the web page and console, turn IPMI over LAN off in the BMC's settings.
- Turn off the BMC services you don't use, and keep its firmware up to date.
Reach IPMI from anywhere through a PC you already have
The safe way in from outside is through something that's already on that network. With RemoteAccessApp, one of your own PCs there does the connecting, and everything travels through our relay. That PC only makes outgoing connections, so no port is opened on your router.
- The BMC's web page in a tab, through one of your PCs. In the RemoteAccessApp app for Windows, save the BMC as a web panel, then edit it and, under Advanced, Network, choose Through a PC and the PC on that network. If unattended access isn't on at that PC, someone there is asked to allow it. See connect through one of your PCs.
- A remote session with a PC on that network. Open it from the app or any browser and use the BMC in that PC's own browser. This also works when a remote console needs a port of its own that the web panel route doesn't carry.
- ipmitool from any browser. Save the Linux box with
ipmitoolas an SSH host, open it on the RemoteAccessApp website and choose Through my PC. Power and sensors from a phone, free.
In the RemoteAccessApp app for Linux, web panels open in your own browser, which can't go through a PC yet; SSH and remote sessions work the same. The same idea keeps other admin pages private too: see managing a pfSense or OPNsense firewall safely.
IPMI on a desktop PC?
Ordinary desktop and laptop boards don't have a BMC, so there's no IPMI to turn on. Server boards and some workstation boards do; look for a separate network port and an IPMI or BMC section in the BIOS setup. A separate KVM-over-IP box can add a remote console to any PC, but it's one more device to keep updated and off the internet.
For a desktop, remote access software does most of the same jobs while Windows or Linux is running: see how to access your PC remotely for free. To turn it on from afar, wake a sleeping PC remotely with Wake-on-LAN. For a whole rack, see managing Proxmox, VMware and KVM hosts from one app.
Questions, answered
More homelab and virtualization guides
- Manage Proxmox, VMware & KVM hostsSSH, web interfaces, RDP and VNC consoles, ISO and backup copies, scripts and dashboards for your hypervisor hosts and VMs, in one app.Read the guide
- Homelab managementOne app for a homelab: SSH, SFTP and FTP, RDP and VNC, web panels, a live host dashboard, and remote desktop for Windows and Linux PCs.Learn more
- Proxmox VE remote managementSSH to Proxmox VE nodes with keys, reach the web UI without opening ports, run qm and pct across nodes, and move ISOs and backups.Read the guide
- Manage VMware ESXi remotelyThe ESXi Host Client and vSphere Client in a tab, SSH with esxcli and vim-cmd, datastore files, and RDP or SSH into guests.Read the guide
- KVM and QEMU VM consoleslibvirt VNC consoles through an SSH tunnel, virsh for everything else, and honest limits for SPICE displays.Read the guide
- Manage Hyper-V remotelyRemote desktop and PowerShell on Hyper-V hosts, RDP into Windows guests, and the same command on many hosts.Read the guide
- TrueNAS, Unraid and NAS accessYour NAS web UI as a saved panel, SSH and SFTP with keys, a live dashboard and server-to-server copies.Read the guide
- pfSense, OPNsense and router adminKeep firewall and router admin pages off the internet and still reach them: web panels, a PC on the LAN, SSH and serial consoles.Read the guide
- Docker and Podman hostsContainers, logs, restarts and shells over SSH, host dashboards, and scripts across every Docker or Podman host.Read the guide
- Raspberry Pi and small serversSSH into a Pi, see its desktop over VNC inside SSH, copy files and reach it from outside your home, from one app or a browser.Read the guide
- Dell iDRAC remote accessReach the iDRAC's web page and virtual console on your network or from anywhere, configure it with racadm, and fix a connection that won't open.Read the guide
- HPE iLO remote consoleiLO and its HTML5 console in a tab, power and the virtual serial port over SSH, and a private way in from anywhere.Read the guide
- Supermicro IPMI and iKVMThe BMC page and HTML5 iKVM in a tab, ipmitool from a server on the same network, and IPMI kept off the internet.Read the guide
- One app for your whole homelabWhy juggling terminals, browser tabs and viewers for a homelab gets old, and what one app for every host and VM looks like.Read the post
- Homelab maintenance checklistUpdates, backups, disk checks and consoles: a maintenance-night checklist for a homelab, worked through from one window.Read the post
- Stop exposing your hypervisor web UIWhy management web UIs belong on your own network, and how to reach them from anywhere without opening a port.Read the post
- 5 workflows for many serversGroups and tags, saved workspaces, one script on many hosts, direct server-to-server copies and live dashboards.Read the post
Related
- Remote console accessRemote console access to PCs, servers and devices: PowerShell, bash, SSH and serial consoles from anywhere, in the app or a browser.Read the guide
- RDP & VNC managerSave RDP, VNC, SSH, SFTP, FTP hosts and web admin panels in one list, and open them in tabs.Learn more
- SSH & SFTP clientTerminal tabs, an SFTP and FTP file manager, key sign-in and one command to every server.Learn more
- Turn on a PC remotelySet up Wake-on-LAN on Windows 11, 10 or Linux, then wake the PC from the app or a browser, through another PC or your router.Read the guide
