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

Не удается подключиться к экземпляру ec2 по SSH в VPC

Я только начинаю работать с AWS, и у меня есть 2 экземпляра ec2, запущенных на VPC, один с общедоступным и частным IP-адресом, а другой - только с частным IP.

Я могу использовать SSH для обоих (используя свой ключ), если я присоединю к ним внешний IP-адрес.

Я могу SSH с сервера 1 на сервер 2 (если я скопирую ключ pem на сервер 1)

Сервер 2 Я хочу использовать только частный IP-адрес, а сервер 1 имеет общедоступный IP-адрес и NAT для сервера 2. Я пытаюсь следовать руководству Вот aws показывает, что частный адрес сервера 2 - 10.0.0.18 (сервер 1 - 10.0.0.63)

На сервере 1 я добавил ..

sudo iptables -t nat -A PREROUTING -p tcp --dport 10235 -j DNAT --to-destination 10.0.0.18:22

если я смотрю на таблицы, я вижу ...

1    DNAT       tcp  --  anywhere             anywhere             tcp dpt:10235 to:10.0.0.18:22

А если посмотреть пакеты для iptables ...

iptables -L -v -t nat
Chain PREROUTING (policy ACCEPT 1 packets, 40 bytes)
 pkts bytes target     prot opt in     out     source               destination         
   10   600 DNAT       tcp  --  any    any     anywhere             anywhere             tcp dpt:10235 to:10.0.0.18:22

Я пытаюсь связаться с ...

ssh -i mykeyfile.pem -p 10235 user@<server1domain>

Всякий раз, когда я пытаюсь, я вижу, что количество пакетов на сервере 1 увеличивается, но я никогда не получаю ответа. Я разрешил порты 10234, 5 и 22 в группе безопасности.

Группа безопасности отображается как ..

  Custom TCP Rule TCP 10234 - 10240 0.0.0.0/0

ssh -vvv не дает ничего полезного, просто висит сообщение `` подключение к порту myhost 10235.

Как уже упоминалось, если я связываю общедоступный IP-адрес и подключаюсь к нему, все работает, но я не могу заставить его работать через NAT?

Если вы пытаетесь подключиться извне VPC к экземпляру, используя только частный IP-адрес, это не удастся. Вам нужно настроить свой экземпляр с общедоступным IP-адресом, чтобы он также был VPN (попробуйте OpenVPN AS), а затем разрешите доступ по ssh таким образом.

Если вы пытаетесь использовать SSH с сервера 2 (только частный IP) на сервер 1 (общедоступный / частный), вам может потребоваться также добавить таблицу маршрутов или группу безопасности, а также убедиться, что VPC может обрабатывать трафик NAT / PAT:

Скрипт NAT / PAT

И настроим его на запуск (ubuntu):

sed -i '$ i '"/usr/local/sbin/configure-pat.sh"'' /etc/rc.local'