우분투 14.04 LTS를 사용하고 있습니다. 나는 openssh
많은 포트(적어도 100개의 다른 포트)에서 수신 대기하는 서버를 만들고 싶습니다 . 여러 클라이언트가 서버에 연결되지만 각 클라이언트에는 자체 전용 포트가 필요합니다. 클라이언트는 요청 시 이 호스트에 대한 역방향 SSH 터널을 생성하며 최대 동시 클라이언트 수는 최대입니다. 한 번에 10개.
16개 이상의 포트를 구성하면 Openssh 서버가 시작되지 않고 다음 오류가 발생합니다.
fatal: Too many listen sockets. Enlarge MAX_LISTEN_SOCKS
MAX_LISTEN_SOCKS
sshd.c
파일에 정의되어 있습니다. 소스에서 다시 컴파일하고 서버를 다시 설치 MAX_LISTEN_SOCKS
하지 않고도 확장할 수 있는 방법이 있습니까 ?openssh
대안: 이 문제를 해결하는 다른/더 나은 방법이 있습니까?
답변1
sshd
다음을 사용하여 inetd
(선택적으로) 원하는 수의 포트에서 실행할 수 있습니다 .tcpd
inetd.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)에는 여러 클라이언트를 허용하기 위해 여러 수신 포트가 필요하지 않습니다. 이것이 멀티스레드 소켓 서버의 장점입니다.
기본적으로 이 기능은 필요하지 않습니다. 원래 질문에서 요청한 기능입니다.