After upgrading from Ubuntu 22 to Ubuntu 24, many users have found that PPPoE tools—such as pppoeconf, pppoe-discovery, or pppd-pppoe—no longer work properly.
This is mainly due to changes in pppd behavior and kernel module handling introduced in newer Ubuntu releases.
🔍 Why PPPoE Fails on Ubuntu 24
1. pppoeconf Has Been Removed
Starting from Ubuntu 22, the classic pppoeconf package is no longer maintained and has been removed from the repository.
After upgrading, you might find that the command no longer exists or is marked as obsolete.
2. Kernel Module Changes
PPPoE relies on several kernel modules:ppp_generic, pppoe, and pppox.
After upgrading to Ubuntu 24.04 (with a newer kernel), these modules may not be automatically loaded, causing PPPoE to fail to connect.
3. NetworkManager and systemd Integration
In newer Ubuntu versions, PPP functionalities are integrated into NetworkManager.
If you previously used manual methods like /etc/ppp/peers/ with pon/poff, you’ll need to adjust your configuration.
🧪 Diagnostic Steps
1️⃣ Check if PPP Packages Are Installed
dpkg -l | grep ppp
If not installed:
sudo apt install ppp pppoe
2️⃣ Verify Kernel Modules
lsmod | grep ppp
If you don’t see pppoe or pppox, load them manually:
sudo modprobe pppoe
sudo modprobe pppox
3️⃣ Test PPPoE Discovery
pppoe-discovery -I eth0
If there is no response, the module may not be loaded properly, or your ISP line is unreachable.
4️⃣ Check System Logs
journalctl -xe | grep ppp
Look for any related pppd or pppoe error messages.
🧰 Solutions
🅰️ Method 1: Continue Using Classic pppd
Create the configuration file /etc/ppp/peers/dsl-provider:
noipdefault
defaultroute
replacedefaultroute
hide-password
lcp-echo-interval 20
lcp-echo-failure 3
noauth
persist
mtu 1492
plugin rp-pppoe.so
eth0
user "your-ISP-username"
Store your password in /etc/ppp/pap-secrets or /etc/ppp/chap-secrets:
"your-ISP-username" * "your-password"
Start the connection:
sudo pon dsl-provider
Disconnect:
sudo poff dsl-provider
🅱️ Method 2: Use NetworkManager (Recommended for Desktop)
If NetworkManager is active, you can easily set up a DSL connection through its interface:
nm-connection-editor
Then:
- Add a new DSL (PPPoE) connection
- Enter your account and password
- Select the correct network interface (e.g.,
eth0)
This method integrates smoothly with systemd and desktop networking tools.
🅾️ Method 3: Automate via systemd Service
You can create a custom systemd unit to bring up the PPPoE connection automatically:
[Unit]
Description=PPPoE connection
After=network.target
[Service]
ExecStart=/usr/bin/pon dsl-provider
ExecStop=/usr/bin/poff dsl-provider
RemainAfterExit=yes
[Install]
WantedBy=multi-user.target
Save this file as /etc/systemd/system/pppoe.service, then enable it:
sudo systemctl enable pppoe.service
sudo systemctl start pppoe.service
⚙️ Common Root Cause
After upgrading to Ubuntu 24, the pppoe and pppox kernel modules are often not loaded automatically.
Always verify with:
lsmod | grep ppp
If missing, load them manually before troubleshooting further.
✅ Summary
| Issue | Cause | Solution |
|---|---|---|
pppoeconf command missing | Deprecated package | Install ppp and pppoe manually |
| No PPPoE response | Kernel module not loaded | Run modprobe pppoe pppox |
Manual pon/poff not working | Systemd & NM changes | Use NetworkManager or systemd service |
Log shows pppd error | Permission or plugin issue | Check /etc/ppp/peers and rp-pppoe.so path |
💡 Tip: For server environments that do not use NetworkManager,
thepppd+systemdapproach is still the most reliable and controllable way to maintain stable PPPoE connections.