Openssh 服务器:致命:监听套接字太多。放大 MAX_LISTEN_SOCKS

Openssh 服务器:致命:监听套接字太多。放大 MAX_LISTEN_SOCKS

我正在使用 Ubuntu 14.04 LTS。我想创建一个openssh服务器,它侦听许多端口(至少 100 个不同的端口)。多个客户端将连接到该服务器,但每个客户端都需要有自己的专用端口。客户端将按需创建到该主机的反向 ssh 隧道,并发客户端的最大数量将为 max。一次 10 个。

配置 16 个或更多端口时,Openssh 服务器无法启动,失败并显示错误:

fatal: Too many listen sockets. Enlarge MAX_LISTEN_SOCKS

MAX_LISTEN_SOCKSsshd.c在文件中定义。有没有办法扩大MAX_LISTEN_SOCKS,而不必openssh从源代码重新编译和重新安装服务器?

替代方案:是否有不同/更好的方法来解决这个问题?

答案1

您可以通过以下命令在任意数量的端口上运行sshdusing inetd(和可选) :tcpdinetd.conf

10000 stream tcp nowait root /usr/sbin/tcpd sshd -i
10001 stream tcp nowait root /usr/sbin/tcpd sshd -i
10002 stream tcp nowait root /usr/sbin/tcpd sshd -i
...

sshd -i您还应该阅读中的警告sshd 手册

答案2

感谢您的帮助和回复,事实证明,这个问题基本上毫无意义。一位乐于助人的 Reddit 用户让我大开眼界科兹勒: https://www.reddit.com/r/linuxadmin/comments/3kdn1r/openssh_server_fatal_too_many_listen_sockets/cuwoo02

但他们仍然会在端口 22 上连接到您,反向 SSH 隧道是您连接到的他们上打开的端口。您的服务器端守护程序 (OpenSSH) 不需要多个侦听端口来接受多个客户端。这就是多线程套接字服务器的美妙之处

基本上我不需要这个功能,这是我在原来的问题中所要求的。

相关内容