#Execute commands
1 messages · Page 1 of 1 (latest)
Probabilmente per uno di questi motivi:
-
nslookupnon è il comando giusto per “default gateway”
nslookuprisolve nomi DNS. Il default gateway è di solito un IP del router. Se fainslookup 192.168.1.1, stai chiedendo un reverse DNS/PTR, che spesso non esiste. -
OpenClaw esegue i comandi dove gira il Gateway, non per forza sul tuo PC.
Se il Gateway è su VPS/container/sandbox, vede la rete di quella macchina, non la tua LAN di casa. -
execpuò essere bloccato o richiedere approvazione
Dipende da config/allowlist/approvals. Vedi: https://docs.openclaw.ai/tools/exec e https://docs.openclaw.ai/tools/exec-approvals -
nslookuppotrebbe non essere installato sulla macchina dove OpenClaw prova a eseguire il comando.
Per trovare il gateway, meglio chiedere qualcosa tipo:
ip route | grep default
oppure su macOS:
route -n get default
Se vuoi debuggarlo bene: mandaci openclaw --version e l’errore esatto che OpenClaw ti risponde. 🦐
Openclaw si riufiuta di eseguire qualunque comando nslookup o ping
Allora non è nslookup in sé: se rifiuta anche ping, quasi sicuramente è una policy di exec / sandbox / approvals.
Prima cosa: che versione hai?
openclaw --version
Poi guarda l’errore esatto. Le cause più comuni sono:
- tool
execdisabilitato per quell’agente/chat (tools.deny, allowlist, permessi canale) tools.exec.security=denyo approvals configurati per negare- sessione in sandbox/container, dove
pingpuò fallire perché richiede privilegi raw socket nslookup/pingnon installati nel runtime dove OpenClaw esegue i comandi- stai chiedendo un comando di rete da una chat/non-owner e OpenClaw lo blocca per sicurezza
Test utile: chiedigli di eseguire un comando innocuo tipo:
echo ok
Se blocca anche quello → problema di exec/permessi.
Se quello funziona ma ping/nslookup no → problema di sandbox, binari mancanti o privilegi di rete.
Docs utili: https://docs.openclaw.ai/tools/exec e https://docs.openclaw.ai/tools/exec-approvals
Mandaci openclaw --version + messaggio di errore preciso e si capisce subito dove sta il blocco. 🦐
Non puo eseguire comandi shell dal runtime
Ok, allora il punto è questo: non sta rifiutando ping/nslookup, sta dicendo che quel runtime non ha accesso alla shell.
In OpenClaw ci sono due livelli diversi:
- runtime/agent:
pi,codex,claude-cli, ACP, ecc. - tool
exec: quello che permette davvero di lanciare comandi shell
Se sei in un runtime tipo ACP / harness esterno / coding runtime, gli strumenti OpenClaw come exec non sono esposti di default, quindi il modello può rispondere “non posso eseguire comandi shell dal runtime”.
Per capire quale caso è, manda questi output:
openclaw --version
openclaw status --all
openclaw config get tools.exec
openclaw approvals get --gateway
E nella chat con OpenClaw prova anche:
/status
/exec
Test minimo:
echo ok
Se anche echo ok non parte, è sicuramente config/runtime/permissions, non ping.
Docs utili: https://docs.openclaw.ai/tools/exec e https://docs.openclaw.ai/concepts/agent-runtimes 🦐
Current exec defaults: host=gateway, effective=gateway, security=full, ask=off, node=(unset).
Options: host=auto|sandbox|gateway|node, security=deny|allowlist|full, ask=off|on-miss|always, node=<id>.
🦞 OpenClaw 2026.4.5 (3e72c03)
🧠 Model: azure-openai-responses/gpt-5.1 · 🔑 api-key (azure-openai-responses:default)
🧮 Tokens: 363 in / 93 out · 💵 Cost: $0.0000
🗄️ Cache: 98% hit · 22k cached, 0 new
📚 Context: 23k/128k (18%) · 🧹 Compactions: 0
🧵 Session: agent:main:main • updated just now
⚙️ Runtime: direct · Think: off
🪢 Queue: collect (depth 0)
{
"host": "gateway",
"security": "full",
"ask": "off"
}
Questo output dice una cosa importante: exec non sembra bloccato dalla policy principale.
Hai:
host=gateway
security=full
ask=off
Runtime: direct
Quindi OpenClaw dovrebbe poter eseguire comandi sul gateway. Se continua a dire “non posso eseguire shell dal runtime”, le cause più probabili sono:
- Il tool
execnon è esposto al modello in questa chat
/execmostra solo i default, non garantisce che il tool sia disponibile. Prova:
/tools compact
Deve comparire exec. Se non c’è, controlla tools.allow, tools.deny, agents.list[].tools.* o regole provider-specific per azure-openai-responses.
-
Il modello sta rifiutando invece di chiamare il tool
Prova a chiedere esplicitamente:Usa il tool exec per eseguire: echo okSe rifiuta anche quello ma
/toolsmostraexec, potrebbe essere un problema di tool-calling con quel modello/provider. -
La 2026.4.5 è vecchiotta
Io aggiornerei prima di perdere troppo tempo:
openclaw update
openclaw gateway restart
ping/nslookupsono un caso a parte
Anche conexecfunzionante,pingpuò fallire per privilegi o binario mancante. Il test vero èecho ok.
Docs: https://docs.openclaw.ai/tools/exec e https://docs.openclaw.ai/gateway/sandbox-vs-tool-policy-vs-elevated 🦐
Disendogli usa exec ....funziona perche fa cosi?
Perché per il modello “eseguire un comando” e “usare il tool exec” non sempre sono la stessa cosa.
OpenClaw non ha una shell “dentro al runtime” in modo automatico: la shell è disponibile tramite il tool exec. Se il modello interpreta la richiesta come “posso fare shell direttamente dal runtime?”, può rispondere di no. Quando gli dici esplicitamente “usa exec”, gli stai indicando il tool corretto e allora funziona.
Nel tuo caso la config è ok:
host=gateway
security=full
ask=off
Runtime: direct
Quindi il problema è più di istruzione/tool-calling del modello, non di permessi.
Puoi mitigarlo aggiungendo nelle istruzioni dell’agente/AGENTS.md qualcosa tipo:
Quando l’utente chiede di eseguire un comando shell sicuro, usa il tool exec.
Se il comando è ambiguo, distruttivo o rischioso, chiedi conferma prima.
Non dire che non puoi eseguire comandi shell se il tool exec è disponibile.
Esempio pratico da chiedere:
Usa exec per eseguire: ip route | grep default
Docs: https://docs.openclaw.ai/tools/exec
Se ora funziona, segna pure la soluzione così viene indicizzata su Answer Overflow: right-click sul messaggio utile → Apps → ✅ Mark Solution 🦐
Funziona forzandllo a usare exec ma non capisco perche