在 macOS 代理命令中使用网络服务名称
选择已配置的 macOS 网络服务,而不是在 networksetup 代理命令中替换 en0 设备标识符。
en0 标识的是网络设备,而 Wi-Fi 通常是已配置网络服务的名称。要求提供服务名称的代理命令期待的是后一种标识符。
先看这台机器实际拥有哪些名称:
networksetup -listallnetworkservices使用该输出中的完整服务名称。它可能是 Wi-Fi、某个 USB 适配器的描述性名称,或本地指定的名称。被停用的服务在列表中可能带星号;该标记不属于要复制的名称。
对于名为 Office Ethernet 的示例服务,设置 HTTP 代理的写法如下:
networksetup -setwebproxy "Office Ethernet" proxy.example.internal 8080引号保留了服务名称中的空格。代理主机名和端口是各自独立的参数。请替换为真实值;若测试允许使用公共 HTTP 端点,HTTP 代理列表可提供候选。请使用该机器的管理策略所要求的权限。
设置该服务并不会因为两者都能访问互联网就配置另一项服务。同时连接以太网和 Wi-Fi 的 Mac 可能有多个相关配置。在把同样的更改应用到别处之前,先确认承载受影响应用连接的是哪项服务。
还要把各协议专属的设置分开。Web 代理设置、安全 Web 目标代理、SOCKS 代理和自动 PAC URL 是不同的配置项。改动 HTTP 项并不能证明其余各项应当一起开启或关闭。
Apple 较早的 Remote Desktop 命令参考已在这些命令中区分网络服务。在被管理的机器上,用 networksetup -help 确认可用选项,然后核对网络设置中的目标服务。从接口列表得到的设备标识符并不能代替选择该服务。