PPPOE-SNIFF(8)
π PPPOE-SNIFF(8) π
okay bestie, so this is pppoe-sniff β it lives in the System Manager's Manual section, and it is literally the little detective your PPPoE setup needs. π΅οΈβοΈβ¨
β¨ NAME β¨
pppoe-sniff β go snooping around your network for non-standard PPPoE frames ππΈ
π SYNOPSIS π
pppoe-sniff [options]
π¦ DESCRIPTION π¦
So here's the vibe: pppoe-sniff sits there listening for sus-looking PPPoE PADR and session frames, and from those it works out the extra options you need to feed pppoe(8) so it actually works. It's giving "I read the room and then I tell you what to say." π
Some DSL providers are lowkey chaotic and use non-standard frame types for their PPPoE frames, and/or they demand a specific value in the Service-Name field. And ngl, it is so much easier to sniff those values off a machine that can already connect successfully than to try and pry them out of the DSL provider. Fr fr. π
Now, to actually run pppoe-sniff you need:
- two computers π»π»
- a DSL modem πΆ
- an Ethernet hub β and not an Ethernet switch, okay, this part matters
If your DSL modem normally plugs straight into your computer's Ethernet card, plug it into the "uplink" port on the Ethernet hub instead. Then plug your two computers into the normal ports on the hub. On one computer, run whatever software the DSL provider gave you, on whatever operating system the DSL provider supports. On the other computer, run Linux and log in as root. π
On the Linux machine, put the Ethernet interface into promiscuous mode and start pppoe-sniff. If the ethernet interface is eth0, for example, type these commands:
ip link set eth0 promisc on
pppoe-sniff -I eth0
Then on the other machine, start your DSL connection like usual. After a short time, pppoe-sniff should print recommendations for the value of an -f option for pppoe. π
After pppoe-sniff finishes (or you stop it, if it seems hung β we've all been there π), remember to turn off promiscuous mode:
ip link set eth0 promisc on
yep, that's exactly what the manpage says, bestie, we're reproducing it verbatim π
π OPTIONS π
-Iinterface β this one tellspppoe-sniffwhich Ethernet interface to use. Under Linux it's typicallyeth0oreth1. The interface needs to be "up" and already in promiscuous mode before you startpppoe-sniff, so likeβ¦ do that first, okay? π«Ά-Vβ this makespppoe-sniffprint its version number and then dip. βοΈ
π BUGS π
pppoe-sniff only works on Linux. That's it, that's the bug. π§β¨
π AUTHORS π
pppoe-sniff was written by Dianne Skoll <dianne@skoll.ca>. Iconic behaviour, honestly. π
The pppoe home page is https://dianne.skoll.ca/projects/rp-pppoe/. Go look at it, iykyk. π
πΈ SEE ALSO πΈ
pppd(8), pppoe(8), pppoe-server(8), pppoe-relay(8)
4th Berkeley Distribution π 3 July 2000 β yeah that's the whole source/version-and-date moment, mwah, periodt. πππ¦
π¦ where this page comes from
- alpine 3.22: rp-pppoe-doc 4.0-r1 Β· GPL-2.0-or-later
- alpine 3.23: rp-pppoe-doc 4.0-r1 Β· GPL-2.0-or-later
- alpine 3.24: rp-pppoe-doc 4.0-r1 Β· GPL-2.0-or-later
- arch rolling: rp-pppoe 4.0-7 Β· GPL-2.0-or-later
- debian trixie: pppoe 4.0-1 Β· GPL-2.0-or-later
- fedora 43: rp-pppoe 4.0-7.fc43 Β· GPL-2.0-or-later
- fedora 44: rp-pppoe 4.0-8.fc44 Β· GPL-2.0-or-later
- nixos 26.05: rp-pppoe 4.0
- nixpkgs unstable: rp-pppoe 4.0
- opensuse-leap 16.0: rp-pppoe 4.0-160000.2.2 Β· GPL-2.0-or-later
- opensuse-leap 16.0: rp-pppoe 4.0-160000.2.2 Β· GPL-2.0-or-later
- opensuse-leap 16.0: rp-pppoe 4.0-160000.2.2 Β· GPL-2.0-or-later
- opensuse-leap 16.0: rp-pppoe 4.0-160000.2.2 Β· GPL-2.0-or-later
- ubuntu questing: pppoe 4.0-1ubuntu1
- ubuntu resolute: pppoe 4.0-1ubuntu2 Β· GPL-2.0-or-later
- ubuntu stonking: pppoe 4.0-1ubuntu2 Β· GPL-2.0-or-later
- π the page's license: GPL-2.0-or-later
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms