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