in tethering

Complete Guide: How to use Bluetooth Tethering in Linux (in 2025)

A computer does not live on wifi alone

A step by step solution based on real experience with my Xiaomi Redmi Note 13 Pro + Debian GNU/Linux

The Original Problem

We needed internet to reinstall a WiFi driver, but:

  • USB tethering was disabled on the phone
  • No Ethernet access
  • WiFi driver was not working

Solution: Bluetooth Tethering

Step 1: Prepare the Linux system

bash

# Instalar herramientas Bluetooth
sudo apt install bluetooth bluez-tools net-tools

# Iniciar y habilitar el servicio
sudo systemctl start bluetooth
sudo systemctl enable bluetooth

Step 2: Configure the Redmi phone

Key discoveries:

  1. Enable mobile data – Bluetooth tethering requires active data
  2. Go to: Ajustes > Conexión y uso compartido > Anclaje a red y zona Wi-Fi
  3. Enable «Bluetooth tethering» – BEFORE pairing
  4. Changing the device name to something identifiable helps

Step 3: Pairing from Linux

bash

# Iniciar bluetoothctl
bluetoothctl

# Dentro de bluetoothctl:
power on
agent on
scan on
# Esperar a ver el dispositivo...

devices
# Buscar tu teléfono en la lista

pair [MAC_ADDRESS]
trust [MAC_ADDRESS]
connect [MAC_ADDRESS]

Step 4: The crucial trick – bt-network

Common problem: Bluetooth connects but does not create a network interface.

bash

# Mientras está conectado en bluetoothctl, en otra terminal:
sudo bt-network -c [MAC_ADDRESS] nap

# Verificar interfaz
ip link show
# Deberías ver bnep0 o similar

# Configurar DHCP
sudo dhclient bnep0

Step 5: Verify the connection

bash

ip addr show bnep0
ping -c 3 8.8.8.8

Common Problems and Solutions

1. «Network service is connected, and then disconnected»

  • Cause: Bluetooth tethering not enabled on the phone
  • Solution: Enable it before connecting

2. The bnep0 interface is not created

  • Cause: Missing PAN service
  • Solution: Use bt-network or pand

3. The device cannot be identified

  • Trick: Turn the phone’s Bluetooth off/on during scan on
  • Identify by MAC: See it in the phone settings

4. Very slow connection

  • Normal: Bluetooth 2.1-3.0 ~ 3 Mbps
  • Solution: Patience for small updates

Useful Commands for Diagnosis

bash

# Ver estado Bluetooth
sudo systemctl status bluetooth
rfkill list all

# Ver dispositivos emparejados
bluetoothctl devices

# Ver información de conexión
bluetoothctl info [MAC]

# Forzar reconexión
sudo systemctl restart bluetooth

Optimised Workflow

  1. Phone: Enable data + Bluetooth tethering
  2. Linux: bluetoothctl → pair → trust → connect
  3. Linux: bt-network -c [MAC] nap
  4. Linux: dhclient bnep0
  5. Verify: ping 8.8.8.8

Conclusion

Bluetooth tethering is a rescue tool that is like gold dust when other connection methods fail. The key is in:

  • Pre-configuring the phone correctly
  • Using bt-network instead of relying only on bluetoothctl
  • Being patient with the limited speed

This solution let us download critical packages and solve the real WiFi driver problem, showing that even slow connections can be enough for essential administrative tasks.

Tags

  • #bluetooth
  • #debian
  • #linux
  • #tethering
  • #wifi