openclaw gateway ….
Rilevamento Bonjour
Configurazione mDNS locale + DNS-SD wide-area.
Panoramica del rilevamento
Come OpenClaw pubblicizza e trova i gateway.
Configurazione
Chiavi di configurazione del gateway di primo livello.
Eseguire il Gateway
Esegui un processo Gateway locale:Comportamento all'avvio
Comportamento all'avvio
- Per impostazione predefinita, il Gateway rifiuta di avviarsi a meno che
gateway.mode=localnon sia impostato in~/.openclaw/openclaw.json. Usa--allow-unconfiguredper esecuzioni ad hoc/dev. openclaw onboard --mode localeopenclaw setupdovrebbero scriveregateway.mode=local. Se il file esiste magateway.modemanca, consideralo una configurazione rotta o sovrascritta e riparalo invece di presumere implicitamente la modalità locale.- Se il file esiste e
gateway.modemanca, il Gateway lo considera un danno sospetto alla configurazione e rifiuta di “indovinare local” per te. - Il binding oltre il loopback senza autenticazione è bloccato (misura di sicurezza).
lan,tailnetecustomattualmente si risolvono tramite percorsi BYOH solo IPv4.- BYOH solo IPv6 non è supportato nativamente su questo percorso oggi. Usa un sidecar IPv4 o un proxy se l’host stesso è solo IPv6.
SIGUSR1attiva un riavvio in-process quando autorizzato (commands.restartè abilitato per impostazione predefinita; impostacommands.restart: falseper bloccare il riavvio manuale, mentre l’applicazione/aggiornamento di strumenti/configurazione del gateway rimane consentito).- Gli handler
SIGINT/SIGTERMarrestano il processo gateway, ma non ripristinano eventuali stati personalizzati del terminale. Se avvolgi la CLI con una TUI o input in modalità raw, ripristina il terminale prima di uscire.
Opzioni
Porta WebSocket (il valore predefinito proviene da config/env; di solito
18789).Modalità di bind del listener.
lan, tailnet e custom attualmente si risolvono tramite percorsi solo IPv4.Override della modalità di autenticazione.
Override del token (imposta anche
OPENCLAW_GATEWAY_TOKEN per il processo).Override della password.
Leggi la password del gateway da un file.
Espone il Gateway tramite Tailscale.
Reimposta la configurazione serve/funnel di Tailscale allo spegnimento.
Oggi si aspetta un indirizzo IPv4. Per BYOH solo IPv6, metti un sidecar IPv4 o un proxy davanti al Gateway e punta OpenClaw a quell’endpoint IPv4.
Consenti l’avvio del gateway senza
gateway.mode=local nella configurazione. Bypassa la protezione di avvio solo per bootstrap ad hoc/dev; non scrive né ripara il file di configurazione.Crea una configurazione dev + workspace se mancano (salta BOOTSTRAP.md).
Reimposta configurazione dev + credenziali + sessioni + workspace (richiede
--dev).Termina qualsiasi listener esistente sulla porta selezionata prima dell’avvio.
Log dettagliati.
Mostra solo i log del backend CLI nella console (e abilita stdout/stderr).
Stile dei log WebSocket.
Alias per
--ws-log compact.Registra gli eventi raw dello stream del modello in jsonl.
Percorso jsonl dello stream raw.
Riavviare il Gateway
openclaw gateway restart --safe chiede al Gateway in esecuzione di fare un preflight del lavoro attivo e pianificare un singolo riavvio coalescente dopo lo svuotamento del lavoro attivo. Il riavvio sicuro predefinito attende il lavoro attivo fino al gateway.reload.deferralTimeoutMs configurato (predefinito 5 minuti); quando quel budget scade, il riavvio viene forzato. Imposta gateway.reload.deferralTimeoutMs a 0 per un’attesa sicura indefinita che non forza mai. Il semplice restart mantiene il comportamento esistente del service manager; --force rimane il percorso di override immediato.
openclaw gateway restart --safe --skip-deferral esegue lo stesso riavvio coordinato consapevole di OpenClaw di --safe, ma bypassa il gate di rinvio del lavoro attivo, quindi il Gateway emette il riavvio immediatamente anche quando vengono segnalati blocchi. Usalo come via di uscita per l’operatore quando un rinvio è stato bloccato da un’esecuzione di task incagliata e --safe da solo può essere limitato da gateway.reload.deferralTimeoutMs. --skip-deferral richiede --safe.
Profilazione del Gateway
- Imposta
OPENCLAW_GATEWAY_STARTUP_TRACE=1per registrare i tempi delle fasi durante l’avvio del Gateway, incluso il ritardoeventLoopMaxper fase e i tempi delle tabelle di lookup dei Plugin per indice installato, registro manifest, pianificazione di avvio e lavoro owner-map. - Imposta
OPENCLAW_GATEWAY_RESTART_TRACE=1per registrare righerestart trace:con ambito di riavvio per gestione del segnale di riavvio, svuotamento del lavoro attivo, fasi di shutdown, avvio successivo, tempi di ready e metriche di memoria. - Imposta
OPENCLAW_DIAGNOSTICS=timelineconOPENCLAW_DIAGNOSTICS_TIMELINE_PATH=<path>per scrivere una timeline diagnostica di avvio JSONL best-effort per harness QA esterni. Puoi anche abilitare il flag condiagnostics.flags: ["timeline"]nella configurazione; il percorso è comunque fornito tramite env. AggiungiOPENCLAW_DIAGNOSTICS_EVENT_LOOP=1per includere campioni dell’event loop. - Esegui prima
pnpm build, poipnpm test:startup:gateway -- --runs 5 --warmup 1per fare benchmark dell’avvio del Gateway rispetto all’entry CLI compilata. Il benchmark registra il primo output del processo,/healthz,/readyz, tempi della traccia di avvio, ritardo dell’event loop e dettagli sui tempi delle tabelle di lookup dei Plugin. - Esegui prima
pnpm build, poipnpm test:restart:gateway -- --case skipChannels --runs 1 --restarts 5per fare benchmark del riavvio in-process del Gateway rispetto all’entry CLI compilata su macOS o Linux. Il benchmark di riavvio usa SIGUSR1, abilita sia le tracce di avvio sia quelle di riavvio nel processo figlio e registra il successivo/healthz, il successivo/readyz, downtime, tempi di ready, CPU, RSS e metriche della traccia di riavvio. - Considera
/healthzcome liveness e/readyzcome readiness utilizzabile. Le righe di traccia e l’output del benchmark servono per l’attribuzione al proprietario; non considerare un singolo span di traccia o un singolo campione come una conclusione completa sulle prestazioni.
Interrogare un Gateway in esecuzione
Tutti i comandi di query usano WebSocket RPC.- Modalità di output
- Opzioni condivise
- Predefinita: leggibile da persone (colorata in TTY).
--json: JSON leggibile da macchine (senza stile/spinner).--no-color(oNO_COLOR=1): disabilita ANSI mantenendo il layout umano.
Quando imposti
--url, la CLI non fa fallback alle credenziali di configurazione o ambiente. Passa esplicitamente --token o --password. La mancanza di credenziali esplicite è un errore.gateway health
/healthz è una sonda di liveness: restituisce quando il server può rispondere via HTTP. L’endpoint HTTP /readyz è più rigoroso e rimane rosso mentre sidecar dei Plugin di avvio, canali o hook configurati si stanno ancora assestando. Le risposte dettagliate di readiness locali o autenticate includono un blocco diagnostico eventLoop con ritardo dell’event loop, utilizzo dell’event loop, rapporto dei core CPU e un flag degraded.
Indirizza un Gateway local loopback su questa porta. Questo sovrascrive
OPENCLAW_GATEWAY_URL e OPENCLAW_GATEWAY_PORT per la chiamata di health.gateway usage-cost
Recupera riepiloghi usage-cost dai log di sessione.
Numero di giorni da includere.
Limita il riepilogo dei costi a un singolo id agent configurato.
Aggrega il riepilogo dei costi su tutti gli agent configurati. Non può essere combinato con
--agent.gateway stability
Recupera il recorder diagnostico recente della stabilità da un Gateway in esecuzione.
Numero massimo di eventi recenti da includere (max
1000).Filtra per tipo di evento diagnostico, come
payload.large o diagnostic.memory.pressure.Includi solo eventi dopo un numero di sequenza diagnostico.
Leggi un bundle di stabilità persistito invece di chiamare il Gateway in esecuzione. Usa
--bundle latest (o solo --bundle) per il bundle più recente nella directory di stato, oppure passa direttamente un percorso JSON del bundle.Scrivi uno zip di diagnostica di supporto condivisibile invece di stampare i dettagli di stabilità.
Percorso di output per
--export.Privacy e comportamento dei bundle
Privacy e comportamento dei bundle
- I record conservano metadati operativi: nomi degli eventi, conteggi, dimensioni in byte, letture di memoria, stato di code/sessioni, id di approvazione, nomi di canali/Plugin e riepiloghi di sessione redatti. Non conservano testo delle chat, body dei Webhook, output degli strumenti, body raw di richieste o risposte, token, cookie, valori segreti, hostname o id raw di sessione. Imposta
diagnostics.enabled: falseper disabilitare completamente il recorder. - Su uscite fatali del Gateway, timeout di shutdown e fallimenti di avvio del riavvio, OpenClaw scrive lo stesso snapshot diagnostico in
~/.openclaw/logs/stability/openclaw-stability-*.jsonquando il recorder contiene eventi. Ispeziona il bundle più recente conopenclaw gateway stability --bundle latest;--limit,--typee--since-seqsi applicano anche all’output del bundle.
gateway diagnostics export
Scrive uno zip diagnostico locale progettato per essere allegato a segnalazioni di bug. Per il modello di privacy e i contenuti del bundle, vedi Esportazione diagnostica.
Percorso dello zip di output. Il valore predefinito e’ un’esportazione per il supporto nella directory di stato.
Numero massimo di righe di log sanificate da includere.
Numero massimo di byte di log da ispezionare.
URL WebSocket del Gateway per lo snapshot di integrita’.
Token del Gateway per lo snapshot di integrita’.
Password del Gateway per lo snapshot di integrita’.
Timeout dello snapshot di stato/integrita’.
Salta la ricerca del bundle di stabilita’ persistito.
Stampa il percorso scritto, la dimensione e il manifesto come JSON.
gateway status
gateway status mostra il servizio Gateway (launchd/systemd/schtasks) piu’ una verifica facoltativa della capacita’ di connettivita’/autenticazione.
Aggiunge una destinazione di verifica esplicita. La remota configurata + localhost vengono comunque verificate.
Autenticazione tramite token per la verifica.
Autenticazione tramite password per la verifica.
Timeout della verifica.
Salta la verifica della connettivita’ (vista solo del servizio).
Scansiona anche i servizi a livello di sistema.
Aggiorna la verifica di connettivita’ predefinita a una verifica di lettura ed esce con codice diverso da zero quando tale verifica di lettura non riesce. Non puo’ essere combinato con
--no-probe.Semantica dello stato
Semantica dello stato
gateway statusresta disponibile per la diagnostica anche quando la configurazione CLI locale e’ mancante o non valida.gateway statuspredefinito prova lo stato del servizio, la connessione WebSocket e la capacita’ di autenticazione visibile al momento dell’handshake. Non prova operazioni di lettura/scrittura/amministrazione.- Le verifiche diagnostiche non modificano nulla per l’autenticazione iniziale del dispositivo: riutilizzano un token dispositivo esistente nella cache quando esiste, ma non creano una nuova identita’ dispositivo CLI o un record di associazione dispositivo in sola lettura solo per controllare lo stato.
gateway statusrisolve i SecretRef di autenticazione configurati per l’autenticazione della verifica quando possibile.- Se in questo percorso di comando un SecretRef di autenticazione richiesto non viene risolto,
gateway status --jsonriportarpc.authWarningquando la connettivita’/autenticazione della verifica non riesce; passa--token/--passwordesplicitamente o risolvi prima l’origine del segreto. - Se la verifica riesce, gli avvisi auth-ref non risolti vengono soppressi per evitare falsi positivi.
- Quando la verifica e’ abilitata, l’output JSON include
gateway.versionquando il Gateway in esecuzione lo riporta;--require-rpcpuo’ usare come fallback il payload RPCstatus.runtimeVersionse la verifica handshake successiva non puo’ fornire metadati di versione. - Usa
--require-rpcnegli script e nelle automazioni quando un servizio in ascolto non basta e ti serve che anche le chiamate RPC con ambito di lettura siano integre. --deepaggiunge una scansione best-effort per installazioni launchd/systemd/schtasks aggiuntive. Quando vengono rilevati piu’ servizi simili a gateway, l’output per utenti stampa suggerimenti di pulizia e avvisa che la maggior parte delle configurazioni dovrebbe eseguire un gateway per macchina.--deepriporta anche un recente passaggio di riavvio del supervisore Gateway quando il processo del servizio e’ uscito correttamente per un riavvio di supervisore esterno.--deepesegue la convalida della configurazione in modalita’ consapevole dei plugin (pluginValidation: "full") e mostra avvisi del manifesto dei plugin configurati (per esempio metadati di configurazione canale mancanti) in modo che i controlli smoke di installazione e aggiornamento li intercettino.gateway statuspredefinito mantiene il percorso veloce in sola lettura che salta la convalida dei plugin.- L’output per utenti include il percorso del file di log risolto piu’ lo snapshot dei percorsi/validita’ della configurazione CLI-vs-servizio per aiutare a diagnosticare derive di profilo o directory di stato.
Controlli di deriva dell'autenticazione systemd su Linux
Controlli di deriva dell'autenticazione systemd su Linux
- Nelle installazioni systemd su Linux, i controlli di deriva dell’autenticazione del servizio leggono sia i valori
Environment=siaEnvironmentFile=dall’unita’ (inclusi%h, percorsi tra virgolette, piu’ file e file facoltativi con-). - I controlli di deriva risolvono i SecretRef
gateway.auth.tokenusando l’ambiente runtime unito (prima l’ambiente del comando del servizio, poi il fallback sull’ambiente del processo). - Se l’autenticazione tramite token non e’ effettivamente attiva (
gateway.auth.modeesplicito dipassword/none/trusted-proxy, oppure modalita’ non impostata dove la password puo’ prevalere e nessun candidato token puo’ prevalere), i controlli di deriva del token saltano la risoluzione del token di configurazione.
gateway probe
gateway probe e’ il comando “esegui il debug di tutto”. Verifica sempre:
- il gateway remoto configurato (se impostato), e
- localhost (local loopback) anche se il remoto e’ configurato.
--url, quella destinazione esplicita viene aggiunta prima di entrambe. L’output per utenti etichetta le destinazioni come:
URL (explicit)Remote (configured)oppureRemote (configured, inactive)Local loopback
Se piu’ destinazioni di verifica sono raggiungibili, le stampa tutte. Un tunnel SSH, un URL TLS/proxy e un URL remoto configurato possono puntare tutti allo stesso gateway anche quando le loro porte di trasporto differiscono;
multiple_gateways e’ riservato a gateway raggiungibili distinti o con identita’ ambigua. Piu’ gateway sono supportati quando usi profili isolati (per esempio, un bot di soccorso), ma la maggior parte delle installazioni esegue comunque un solo gateway.Usa questa porta per la destinazione di verifica local loopback e la porta remota del tunnel SSH. Senza
--url, seleziona la destinazione local loopback invece dell’URL dell’ambiente gateway configurato, della porta dell’ambiente o delle destinazioni remote.Interpretazione
Interpretazione
Reachable: yessignifica che almeno una destinazione ha accettato una connessione WebSocket.Capability: read-only|write-capable|admin-capable|pairing-pending|connect-onlyriporta cio’ che la verifica ha potuto provare sull’autenticazione. E’ separata dalla raggiungibilita’.Read probe: oksignifica che sono riuscite anche le chiamate RPC di dettaglio con ambito di lettura (health/status/system-presence/config.get).Read probe: limited - missing scope: operator.readsignifica che la connessione e’ riuscita ma l’RPC con ambito di lettura e’ limitato. Questo viene riportato come raggiungibilita’ degradata, non come errore completo.Read probe: faileddopoConnect: oksignifica che il Gateway ha accettato la connessione WebSocket, ma la diagnostica di lettura successiva e’ scaduta o non e’ riuscita. Anche questa e’ raggiungibilita’ degradata, non un Gateway irraggiungibile.- Come
gateway status, probe riutilizza l’autenticazione dispositivo esistente nella cache ma non crea identita’ dispositivo iniziale o stato di associazione. - Il codice di uscita e’ diverso da zero solo quando nessuna destinazione verificata e’ raggiungibile.
Output JSON
Output JSON
Livello superiore:
ok: almeno una destinazione e’ raggiungibile.degraded: almeno una destinazione ha accettato una connessione ma non ha completato l’intera diagnostica RPC di dettaglio.capability: migliore capacita’ vista tra le destinazioni raggiungibili (read_only,write_capable,admin_capable,pairing_pending,connected_no_operator_scopeounknown).primaryTargetId: migliore destinazione da trattare come vincitrice attiva in questo ordine: URL esplicito, tunnel SSH, remoto configurato, poi local loopback.warnings[]: record di avviso best-effort concode,messageetargetIdsfacoltativi.network: suggerimenti URL local loopback/tailnet derivati dalla configurazione corrente e dalla rete host.discovery.timeoutMsediscovery.count: budget di discovery effettivo/conteggio risultati usato per questo passaggio di verifica.
targets[].connect):ok: raggiungibilita’ dopo connessione + classificazione degradata.rpcOk: successo completo dell’RPC di dettaglio.scopeLimited: RPC di dettaglio non riuscito a causa dell’ambito operatore mancante.
targets[].auth):role: ruolo di autenticazione riportato inhello-okquando disponibile.scopes: ambiti concessi riportati inhello-okquando disponibili.capability: classificazione della capacita’ di autenticazione esposta per quella destinazione.
Codici di avviso comuni
Codici di avviso comuni
ssh_tunnel_failed: configurazione del tunnel SSH non riuscita; il comando e’ tornato alle verifiche dirette.multiple_gateways: erano raggiungibili identita’ gateway distinte, oppure OpenClaw non ha potuto provare che le destinazioni raggiungibili siano lo stesso gateway. Un tunnel SSH, URL proxy o URL remoto configurato verso lo stesso gateway non attiva questo avviso.auth_secretref_unresolved: un SecretRef di autenticazione configurato non ha potuto essere risolto per una destinazione non riuscita.probe_scope_limited: la connessione WebSocket e’ riuscita, ma la verifica di lettura e’ stata limitata dall’assenza dioperator.read.
Remoto tramite SSH (parita’ con app Mac)
La modalita’ “Remote over SSH” dell’app macOS usa un port-forward locale in modo che il gateway remoto (che puo’ essere associato solo a loopback) diventi raggiungibile aws://127.0.0.1:<port>.
Equivalente CLI:
user@host o user@host:port (la porta predefinita e’ 22).File di identita’.
Sceglie il primo host gateway individuato come destinazione SSH dall’endpoint di discovery risolto (
local. piu’ il dominio wide-area configurato, se presente). I suggerimenti solo TXT vengono ignorati.gateway.remote.sshTargetgateway.remote.sshIdentity
gateway call <method>
Helper RPC di basso livello.
Stringa oggetto JSON per i parametri.
URL WebSocket del Gateway.
Token del Gateway.
Password del Gateway.
Budget di timeout.
Principalmente per RPC in stile agente che trasmettono eventi intermedi prima di un payload finale.
Output JSON leggibile da macchina.
--params deve essere JSON valido.Gestire il servizio Gateway
Installare con un wrapper
Usa--wrapper quando il servizio gestito deve avviarsi tramite un altro eseguibile, ad esempio uno shim per il gestore dei segreti o un helper run-as. Il wrapper riceve i normali argomenti del Gateway ed è responsabile di eseguire infine openclaw o Node con quegli argomenti.
gateway install verifica che il percorso sia un file eseguibile, scrive il wrapper in ProgramArguments del servizio e mantiene OPENCLAW_WRAPPER nell’ambiente del servizio per reinstallazioni forzate, aggiornamenti e riparazioni con doctor successive.
OPENCLAW_WRAPPER durante la reinstallazione:
Opzioni dei comandi
Opzioni dei comandi
gateway status:--url,--token,--password,--timeout,--no-probe,--require-rpc,--deep,--jsongateway install:--port,--runtime <node|bun>,--token,--wrapper <path>,--force,--jsongateway restart:--safe,--skip-deferral,--force,--wait <duration>,--jsongateway uninstall|start:--jsongateway stop:--disable,--json
Comportamento del ciclo di vita
Comportamento del ciclo di vita
- Usa
gateway restartper riavviare un servizio gestito. Non concatenaregateway stopegateway startcome sostituto del riavvio. - Su macOS,
gateway stopusalaunchctl bootoutper impostazione predefinita, che rimuove il LaunchAgent dalla sessione di avvio corrente senza mantenere una disabilitazione: il ripristino automatico KeepAlive resta attivo per crash futuri egateway startriabilita tutto in modo pulito senza unlaunchctl enablemanuale. Passa--disableper sopprimere in modo persistente KeepAlive e RunAtLoad, così il Gateway non si riavvia fino al successivogateway startesplicito; usalo quando un arresto manuale deve sopravvivere a riavvii o riavvii di sistema. gateway restart --safechiede al Gateway in esecuzione di verificare preventivamente il lavoro attivo e pianificare un unico riavvio coalescente dopo lo svuotamento del lavoro attivo. Il riavvio sicuro predefinito attende il lavoro attivo fino al valore configurato digateway.reload.deferralTimeoutMs(predefinito 5 minuti); allo scadere di quel budget il riavvio viene forzato. Impostagateway.reload.deferralTimeoutMssu0per un’attesa sicura indefinita che non forza mai.--safenon può essere combinato con--forceo--wait.gateway restart --wait 30ssovrascrive il budget di svuotamento configurato per quel riavvio. I numeri senza unità sono millisecondi; sono accettate unità comes,meh.--wait 0attende indefinitamente.gateway restart --safe --skip-deferralesegue il riavvio sicuro consapevole di OpenClaw ma aggira il gate di differimento, così il Gateway emette immediatamente il riavvio anche quando vengono segnalati blocchi. È una via di fuga per l’operatore in caso di differimenti bloccati da task-run; richiede--safe.gateway restart --forcesalta lo svuotamento del lavoro attivo e riavvia immediatamente. Usalo quando un operatore ha già ispezionato i blocchi dei task elencati e vuole ripristinare subito il Gateway.- I comandi del ciclo di vita accettano
--jsonper lo scripting.
Auth e SecretRefs al momento dell'installazione
Auth e SecretRefs al momento dell'installazione
- Quando l’autenticazione tramite token richiede un token e
gateway.auth.tokenè gestito da SecretRef,gateway installverifica che il SecretRef sia risolvibile ma non mantiene il token risolto nei metadati dell’ambiente del servizio. - Se l’autenticazione tramite token richiede un token e il SecretRef del token configurato non è risolto, l’installazione fallisce in modo chiuso invece di mantenere testo normale di fallback.
- Per l’autenticazione tramite password su
gateway run, preferisciOPENCLAW_GATEWAY_PASSWORD,--password-fileo ungateway.auth.passwordbasato su SecretRef rispetto a--passwordinline. - In modalità auth inferita,
OPENCLAW_GATEWAY_PASSWORDsolo shell non allenta i requisiti del token di installazione; usa una configurazione durevole (gateway.auth.passwordoenvdi configurazione) quando installi un servizio gestito. - Se sia
gateway.auth.tokensiagateway.auth.passwordsono configurati egateway.auth.modenon è impostato, l’installazione viene bloccata finché la modalità non viene impostata esplicitamente.
Scoprire i Gateway (Bonjour)
gateway discover esegue la scansione dei beacon del Gateway (_openclaw-gw._tcp).
- Multicast DNS-SD:
local. - Unicast DNS-SD (Wide-Area Bonjour): scegli un dominio (esempio:
openclaw.internal.) e configura split DNS + un server DNS; consulta Bonjour.
role(suggerimento sul ruolo del Gateway)transport(suggerimento sul trasporto, ad es.gateway)gatewayPort(porta WebSocket, di solito18789)sshPort(solo modalità discovery completa; i client usano come destinazioni SSH predefinite22quando è assente)tailnetDns(nome host MagicDNS, quando disponibile)gatewayTls/gatewayTlsSha256(TLS abilitato + fingerprint del certificato)cliPath(solo modalità discovery completa)
gateway discover
Timeout per comando (browse/resolve).
Output leggibile dalla macchina (disabilita anche stile/spinner).
- La CLI esegue la scansione di
local.più il dominio wide-area configurato quando ne è abilitato uno. wsUrlnell’output JSON deriva dall’endpoint del servizio risolto, non da suggerimenti solo TXT comelanHostotailnetDns.- Su mDNS
local.e DNS-SD wide-area,sshPortecliPathvengono pubblicati solo quandodiscovery.mdns.modeèfull.