如何清除 SSH ProxyCommand 留下的连接?

如何清除 SSH ProxyCommand 留下的连接?

我有一个 Web 服务器 WWW1 和一个前端代理 PRX。我使用 SSH ProxyCommand 通过 PRX(私有 IP+公共 IP)连接到 WWW1 的内部 IP(私有 IP)。对于某些连接(不是全部),我看到在我完成后网络连接仍处于打开状态。这些加起来!

〜/.ssh /配置

Host *
  ServerAliveInterval 5
  ControlMaster auto
  ControlPath ~/.ssh/master-%r@%h:%p

Host WWW1 WWW2 WWW3
  User foo
  ProxyCommand ssh -q -a -x PRX nc %h 22
  IdentityFile ~/.ssh/id_foo_WWWx

在 PRX 上,lsof | grep WWW1:ssh目前显示有 124 个打开的连接。在 WWW1 上,相同的命令显示有 243 个打开的连接。WWW2、WWW3 等也有类似的打开的连接。

WWW1 和 PRX 是 Debian。客户端连接来自 Debian、Ubuntu 和 OSX10.6 的混合。我使用 Emacs Tramp,但据我所知,它在我的之外没有特殊配置~/.ssh/config

我担心内部端口耗尽,理想情况下我希望这些连接能够自行清理而无需干预。理想情况下,通过配置它们使其自行终止;如果失败,我可以使用命令终止旧进程!

答案1

添加-w 1到 nc 参数。

  ProxyCommand ssh -q -a -x PRX nc %h 22

相关内容