6.1 KiB
Samba en Termux - Documentacion
Actualizado: 2026-03-24
Resumen
Samba 4.20.8 corriendo en Termux (Android) con descubrimiento automatico en red local via mDNS. Compatible con Windows 11, Kubuntu 24 y macOS.
- Nombre en red: MOVIL
- Puerto: 4450 (445 requiere root, no disponible en Termux)
- Protocolo: SMB2/SMB3 con cifrado y signing
- Usuario: andres
- Autostart: Via
.bashrcal abrir Termux
Archivos de configuracion
| Archivo | Proposito |
|---|---|
~/.config/samba/smb.conf |
Config principal de Samba |
~/.config/samba/private/ |
Base de datos de usuarios (tdbsam) |
~/.config/samba/samba.log |
Log de actividad |
~/.config/samba/lock/ |
Lock files para browsing |
~/.config/samba/state/ |
Estado interno |
~/.config/samba/cache/ |
Cache |
~/.local/bin/mdns-publish.py |
Script que publica SSH + SMB via mDNS |
Shares disponibles
| Share | Ruta Android | Contenido |
|---|---|---|
| Archivos | /storage/emulated/0/Archivos |
Desarrollo, documentos de trabajo |
| Home | $HOME |
Home de Termux (configs, scripts) |
| Downloads | /storage/emulated/0/Download |
Descargas del navegador/apps |
| Documents | /storage/emulated/0/Documents |
Documentos Android |
| DCIM | /storage/emulated/0/DCIM |
Fotos y videos de camara |
| Movies | /storage/emulated/0/Movies |
Peliculas |
Conexion desde otros equipos
Kubuntu 24 / KDE Dolphin
El dispositivo aparece automaticamente en Red del panel lateral como "movil" gracias al servicio mDNS _smb._tcp.
Tambien se puede acceder manualmente:
smb://movil.local:4450/
smb://movil.local:4450/Archivos
Credenciales: andres / asde71.4
Kubuntu 24 / Terminal
# Descubrir el servicio
avahi-browse -rt _smb._tcp
# Listar shares
smbclient -L movil.local -p 4450 -U andres
# Acceder a un share
smbclient //movil.local/Archivos -p 4450 -U andres
# Montar como filesystem
sudo mount -t cifs //movil.local/Archivos /mnt/movil \
-o port=4450,username=andres,password=asde71.4,vers=3.0
Windows 11
Windows no soporta puertos SMB alternativos de forma nativa. Opciones:
Opcion A - Mapear con netsh (requiere admin):
netsh interface portproxy add v4tov4 listenport=445 listenaddress=127.0.0.1 connectport=4450 connectaddress=192.168.1.108
net use Z: \\127.0.0.1\Archivos /user:andres asde71.4
Opcion B - Usar la IP directa desde Explorador:
\\192.168.1.108:4450\Archivos
(Nota: no todos los builds de Win11 soportan esta sintaxis)
Descubrimiento en red (mDNS / DNS-SD)
Como funciona
El script ~/.local/bin/mdns-publish.py publica dos servicios via Zeroconf (mDNS):
| Servicio | Tipo DNS-SD | Puerto | Proposito |
|---|---|---|---|
| SSH | _ssh._tcp.local. |
8022 | Acceso remoto por SSH |
| Samba | _smb._tcp.local. |
4450 | Compartir archivos SMB |
Ambos se publican bajo el hostname movil.local.
Script: mdns-publish.py
Ubicacion: ~/.local/bin/mdns-publish.py
Dependencia: pip install zeroconf
Autostart: Via .bashrc (lineas 34-37)
El script:
- Detecta la IP local del dispositivo
- Registra los servicios SSH y SMB en la red multicast mDNS
- Se mantiene corriendo en background (daemon)
- Limpia los registros al recibir SIGINT/SIGTERM
Verificar que esta publicando
Desde Termux:
python3 -c "
from zeroconf import Zeroconf, ServiceBrowser
import time
class L:
def add_service(self, zc, t, n):
info = zc.get_service_info(t, n)
if info:
a = '.'.join(str(b) for b in info.addresses[0])
print(f'{n} -> {a}:{info.port}')
def remove_service(self, *a): pass
def update_service(self, *a): pass
zc = Zeroconf()
ServiceBrowser(zc, '_smb._tcp.local.', L())
ServiceBrowser(zc, '_ssh._tcp.local.', L())
time.sleep(3)
zc.close()
"
Desde Kubuntu:
avahi-browse -rt _smb._tcp
Resultado esperado:
movil → movil.local → 192.168.1.x:4450
Autostart en .bashrc
Samba y mDNS se inician automaticamente al abrir Termux. Extracto relevante de ~/.bashrc:
# Iniciar Samba si no esta corriendo
if ! pgrep -x smbd > /dev/null; then
smbd -D -s ~/.config/samba/smb.conf 2>/dev/null
fi
# Iniciar mDNS (movil.local) si no esta corriendo
if ! pgrep -f mdns-publish.py > /dev/null; then
nohup python ~/.local/bin/mdns-publish.py > /dev/null 2>&1 &
disown
fi
No se usa Termux:Boot (no funciona). Se inicia al abrir la primera sesion de Termux.
Aliases de gestion
| Alias | Accion |
|---|---|
smb-start |
Iniciar Samba |
smb-stop |
Detener Samba |
smb-restart |
Reiniciar Samba |
smb-status |
Ver si esta corriendo |
smb-log |
Ver ultimas 50 lineas del log |
mdns-status |
Ver si mDNS esta corriendo |
mdns-restart |
Reiniciar mDNS |
mdns-stop |
Detener mDNS |
Parametros de compatibilidad
| Parametro | Valor | Motivo |
|---|---|---|
server min protocol |
SMB2 | Win11 y Kubuntu 24 ya no usan SMB1 |
server max protocol |
SMB3 | Maximo rendimiento y cifrado |
smb encrypt |
desired | Win11 lo prefiere, negocia automaticamente |
server signing |
desired | Win11 lo exige desde 2024 |
unix charset |
UTF-8 | Acentos en nombres de archivo |
dos charset |
CP850 | Compatibilidad Windows |
use sendfile |
yes | Rendimiento en transferencias |
aio read/write size |
16384 | I/O asincrono para archivos grandes |
Troubleshooting
"Connection refused" desde otro equipo
- Verificar que smbd corre:
smb-status - Verificar puerto:
ss -tlnp | grep 4450 - Verificar firewall Android: Abrir ajustes WiFi, verificar que no hay restricciones
No aparece en Dolphin (Red)
- Verificar mDNS:
mdns-status - Desde Kubuntu:
avahi-browse -rt _smb._tcp(debe mostrar "movil") - Si no aparece, reiniciar:
mdns-restart - Acceso manual:
smb://movil.local:4450/en barra de Dolphin
"NT_STATUS_LOGON_FAILURE"
Resetear password:
printf 'asde71.4\nasde71.4\n' | smbpasswd -L -s -c ~/.config/samba/smb.conf andres
Acentos se ven mal
Verificar que unix charset = UTF-8 esta en smb.conf seccion [global].