First, prove whether packets reach the VPS
BASH
# Is anything listening on 443, and on which addresses?
sudo ss -tlnp 'sport = :443'
# Read-only view of the current firewall rules (use whichever your system has)
sudo nft list ruleset
sudo iptables -S
# Watch for the affected client's packets while they reload the page
# Replace 198.51.100.25 with the client's real public IP
sudo tcpdump -ni any 'tcp port 443 and host 198.51.100.25'Run mtr from the side that is failing
BASH
# From the affected region toward the VPS (TCP to port 443; usually needs root)
sudo mtr -rwzn -T -P 443 -c 100 203.0.113.10
# From the VPS back toward the affected client or their ISP
sudo mtr -rwzn -c 100 198.51.100.25-rprints a report after the run finishes.-wkeeps hostnames from being cut off.-zadds the AS number (the identifier of the network that owns each hop's address).-nskips reverse DNS so the run is faster.-c 100sends 100 probes per hop.-Tand-P 443switch the probes to TCP on port 443.
man mtr if a flag is rejected.
Reading the report without chasing ghosts
TEXT
Illustrative output format (documentation IPs and private AS numbers)
HOST: probe-affected-region Loss% Snt Last Avg Best Wrst StDev
1. AS??? 192.168.1.1 0.0% 100 1.0 1.2 0.8 3.0 0.3
2. AS64500 198.51.100.1 0.0% 100 8.0 8.5 7.9 12.0 0.6
3. AS64500 198.51.100.9 0.0% 100 10.0 10.4 9.8 15.0 0.7
4. AS64501 192.0.2.17 40.0% 100 30.0 31.0 29.5 40.0 1.5
5. AS64501 192.0.2.33 0.0% 100 31.0 31.5 30.0 38.0 1.1
6. AS64502 192.0.2.65 30.0% 100 90.0 92.0 88.0 140.0 8.0
7. AS64502 192.0.2.70 30.0% 100 91.0 93.0 89.0 150.0 9.0
8. AS64510 203.0.113.1 30.0% 100 95.0 96.0 92.0 155.0 9.5
9. AS64510 203.0.113.10 30.0% 100 96.0 97.0 93.0 160.0 9.8??? mean the hop did not answer. They do not mean the hop is down.
The last hop is what counts. If the destination shows 0% loss, the path is fine as far as these probes can tell, whatever the middle looks like. Even 30% loss at the destination is enough to cause timeouts, because TCP stalls and retransmits on every dropped handshake or data segment.
Trace back from the VPS too
Deciding where the fault lives
- The mtr reports for both directions, with timestamps and source IPs.
- The tcpdump findings.
- Which regions or ISPs fail and which work.
