# === mdns-termux - .bashrc additions === # Append these lines to your ~/.bashrc # Ensure ~/.local/bin is on PATH export PATH="$HOME/.local/bin:$PATH" # Your Tailscale tailnet (change to yours). Used as fallback for resolve/sshr. export TAILSCALE_DOMAIN="tailXXXXXX.ts.net" # --- mDNS publisher daemon (movil.local + services on the LAN) --- alias mdns-up='mdns publish --daemon' # start singleton daemon alias mdns-status='mdns status' # is it running? what does it announce? alias mdns-down='mdns stop' # graceful goodbye alias mdns-hosts='mdns sync-hosts' # write discovered hosts into hosts file # --- Service discovery / cache shortcuts --- alias mdns-types='mdns browse --list-types' alias mdns-ssh='mdns browse --type _ssh._tcp.local.' alias mdns-smb='mdns browse --type _smb._tcp.local.' alias mdns-http='mdns browse --type _http._tcp.local.' alias mdns-watch='mdns browse --watch' alias mdns-cache='mdns cache list' alias mdns-forget='mdns cache clear' # --- Generic host resolver (mdns -> stdlib -> Tailscale -> file cache) --- # Works in any command: ping $(resolve lenovo) / curl "http://$(resolve hp62a)" alias r='resolve' pingr() { ping -c 3 "$(resolve "$1")"; } curlr() { local h="$1"; shift; curl "$@" "http://$(resolve "$h")"; } whor() { mdns reverse "$1"; } # IP -> hostname (PTR) # HostKeyAlias reuses the known_hosts entry for the Tailscale FQDN so SSH-by-IP # does not fail host-key verification. sshr() { local h="$1"; shift local canonical="$h" # Add your own short-name -> canonical mappings here: case "$h" in dell) canonical="dell-latitude3400";; lenovo) canonical="lenovo-ideapad";; esac ssh -o "HostKeyAlias=${canonical}.${TAILSCALE_DOMAIN}" \ "YOUR_USER@$(resolve "$h")" "$@" } # --- Auto-start publisher on shell login (optional) --- # Uncomment if you want movil.local advertised whenever you open a Termux shell. # Failures land in ~/.cache/mdns.log — do NOT redirect to /dev/null. # # mkdir -p ~/.cache # pgrep -f "mdns-publish" >/dev/null 2>&1 || \ # nohup python ~/.local/bin/mdns-publish.py >>~/.cache/mdns.log 2>&1 & disown