境變量與命令行參數(shù)優(yōu)先級(jí)詳解)
Whosthere 配置完全指南YAML、環(huán)境變量與命令行參數(shù)優(yōu)先級(jí)詳解【免費(fèi)下載鏈接】whosthereLocal Area Network discovery tool with an interactive Terminal User Interface (TUI) written in Go. Discover, explore, and understand your LAN in an intuitive way. Knock Knock.. whos there? 項(xiàng)目地址: https://gitcode.com/gh_mirrors/wh/whosthereWhosthere 是一款用 Go 編寫(xiě)的局域網(wǎng)發(fā)現(xiàn)工具它通過(guò) mDNS、SSDP 和 ARP 掃描識(shí)別你的內(nèi)網(wǎng)設(shè)備并提供直觀的 TUI 界面。本文詳解 Whosthere 配置的三種方式——YAML 配置文件、環(huán)境變量與命令行參數(shù)——以及它們的優(yōu)先級(jí)順序幫助你快速完成網(wǎng)絡(luò)掃描配置。 四重配置通道一張圖看懂優(yōu)先級(jí)Whosthere 允許同一個(gè)配置項(xiàng)來(lái)自四個(gè)不同的來(lái)源。當(dāng)多個(gè)來(lái)源同時(shí)設(shè)置同一個(gè)值時(shí)按以下優(yōu)先級(jí)從高到低生效配置加載邏輯見(jiàn) load.go優(yōu)先級(jí)配置方式適用場(chǎng)景1命令行參數(shù)Flags一次性臨時(shí)覆蓋如whosthere --timeout5s2環(huán)境變量WHOSTHERE__前綴容器/腳本中注入配置3YAML 配置文件日常持久化配置4內(nèi)置默認(rèn)值什么都不配時(shí)的兜底源碼在 config.go記住一個(gè)原則越臨時(shí)的方式優(yōu)先級(jí)越高方便你隨時(shí)臨時(shí)改寫(xiě)而不污染配置文件。 配置文件放在哪里Whosthere 按以下順序查找 YAML 配置文件找到第一個(gè)即生效解析邏輯在 loader.go--config參數(shù)或WHOSTHERE_CONFIG環(huán)境變量指定的路徑$XDG_CONFIG_HOME/whosthere/config.yaml如果設(shè)置了XDG_CONFIG_HOME~/.config/whosthere/config.yamlLinux/macOS 默認(rèn)位置Windows 為%APPDATA%/whosthere見(jiàn) xdg.go 貼心設(shè)計(jì)首次運(yùn)行 TUI 時(shí)如果配置文件不存在會(huì)自動(dòng)生成一份帶注釋的默認(rèn)配置loader.go你直接打開(kāi)改就行不用手寫(xiě)。?? YAML 配置文件核心字段速查自動(dòng)生成后的config.yaml每一項(xiàng)都有注釋常用字段如下配置項(xiàng)默認(rèn)值作用network_interface系統(tǒng)默認(rèn)接口指定掃描網(wǎng)卡如eth0、en0all_interfacesfalse同時(shí)展示所有網(wǎng)卡上的設(shè)備target_subnets自動(dòng)探測(cè)接口子網(wǎng)手動(dòng)指定要掃的 IPv4 CIDR 子網(wǎng)scan_interval20s周期性發(fā)現(xiàn)掃描的間隔scan_timeout10s單次掃描超時(shí)建議小于間隔scanners.mdns/ssdp/arp.enabled均開(kāi)啟三個(gè)發(fā)現(xiàn)器的開(kāi)關(guān)至少要留一個(gè)sweeper.enabledtrue子網(wǎng) sweeping 探測(cè)觸發(fā) ARP 解析的主力port_scanner.tcp28 個(gè)常見(jiàn)端口對(duì)發(fā)現(xiàn)的設(shè)備做 TCP 端口掃描splash.enabled/delaytrue/1sTUI 啟動(dòng)畫(huà)面的開(kāi)關(guān)與時(shí)長(zhǎng)theme.namedefaultTUI 主題可設(shè)custom自定義顏色?? 配置不是寫(xiě)了就生效加載后會(huì)經(jīng)過(guò)校驗(yàn)與歸一化非法的target_subnetsCIDR、不存在的網(wǎng)卡名、全關(guān)掃描器等都會(huì)被糾正或報(bào)錯(cuò)config.go。 環(huán)境變量配置法雙下劃線即嵌套任何 YAML 里能寫(xiě)的配置項(xiàng)都能用環(huán)境變量設(shè)置規(guī)則很簡(jiǎn)單實(shí)現(xiàn)見(jiàn) env.go統(tǒng)一前綴WHOSTHERE__注意雙下劃線嵌套層級(jí)用__分隔鍵名不區(qū)分大小寫(xiě)常用示例# 禁用啟動(dòng)畫(huà)面等價(jià)于 splash.enabled: false export WHOSTHERE__SPLASH__ENABLEDfalse # 指定掃描主題等價(jià)于 theme.name: cyberpunk export WHOSTHERE__THEME__NAMEcyberpunk # 只掃兩個(gè)子網(wǎng)等價(jià)于 target_subnets 列表 export WHOSTHERE__TARGET_SUBNETS10.0.0.0/24,10.0.1.0/24 # 關(guān)閉 mDNS 掃描器 export WHOSTHERE__SCANNERS__MDNS__ENABLEDfalse # 自定義端口掃描列表 export WHOSTHERE__PORT_SCANNER__TCP80,443,8080另有三個(gè)通用環(huán)境變量與具體配置項(xiàng)無(wú)關(guān)變量說(shuō)明WHOSTHERE_CONFIG覆蓋配置文件路徑與--config同效WHOSTHERE_LOG日志級(jí)別debug/info/warn/errorNO_COLOR完全關(guān)閉 TUI 的 ANSI 彩色輸出 命令行參數(shù)速查表所有全局參數(shù)注冊(cè)在 settings.go運(yùn)行whosthere --help可隨時(shí)查看。最常用的參數(shù)參數(shù)短選項(xiàng)對(duì)應(yīng)配置項(xiàng)示例--config-c配置文件路徑--config/etc/whosthere.yaml--interface-inetwork_interface--interfaceen0--interval-nscan_interval--interval30s--timeout-tscan_timeout--timeout10s--mdns/--ssdp/--arp-m-s-a對(duì)應(yīng)掃描器開(kāi)關(guān)--mdnsfalse--sweeper-Ssweeper.enabled--sweeperfalse--sweeper-interval/--sweeper-timeout-W/-Tsweeper 周期/超時(shí)--sweeper-interval5m--all-interfaces—all_interfaces--all-interfaces--target-subnets—target_subnets--target-subnets10.0.0.0/24注意并非每項(xiàng)配置都有對(duì)應(yīng)參數(shù)——scan_large_subnets、port_scanner.*、splash.*、theme.*只支持 YAML 與環(huán)境變量命令行里找不到它們。 一個(gè)容易踩的坑scan 子命令不讀 YAML這是閱讀 load.go 才能發(fā)現(xiàn)的行為差異TUI 模式直接運(yùn)行whosthere完整走YAML 環(huán)境變量 參數(shù)三層合并CLI 模式whosthere scan跳過(guò) YAML 配置文件只使用環(huán)境變量和命令行參數(shù) 默認(rèn)值。所以whosthere scan -t 5的表現(xiàn)與你在config.yaml里寫(xiě)的sweeper.interval等無(wú)關(guān)。想讓 CLI 單次掃描也生效請(qǐng)把值寫(xiě)進(jìn)環(huán)境變量或參數(shù)whosthere scan --timeout5s --sweeperfalse whosthere scan --timeout5s --json --pretty devices.json 驗(yàn)證配置是否生效先跑whosthere --help確認(rèn)參數(shù)名拼寫(xiě)正確設(shè)置WHOSTHERE_LOGdebug開(kāi)啟調(diào)試日志查看日志文件TUI 模式下日志只寫(xiě)文件Linux/macOS~/.local/state/whosthere/app.logWindows%LOCALAPPDATA%/whosthere/app.log非 TUI 模式如scan、daemon的日志會(huì)同時(shí)輸出到控制臺(tái)排查更方便。小結(jié)需求推薦做法長(zhǎng)期個(gè)性化主題、端口、掃描節(jié)奏編輯~/.config/whosthere/config.yaml腳本、CI、容器里注入WHOSTHERE__前綴環(huán)境變量臨時(shí)調(diào)試、一次性覆蓋命令行參數(shù)指定多個(gè)配置文件環(huán)境--config或WHOSTHERE_CONFIG掌握參數(shù) 環(huán)境變量 YAML 默認(rèn)值這條主線再注意scan子命令跳過(guò) YAML 的特性你就完全掌控了 Whosthere 的全部配置行為可以放心去敲敲門(mén)看看局域網(wǎng)里都有誰(shuí) ?!久赓M(fèi)下載鏈接】whosthereLocal Area Network discovery tool with an interactive Terminal User Interface (TUI) written in Go. Discover, explore, and understand your LAN in an intuitive way. Knock Knock.. whos there? 項(xiàng)目地址: https://gitcode.com/gh_mirrors/wh/whosthere創(chuàng)作聲明:本文部分內(nèi)容由AI輔助生成(AIGC),僅供參考