FAQ-Fix Internet Connection Loss Error on Linux/Ubuntu 4G LTE USB Dongle (simcom A7680C)
You plug a 4G LTE USB dongle (simcom A7680C-LNNV, Quectel, or other A76XX series) into your Linux computer, the ModemManager says registered, the LTE signal is full, but you can’t access the Internet. The browser reports a DNS error, failing to load the website. Meanwhile, if you type your IP address straight (e.g. 8.8.8.8), the ping will still work.
You must use WiFi as a backup plan.
Root causes
USB 4G LTE models use the RNDIS (Remote Network Driver Interface Specification) protocol — which creates a virtual Ethernet interface (for example) and automatically grants IP over the modem’s internal DHCP.enxae0c29a39b6d
Normal Operating Procedure:
Modem 4G ──RNDIS──> Linux nhận interface `enx...`
DHCP từ modem → IP: 192.168.0.100/24
Gateway: 192.168.0.1 (chính modem)
Route mặc định qua modem
Problem: The modem grants IP and gateway via DHCP, but does not grant a DNS server to . Results:systemd-resolved
- Direct IP ping (8.8.8.8, 1.1.1.1) → OK, latency ~50-70ms
- Pinging domains (google.com) → FAIL (DNS unresolved)
- Browser → “DNS Not Found”
resolvectl status→ there is no DNS server on the modem link
The system still uses a DNS server from WiFi (or Ethernet), so when WiFi is turned off, DNS dies completely.
Rapid Diagnostic Test
1. Does the ModemManager receive the device?
mmcli -L
Expected results:
/org/freedesktop/ModemManager1/Modem/2 [SIMCOM INCORPORATED] A7680C-LNNV
2. Is the modem registered to the network?
mmcli -m 2
Important:
state: registeredaccess tech: ltesignal quality: 80%(or high)packet service state: attached
3. Check the IP and route
ip addr show
ip route show
You’ll see the RNDIS interface (name) with the default IP and route.enx...192.168.0.100/24default via 192.168.0.1
4. DNS Audit
resolvectl status <tên_interface>
For example:
resolvectl status enxae0c29a39b6d
If you see and don’t — that’s why.Current Scopes: noneCurrent DNS Server
5. Confirm the modem can ping the IP
ping -c 3 -I enxae0c29a39b6d 8.8.8.8
If the ping is OK → the problem is DNS, not the connection.
Fix Instructions
Step 1: Check the DNS port on the modem
RNDIS modems typically run DNS relays at the gateway (192.168.0.1):
timeout 2 bash -c "echo > /dev/tcp/192.168.0.1/53" 2>/dev/null && echo "DNS port OPEN" || echo "DNS port closed"
If the port is open, → can use the modem itself as a DNS server.
Step 2: Assign a temporary DNS (used immediately, lost after reboot)
sudo resolvectl dns enxae0c29a39b6d 192.168.0.1 8.8.8.8
sudo resolvectl default-route enxae0c29a39b6d yes
192.168.0.1— DNS relay from the modem (via the carrier’s 4G network)8.8.8.8— Google DNS Fallbackdefault-route ... yes— prioritize DNS over modem over WiFi
Review:
resolvectl query google.com
Expected results: google.com: 142.250... -- link: enxae0c29a39b6d
Step 3: Assign a permanent DNS (hold after reboot)
Option A: Use systemd-resolved drop-in (recommended)
Create a configuration file:
sudo mkdir -p /etc/systemd/resolved.conf.d
sudo tee /etc/systemd/resolved.conf.d/modem-rndis-dns.conf << 'EOF'
# Persistent DNS config for SIMCOM 4G LTE RNDIS modem interface
[Resolve]
DNS=192.168.0.1 8.8.8.8
EOF
Systemd-resolved reboot:
sudo systemctl restart systemd-resolved
Option B: Use systemd service (automatically set DNS when the interface is up)
sudo tee /etc/systemd/system/resolvectl-modem-dns.service << 'SERVICEEOF'
[Unit]
Description=Set DNS for 4G LTE RNDIS modem
After=network.target sys-subsystem-net-devices-enxae0c29a39b6d.device
BindsTo=sys-subsystem-net-devices-enxae0c29a39b6d.device
[Service]
Type=oneshot
ExecStart=resolvectl dns enxae0c29a39b6d 192.168.0.1 8.8.8.8
ExecStart=resolvectl default-route enxae0c29a39b6d yes
RemainAfterExit=yes
[Install]
WantedBy=multi-user.target
SERVICEEOF
Activation:
sudo systemctl daemon-reload
sudo systemctl enable resolvectl-modem-dns.service
sudo systemctl start resolvectl-modem-dns.service
Note: Replace it with the actual interface name on your device. The interface name can be checked by: enxae0c29a39b6dip link show | grep -v lo
Step 4: Overall Inspection
# DNS đã hoạt động qua modem chưa?
resolvectl query google.com
# Ping tên miền đã OK chưa?
ping -c 2 google.com
# Tắt WiFi thử:
nmcli radio wifi off
# Kiểm tra lại:
ping -c 2 google.com
# Bật lại WiFi nếu cần:
nmcli radio wifi on
System structure after fix
┌──────────────────┐
│ Internet 4G │
│ (Nhà mạng) │
└────────┬─────────┘
│ LTE
┌────────▼─────────┐
│ SIMCOM A7680C │
│ 192.168.0.1 │
│ DNS relay: 53 │
└────────┬─────────┘
│ RNDIS (USB)
┌────────▼─────────┐
│ enxae0c29a39b6d │
│ 192.168.0.100 │
│ DNS: 192.168.0.1│
│ 8.8.8.8 │
└────────┬─────────┘
│
┌────────▼─────────┐
│ systemd-resolved │
│ + DefaultRoute │
└──────────────────┘
Important Notes
- The interface name() varies from device to device because it is based on the MAC address. Always test beforehand with .
enx...ip link show - The number of modems in ModemManager() may differ if you plug in multiple USB devices at the same time.
mmcli -m 2 - If there is no DNS port (53) on 192.168.0.1: some RNDIS modems do not run DNS relays. Then you’ll need to use external DNS like and .
8.8.8.81.1.1.1 - NetworkManager vs systemd-networkd: This tutorial uses — this is the default DNS resolver on Ubuntu 22.04+. If you’re using a different distribution, check with .
systemd-resolvedsystemctl status systemd-resolved - Compatibility: This fix works with most 4G USB dongles using Qualcomm/Simcom chipsets in RNDIS mode (A76xx, EG800K, EC25, etc.).
References
- ModemManager docs: https://modemmanager.org/
- systemd-resolved:
man systemd-resolved - SIMCOM A7680C AT Command Manual
- Linux RNDIS host driver:
man rndis_host
