If a server cannot be reached by IP address, DNS is not the first suspect. Identify where packets stop, then check both the forward and return paths.
1. Verify local addressing
ip -br address
ip route
ip route get SERVER_IP
Confirm the source address and interface selected by the host. On Windows, use ipconfig /all and route print.
2. Check neighbor resolution on the local subnet
ip neigh show
ping -c 3 GATEWAY_IP
An unresolved neighbor entry can indicate a Layer 2/VLAN problem, wrong subnet assumptions, or an offline peer. ICMP may be filtered, so use switch MAC tables and interface counters where available.
3. Trace the path and policy
Use traceroute SERVER_IP or tracepath SERVER_IP where supported. Review host and network firewalls for the required protocol and port. A failed ping does not prove a TCP service is unavailable.
4. Confirm the service and return route
On the server, run ss -lntup and check that the service listens on the expected address. Verify its gateway and route back to the client; asymmetric routing can cause replies to take a filtered path.
5. Capture evidence
A short capture can reveal whether requests arrive and replies leave:
sudo tcpdump -ni any host CLIENT_IP
Reference: Linux ip-route manual · tcpdump manual.
Summary: Confirm the source route, local neighbor reachability, firewall policy, server listener, and return path before changing DNS or rebooting equipment.
