miniserv.pl listening on :10000

WebminPowerful Web-Based Administration for Linux and Unix Systems

Webmin transforms server administration into a more accessible and organized experience. From user account management and service configuration to system monitoring and network administration, it offers a practical web-based platform for maintaining and managing Linux and Unix servers with efficiency and precision.

🔒 TLShttps://your-server-ip:10000
Webmin System Information dashboard showing CPU, memory and disk gauges, server details and running services Animated system preview
116standard modules
:10000default HTTPS port
BSD-3open-source licence
Perl 5.10+only hard runtime
Webmin module index grouped into System, Servers, Networking and Tools categories
/usr/share/webminmodule index

What is Webmin?

Webmin is a web-based system administration tool for Linux and other Unix-like servers. It runs its own small HTTPS server, miniserv.pl, and presents each part of the operating system as a module: user accounts, software packages, scheduled jobs, disks, network interfaces, the firewall and the services you host.

Every module edits the same files you would touch over SSH, such as /etc/passwd, crontabs or an Apache virtual host, so nothing is hidden in a private database. You can switch between the panel and the command line freely, and a change made in one shows up in the other.

The project has been developed in the open since 1997, is written in Perl and is licensed under BSD 3-Clause. Its companions are Usermin for end users and Virtualmin for multi-site hosting.

/etc/webmin/miniserv.confexcerpt
port
10000
ssl
1 (HTTPS on by default)
language
Perl
licence
BSD-3-Clause
modules
116 standard + third-party
stable
2.670 (Sept 2026)

Features that replace a dozen terminals

Each blade below maps to a real Webmin module. Together they cover the daily work of keeping a server patched, reachable and correctly configured.

Webmin System and Server Status module listing HTTP, MySQL, SMTP, disk and DNS monitors with their up or down state
tools › system and server statuslive checks
useradmin

Users, Groups and Passwords

Create Unix accounts, set home directories and shells, manage group membership and expire passwords from one form instead of chaining useradd, usermod and chage.

package-updates

Packages and Updates

Search, install and remove software through apt, dnf or yum, then schedule automatic security updates and get a summary of what changed.

cron

Scheduled Cron Jobs

Read every crontab on the machine in a single table, edit schedules with dropdowns, and run a job on demand to check its output before you trust it.

init

Bootup and Services

Start, stop, restart and enable systemd units, and see which services come up at boot without memorising unit file names.

fdisk · lvm · raid

Disks, LVM and RAID

Partition local disks, mount filesystems, grow LVM volumes, watch software RAID arrays and set disk quotas per user or group.

firewall · net

Firewall and Networking

Edit iptables, firewalld or nftables rules, set interfaces, routes and DNS resolvers, and apply changes with an option to roll them back.

servers

Web, DNS, Mail and Database Servers

Modules for Apache, BIND, Postfix, Dovecot, MySQL/MariaDB, PostgreSQL, Samba and Squid turn long config files into structured screens.

filemin

File Manager and Transfers

Browse, edit, upload, compress and set permissions on files in the browser, or pull a remote file straight onto the server by URL.

xterm

Terminal in the Browser

A full interactive shell inside the panel for the jobs no form covers, using the same login session and permissions.

status

System and Server Status

Monitor HTTP, DNS, SMTP, disk space and load, and send email or run a command when a check changes state.

cluster-*

Cluster Management

Register several Webmin hosts, then push users, packages, cron jobs or commands to all of them from one master server.

acl

Access Control and 2FA

Create Webmin users who only see the modules they need, restrict logins by IP, and add time-based one-time passwords.

How Webmin works

A click in the browser follows a short, predictable path to the files and services on the server. Knowing that path makes Webmin easy to secure and easy to debug.

01browser

You open the panel

Any modern browser on Linux, macOS or Windows connects to the server address.

02tls

HTTPS on :10000

The session is encrypted with the server's certificate before a password is sent.

03miniserv

miniserv.pl checks you

It verifies the login via PAM or Webmin's user list, the source IP and your module rights.

04module

A module CGI runs

A Perl script for that module reads the current config and builds the form you see.

05system

Files and services change

On save it writes the real config file, reloads the service and records the action log.

no agent required

Nothing else to run

Webmin does not need Apache, Nginx or a database of its own. Its built-in server starts with the system through a single webmin service.

plain-text configs

Your files stay yours

Because modules edit standard config files, uninstalling Webmin leaves every setting in place and readable by hand.

audit trail

Every change is logged

With action logging enabled you can see who changed which file, when, and the before-and-after diff.

Installation in five steps

The repository method is the one the Webmin project recommends: you get signed packages and updates through your normal package manager. The source ZIP route suits review, testing and contribution.

  1. Prepare the server

    Use a supported distribution, log in as a sudo user, update packages and make sure curl is installed.

  2. Add the Webmin repository

    Download webmin-setup-repo.sh and run it. It adds the signing key and the package source for apt or dnf.

  3. Install the package

    Install webmin with recommended dependencies so HTTPS and PAM login work out of the box.

  4. Open port 10000

    Allow TCP 10000 in ufw or firewalld, ideally only from your office or VPN range.

  5. Sign in and secure it

    Browse to https://server-ip:10000, log in with root or a sudo user, then add a real certificate and 2FA.

# 1. tools and repository
sudo apt update && sudo apt install -y curl
curl -o webmin-setup-repo.sh https://raw.githubusercontent.com/webmin/webmin/master/webmin-setup-repo.sh
sudo sh webmin-setup-repo.sh

# 2. install Webmin
sudo apt-get install webmin --install-recommends

# 3. allow the panel port (limit the source range if you can)
sudo ufw allow 10000/tcp

# 4. confirm the service
systemctl status webmin --no-pager
Then open https://server-ip:10000 and sign in with your sudo user.

Where Webmin earns its place

From a single VPS to a rack of mixed machines, Webmin fits the teams that need control without building their own tooling.

VPS and web hosting

Manage Apache or Nginx sites, PHP versions, databases and SSL renewals on a cloud server without paying for a commercial panel.

Home labs and NAS boxes

Look after Samba shares, RAID health, backups and updates on a home server from any laptop on the network.

Network map of a Webmin cluster master connected to web, database, mail, DNS, storage and test servers
cluster topology6 hosts

Small business IT

Give a part-time administrator a safe, logged way to reset passwords, add mailboxes and restart services.

Teaching Linux

Students see how a form maps to a config file, which makes the command line easier to learn afterwards.

Download Webmin

Get the complete Webmin source tree straight from the official GitHub repository: every core module, the miniserv.pl web server and the setup.sh installer in one archive.

source: github.com/webmin/webmin
branch: master # live development
format: ZIP archive
install: ./setup.sh /usr/local/webmin
licence: BSD-3-Clause
Download source ZIP

Prefer packaged releases for production? Use the repository commands in the installation section and updates arrive with your normal system upgrades.

Contents of the Webmin master ZIP archive with module folders, miniserv.pl, setup.sh and the BSD licence file
PlatformsLinux · BSD · macOS
RuntimePerl 5.10+
Stable release2.670
Default port10000 / HTTPS

Compatibility and how it compares

The setup script covers the major RPM and DEB families. Other Unix-like systems use the tarball. Highlighted chips have packages installed through the official repository.

UbuntuDebianKaliRHELRocky LinuxAlmaLinuxOracle LinuxCentOS StreamFedoraopenSUSE (RPM)Devuan · Pop!_OS (DEB)FreeBSD (tar.gz)macOS (tar.gz)Solaris (pkg)
Platform matrix of Linux distributions supported by Webmin through DEB, RPM and tarball installs
Webmin compared with Cockpit, cPanel and WHM, and managing a server over SSH only
CriteriaWebminCockpitcPanel & WHMSSH only
CostFree, BSD-3-ClauseFree, LGPLPaid licence per serverFree
Default port1000090902087 (WHM)22
ScopeWhole OS plus server softwareOS, containers, storageWeb hosting accountsEverything, by hand
Server software modulesApache, BIND, Postfix, MySQL, Samba and moreLimited; mostly system levelHosting stack it installsManual config editing
DistributionsDEB, RPM and tarball for BSD and othersMajor Linux distributionsAlmaLinux, Rocky, CloudLinux, UbuntuAny
Multi-serverBuilt-in cluster modulesAdd hosts from the dashboardSeparate licence per serverScripts or config tools
Learning curveGentle; forms mirror config filesGentleGentle for hosting tasksSteep

Troubleshooting common errors

Most problems come down to the port, the certificate or the login account. Open an entry to see the fix.

webmin.service · warnings6 entries
ERR09:20:10Page times out at :10000▸

Check the service with systemctl status webmin, then confirm it listens with sudo ss -tlnp | grep 10000. If it does, the block is a firewall: allow TCP 10000 in ufw or firewalld, and in your cloud provider's security group.

ERR09:20:10Failed to bind to port 10000▸

Another process already uses the port, often a second Webmin copy or a tarball install alongside a package. Find it with sudo ss -tlnp | grep :10000, stop the duplicate or move Webmin to a free port in /etc/webmin/miniserv.conf.

WARN09:14:27Login failed for root on Ubuntu▸

Ubuntu locks the root password by default. Log in with your sudo user instead, or reset the Webmin password with sudo /usr/share/webmin/changepass.pl /etc/webmin root NEWPASS.

WARN09:14:35Your IP has been blocked▸

Several failed logins trigger a temporary block. Wait for it to expire, or restart Webmin with sudo systemctl restart webmin from SSH to clear it, then check Webmin Configuration → Authentication.

WARN09:21:44Redirect loop or "connection reset" in the browser▸

You probably typed http://. Use https:// explicitly. Behind a reverse proxy, set the referer and SSL options under Webmin Configuration so redirects use the public hostname.

WARN09:30:02Module shows "not installed on your system"▸

The module is fine; the server software it manages is missing. Install the package (for example apache2 or bind9), then use Refresh Modules so Webmin detects it.

Webmin miniserv error log showing failed logins, a blocked host and a port bind error followed by a successful restart
/var/webmin/miniserv.errortail

System requirements

Webmin is light. Plan resources for the services you host on the machine; the panel itself barely registers.

Memory 512 MB min · 1 GB+ comfortable

The Webmin process itself typically uses well under 100 MB.

Disk space ~300 MB for the package

Leave room for logs, action history and package updates.

CPU 1 core is enough

Load only rises briefly while pages render or modules refresh.

Network TCP 10000 inbound

Restrict the source range to your own address or VPN where possible.

ComponentNeeded forStatus
Perl 5.10+Running Webmin at allRequired
Net::SSLeayHTTPS on port 10000Strongly recommended
Authen::PAMLogging in with system accountsRecommended
Authen::OATHTwo-factor tokensOptional
Modern browserChrome, Firefox, Edge or SafariRequired
Webmin process resource usage showing memory, disk and CPU footprint with required Perl modules
system › running processesminiserv.pl
pre-install checkbash
# memory, disk and Perl version
free -h
df -h /
perl -v | head -2

# is anything already using the port?
sudo ss -tlnp | grep :10000 || echo "port 10000 is free"

Safety and hardening

Webmin has root-level reach, so treat it like SSH. These four controls close the gaps attackers look for first.

Webmin login screen with two-factor token, a valid certificate, allowed IP ranges and failed-login blocking

Limit who can reach :10000 ALLOW

Under Webmin Configuration → IP Access Control, allow only your office, home or VPN addresses, and mirror that rule in the firewall.

Use a trusted certificate TLS

Replace the self-signed certificate with Let's Encrypt from SSL Encryption so browsers can verify the server and phishing pages stand out.

Turn on 2FA and action logs AUDIT

Enable two-factor authentication for every admin and log changes with file diffs, so mistakes and misuse can be traced.

Keep Webmin current PATCH

Install from the repository so security fixes arrive with system updates, and remove modules you never use.

Pros and cons

An honest review, written the way administrators read change sets.

webmin-review.diff+7 additions−5 trade-offs
@@ pros @@
1+Free and open source under BSD-3, with no per-server fees.
2+Very wide coverage of OS settings and server software.
3+Edits real config files so CLI and panel never disagree.
4+Light footprint and no extra web server or database.
5+Granular admin roles with per-module permissions.
6+Cluster tools for managing several hosts together.
7+Long track record with active releases since 1997.
@@ cons @@
1−High-value target if port 10000 is left open to the world.
2−Dense menus can overwhelm first-time users.
3−No native Windows host support in current releases.
4−Not a hosting panel on its own; Virtualmin fills that role.
5−Self-signed certificate warning until you replace it.

Frequently asked questions

Short answers to the questions that come up during the first week with Webmin.

WEBMIN(1)FAQ
NAMEwebmin — web-based system administration SYNOPSIShttps://host:10000/ FILES/etc/webmin/miniserv.conf
/var/webmin/miniserv.error SEE ALSOusermin(1), virtualmin(1)
§01What is the default Webmin login?

There is no shared default password. A package install accepts the server's root account or any user allowed to run commands through sudo. On Ubuntu, where root has no password by default, sign in with the sudo user you created during setup. A tarball install asks you to choose a login name and password while setup.sh runs.

§02Which port does Webmin use?

Webmin listens on TCP port 10000 over HTTPS, so the address is https://your-server-ip:10000. You can change it under Webmin Configuration → Ports and Addresses or by editing port= in /etc/webmin/miniserv.conf and restarting the service.

§03Why does my browser warn about the certificate?

Webmin creates a self-signed certificate at install time so traffic is encrypted from the first minute. Browsers cannot verify it, which triggers the warning. Once the server has a DNS name, request a Let's Encrypt certificate from Webmin Configuration → SSL Encryption and the warning goes away.

§04Is Webmin free for commercial use?

Yes. Webmin is released under the BSD 3-Clause licence, which allows use on personal, business and client servers without fees. Keep the copyright notice if you redistribute the code.

§05Can I run Webmin on Windows?

Current releases target Unix-like systems. On a Windows PC the practical routes are Ubuntu under WSL2 with systemd enabled, or a Linux virtual machine in Hyper-V or VirtualBox. Most people simply manage their Linux servers from a browser running on Windows.

§06Is there an official Docker image?

The project publishes packages and tarballs, not an official container image. Webmin can run inside a container, but it then manages that container rather than the host, so a small VM is usually the better test bed.

§07How do I update Webmin?

If you installed from the repository, Webmin updates with the rest of the system through apt upgrade or dnf upgrade, and the dashboard also flags new versions. Tarball installs can be upgraded from Webmin Configuration → Upgrade Webmin.

§08What is the difference between Webmin, Usermin and Virtualmin?

Webmin manages the whole server for administrators. Usermin, on port 20000, gives ordinary users webmail, password changes and their own files. Virtualmin is a hosting control panel built as a Webmin module for managing many websites, domains and mailboxes.