#4593 引入的 TestConfigKeysAreEnvReachable 与 #4604 新增的两个配置键语义相撞: 两键在 setDefaults 中无注册,守卫测试判定其环境变量不可达。 不能按守卫注释直接 SetDefault:viper 的 IsSet 会连同 defaults 一起上报, 任何已注册默认值都会让 load() 中 trustedProxiesConfigured 的显式配置探测 永远为真,摧毁 #4600 的 absent/empty 区分。改用 BindEnv 注册——绑定键同样 进入 AllKeys()(守卫测试与 Unmarshal 均可见),而变量缺席时不影响 IsSet。 两个环境变量本就由 load() 中 os.LookupEnv 手工解析,行为不变。