SSH 隧道结束后 macOS 仍保留 SOCKS 设置
当本地 SSH SOCKS 监听器不再运行时,恢复网络服务此前的代理配置。
SSH 的动态转发和 macOS 的代理设置寿命不同。SSH 进程提供本地 SOCKS 监听器;网络服务保存的是参与的应用应当使用的地址。
例如,下面的命令让一个 loopback SOCKS 监听器保持在前台:
ssh -N -D 127.0.0.1:1080 [email protected]
如果所选的 macOS 网络服务被配置为在 127.0.0.1:1080 上使用 SOCKS,那么使用该设置的应用就依赖这个监听器。SSH 进程退出后,监听器随之消失。SSH 不会自动恢复网络服务此前的代理值。
在“系统设置”→“网络”中打开当前网络服务的“详细信息”→“代理”。恢复隧道会话之前记录下来的 SOCKS 设置。如果 SOCKS 之前是关闭的,就再次关闭;如果此前已配置了另一个代理,则恢复它的地址、端口和启用状态。
检查结果时使用同一个服务。Wi-Fi 和以太网可能有不同的代理设置,自带代理配置的应用也需要做各自相应的更改。放在 ssh 之后的 shell 命令是单独的清理动作,因此不要把正常的退出流程当作“每个被中断的会话都会恢复原状”的保证。