Назад | Перейти на главную страницу

Туннель, созданный с использованием SSM, позволяет только одно подключение к порту назначения

Я установил туннель между моим ноутбуком и экземпляром EC2, чтобы использовать порт 27019 локально и порт 27017 (MongoDB) удаленно.

aws ssm start-session --target "i-someinstance" --document-name AWS-StartPortForwardingSession --parameters '{"portNumber":["27017"],"localPortNumber":["27019"]}'

Starting session with SessionId: tedi-0adff9c0a7a4b3ac9
Port 27019 opened for sessionId tedi-0adff9c0a7a4b3ac9.
Connection accepted for session tedi-0adff9c0a7a4b3ac9.

Затем я могу подключиться к 27017 на локальном хосте:

$ mongo localhost:27019
MongoDB shell version v4.0.0
connecting to: mongodb://localhost:27019/test
MongoDB server version: 4.0.14
qa_primary:PRIMARY>                 

Но если я пытаюсь установить другое соединение, это кажется невозможным - соединение не удается, и в конечном итоге время ожидания истекает:

$ mongo localhost:27019
MongoDB shell version v4.0.0
connecting to: mongodb://localhost:27019/test

Как только я закрываю 1-е соединение, сразу же работает 2-е соединение.

Это проблема, поскольку некоторые инструменты управления с графическим интерфейсом пользователя Mongo, такие как Robo3T, похоже, используют несколько сокетов на одном и том же порте для установления соединения, и в конечном итоге они перестают работать. Также очень удобно иметь возможность устанавливать несколько подключений к одному и тому же порту для целей отладки.

5:41:50 PM  Info: Connecting to localhost:27019...
5:43:32 PM  Error: Establish connection failed. Network is unreachable. Reason: network error while attempting to run command 'isMaster' on host 'localhost:27019' . Connection: localhost