Publishing a service and the three ways a client fails
A service can be running, its port open in the firewall, and a client still get nowhere. This guide installs a real service on one host and connects to it from another, producing all three failures on purpose - nothing listening, the firewall refusing, and a service bound to loopback - and reads the server-side line that distinguishes them. It ends with a reload that reported success and changed nothing.
Services and Users Guide 22 of 28 Intermediate
- PlatformsUbuntu 26.04 LTS + AlmaLinux 10.2
- Mandatory access controlAppArmor on Ubuntu, SELinux enforcing on Alma
- Firewallufw / nftables 1.1.6
- TimeAbout 28 min
| Server Name | IP Address | OS | Roles | CPU | RAM | HDD |
|---|---|---|---|---|---|---|
| LPLUS-A01 | 192.168.0.73 | Ubuntu 26.04 LTS | Debian-family host - apt, ufw, netplan, AppArmor | 2 Core | 4 GB | 50 GB |
| LPLUS-B01 | 192.168.0.74 | AlmaLinux 10.2 | RPM-family host - dnf, firewalld, NetworkManager, SELinux | 2 Core | 4 GB | 50 GB |
This guide includes
Use this when something works on the server and not from anywhere else. This matters because the client reports the same failure for causes that need completely different fixes, and because the bind address is the one people check last after an hour on the firewall.
- reading a bind address in
ssand knowing what 0.0.0.0, 127.0.0.1 and * each mean - proving a service works locally and fails remotely, in the same minute
- telling a firewall refusal from a loopback binding without touching the firewall
- opening a port for the running firewall and knowing it is not yet permanent
- recognising a
reloadthat reports success and does not apply the change - using
curlexit codes as the first triage step from the client side
Before you start
- the-firewall-on-both-families-and-what-survives-a-reload
- network-configuration-on-both-families
-
Three services, three meanings of listening
-
The client, before there is anything to reach
-
A real service on a port nobody opened
-
The service is perfect and the client still fails
-
Opening the port, and one honest client proof
-
A reload that reports success and changes nothing
-
The failure the firewall cannot explain
-
Putting both machines back