Fight the Good Fight with SmokePing

My Internet connection is unstable. I do realize ISPs generally claim some downtime is expected, and service is not guaranteed, and countless other excuses are common for intermittent service. I currently pay $120/month for business-class service, however, and I expect to get reliable Internet access on a regular basis. The most frustrating part is that the folks at my ISP don't believe I'm having intermittent problems, because every time they look, it seems fine.

Enter SmokePing.

With past ISP problems, I've been able to run a continuous ping to an outside IP address and show the tech-support representative that I have packet loss. Unfortunately, a running ping command doesn't give a history of when the packets are lost. With SmokePing, not only is there a record of when packets are lost, but there's also a graphical representation of how many packets were lost, and from several IP addresses to boot.

Notice packet loss to the Google DNS server, but none to my gateway. So, the problem isn't with my house connection.

For my purposes, I keep track of pings to my local router, to the gateway provided by my ISP, and then a Google IP address and a foreign IP address. With that information, I usually not only can tell the ISP when the packets drop, but also whether it's an issue between me and its gateway or routing somewhere past my subnet. (For what it's worth, the problem is almost always between my router and my ISP's gateway, because there's some problem with its line coming to my office.)

If you need to prove packet loss, or if you just like to keep track of potential problems between hosts, SmokePing is an awesome uptime tracker that comes with colorful graphs and lots of useful information. For its incredible usefulness and straightforward approach to monitoring, SmokePing gets this month's Editors' Choice Award. Check it out at


Shawn is Associate Editor here at Linux Journal, and has been around Linux since the beginning. He has a passion for open source, and he loves to teach. He also drinks too much coffee, which often shows in his writing.


Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.


Jon Terry's picture

I’ll just say this is a really good article. I’ve enjoyed reading it and pondering the many points you make.


Skema Rangkaian's picture

There are a lot of sites and articles out there on this particular point, but you have captured another side of the subject. This is good content thank you for adding it here....

My goal is to get the car to

sollen's picture

My goal is to get the car to the point where its completely 60W LED Work Lights For Trailers caught up on its maintenance, so i am also going to be replacing the fuel filter and fuel hoses, as well as the transmission fluid and filter and the differential fluid.

Measurement.. Yeah!

gustyban's picture

SmokePing is a deluxe latency measurement tool. It can measure, store and display latency, latency distribution and packet loss on how to jailbreak iphone 5. SmokePing uses RRDtool to maintain a longterm data-store and to draw pretty graphs, giving up to the minute information on the state of each network connection.

Smokeping broken - Ubuntu 13.10

Anonymous's picture

Unfortunate that those who try Smokeping using Ubuntu 13.10 will find it broken.

Linux could rule microsift. I

Kevin Winfrey's picture

Linux could rule microsift. I love linux OS. I can do anything and everything. But Microsoft has nothing but visual graphics. Its is true that In most cases, we will want some form of DC current.


Tobi Oetiker's picture

... for the award :-)

SmokePing aussi pour les pilotes

lordtn's picture

SmokePing est très utile dans les rapports graphiques, et surtout avec MTR pour déboguer en temps réel, ça peut intéresser les étudiants qui font une formation de pilote de ligne, comme safe flight academy qui donne une formation pilote tunisie
pour devenir pilote de ligne en Tunisie?

Only issue with ping

Chris 'rattis' J's picture

There are only a few issues I see with using ping to monitor and troubleshoot connections. Which I've learned along the way since I started in Network Operations back in 96.

1) ICMP is not a perfect protocol. Most networking devices are designed to drop ICMP traffic if they are busy.

2) to many companies block / drop the ICMP traffic at the firewall now because of the abuse in the past. Ping of death, smurf attacks, ping floods, etc.

3) Large network providers are blocking / messing with ping. I don't know who your provider is, or if they treat business class different. Back when I used the largest ISP in the state with my home line ping was blocked at my cable modem. Even with other providers, I could get traffic to a site, but my traceroute (also based on ICMP) would go to the middle of their network and die.

ICMP may ore may not still work, so your millage will vary. Back in the 90s ping to monitor the connections to our clients, T1 and DS3 lines to ISPs, and we'd have customers who would show down in the ping tool but be up and passing traffic

Only issue with ping

gabimuc's picture

Well, use udp or tcp then.

Haven't had a look at smokeping for a while but I'm pretty sure you can configure it to use something like l4ping.

There are also config examples for using echoping with smokeping.

All in all, there's mostly another solution if the standard procedure doesn't work ;)

SmokePing is really useful in

George Ashburn's picture

SmokePing is really useful in providing long-term graphs, especially when bundled with MTR to assist as a real-time network debugging tool. However, I'm afraid there seems to be no open source alternative that gets close to PingPlotter Pro. This software is able to pinpoint ICMP latency spikes in every hop along the path to multiple destinations simultaneously and keep track on changes on your ISP's routing tables, second-by-second and with dynamic graphs. Does anyone know of a FOSS alternative that might be able to compete? This is the only reason I must still keep a Windows VM running all the time, which is pretty annoying.