如何清除 SSH ProxyCommand 保持打开的连接?

发布于 2024-11-03 12:33:39 字数 709 浏览 1 评论 0原文

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

~/.ssh/config

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 之外没有特殊配置(据我所知)。

我担心内部端口耗尽,理想情况下我希望这些连接能够在无需干预的情况下自行清理。理想情况下,通过配置它们来自杀;如果失败,我可以用一个命令来杀死旧进程就可以了!

I have a webserver WWW1 and a front-facing proxy PRX. I use SSH ProxyCommand to connect to WWW1's internal IP (private IP) via PRX (private+public IP). For some connections (not all) I see a network connection left open after I'm finished. These add up!

~/.ssh/config

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

On PRX, lsof | grep WWW1:ssh shows 124 open connections at the moment. On WWW1, the same command shows 243 open connections. There are similar open connections for WWW2, WWW3 etc.

WWW1 and PRX are Debian. Client connections are coming from a mix of Debian, Ubuntu and OSX10.6. I use Emacs Tramp but this has no special configuration (AFAIK) outside of my ~/.ssh/config.

I'm concerned about running out of internal ports, and ideally I want these connections to clean themselves up without intervention. Ideally by configuring them to kill themselves off; failing that a command I can kill old processes with is fine!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

临走之时 2024-11-10 12:33:39

更好的方法是使用 SSH 的 -W 选项,这样你就可以用

 ProxyCommand ssh -q -a -x PRX -W %h:22

这样的方式代替

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

nc ,这样你也摆脱了对 nc 的依赖。

A better way would be to use the -W option of SSH, so you could put

 ProxyCommand ssh -q -a -x PRX -W %h:22

instead of

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

This way you get rid of dependence on nc too.

风柔一江水 2024-11-10 12:33:39

不知道这是否重要,但我使用 nc -w 1 %h %p

Don't know whether it matters but I use nc -w 1 %h %p

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文