Я создал два экземпляра EC2 (назовем их клиентским и удаленным хостами) в одной частной подсети и запустил контейнер Docker внутри удаленного хоста.
Сам контейнер докеров является частью сети докеров с IP-адресом 192.168.125.2.
Я запустил sshd-сервер внутри этого контейнера и сопоставил порт 22 с 2201, внутри и снаружи контейнера соответственно.
Вот моя проблема: если я попытаюсь использовать ssh внутри контейнера докеров с клиентского хоста, используя мой общедоступный IP-адрес, например:
ssh -p 2201 username@PUBLIC_IP
Затем, даже если это займет много времени, я могу подключиться по ssh к контейнеру на удаленном хосте.
Если, однако, я попытаюсь ssh контейнер с клиентского хоста, используя частный IP
ssh -p 2201 username@PUBLIC_IP
Я получаю ошибку тайм-аута и не могу получить доступ к контейнеру докера.
Я должен добавить, что если я попытаюсь ssh удаленного хоста с локального хоста (без доступа к контейнеру докера), например:
ssh -p 22 username@PRIVATE_IP
тогда я могу ssh без проблем.
В чем может быть проблема? Как я могу ssh от моего клиента к контейнеру на моем удаленном хосте, используя частные IP-адреса?
Я добавил правила для входящего трафика, чтобы разрешить трафик для портов 2201 и 2202 из любого источника, отключил проверку IP источника / назначения, но все равно это не повлияло.
Спасибо.
ОБНОВЛЕНИЕ 1:
Вот результат для docker port <container_name>
5672/tcp -> 0.0.0.0:5672
7777/tcp -> 0.0.0.0:7777
22/tcp -> 0.0.0.0:2201
Я предлагаю сначала включить трафик icmp в группе безопасности и попробовать выполнить эхо-запрос с клиента на удаленный IP-адрес. В основном это не сработает, теперь в правиле ICMP добавьте IP-адрес источника в качестве имени "<>". Это обеспечит доступ между EC2, принадлежащим этой группе безопасности. Если это сработает, то аналогичным образом добавьте IP-адрес источника в качестве имени «<>» в вашем правиле 2201, а также в правиле 22. Затем попробуйте свой ssh, посмотрите, работает ли он