Config Samba mDNS Termux
Go to file
Andrés Eduardo García Márquez af232a3568 feat: agregar instalador, bashrc-snippet y gitignore
- install.sh: instalacion automatica desde cero
- bashrc-snippet.sh: autostart + aliases para copiar a .bashrc
- .gitignore: excluir datos runtime (private, logs, pids)
- README.md: seccion de instalacion rapida

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-26 06:49:26 -05:00
.gitignore feat: agregar instalador, bashrc-snippet y gitignore 2026-03-26 06:49:26 -05:00
README.md feat: agregar instalador, bashrc-snippet y gitignore 2026-03-26 06:49:26 -05:00
bashrc-snippet.sh feat: agregar instalador, bashrc-snippet y gitignore 2026-03-26 06:49:26 -05:00
install.sh feat: agregar instalador, bashrc-snippet y gitignore 2026-03-26 06:49:26 -05:00
mdns-publish.py feat: config Samba + mDNS para Termux Android 2026-03-25 17:22:40 -05:00
smb.conf feat: config Samba + mDNS para Termux Android 2026-03-25 17:22:40 -05:00

README.md

Samba en Termux - Documentacion

Actualizado: 2026-03-24

Instalacion rapida

git clone https://devops.ingeniumcodex.com/andresgarcia0313/termux-samba.git
cd termux-samba
bash install.sh

El instalador:

  1. Instala samba y python-zeroconf
  2. Crea directorios de config
  3. Copia smb.conf y mdns-publish.py
  4. Crea usuario Samba (pide usuario y contrasena)
  5. Agrega autostart y aliases a .bashrc
  6. Inicia ambos servicios

Archivos del repo

Archivo Proposito
smb.conf Config principal de Samba
mdns-publish.py Script de descubrimiento en red (SSH + SMB)
install.sh Instalador automatico
bashrc-snippet.sh Autostart + aliases para .bashrc
.gitignore Excluye datos runtime (logs, pids, private)

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 .bashrc al 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:

  1. Detecta la IP local del dispositivo
  2. Registra los servicios SSH y SMB en la red multicast mDNS
  3. Se mantiene corriendo en background (daemon)
  4. 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

  1. Verificar que smbd corre: smb-status
  2. Verificar puerto: ss -tlnp | grep 4450
  3. Verificar firewall Android: Abrir ajustes WiFi, verificar que no hay restricciones

No aparece en Dolphin (Red)

  1. Verificar mDNS: mdns-status
  2. Desde Kubuntu: avahi-browse -rt _smb._tcp (debe mostrar "movil")
  3. Si no aparece, reiniciar: mdns-restart
  4. 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].