Как отладить недоступный (со стороны wan) сервер lemp, туннелирующийся через экземпляр Openvpn-AS на базе AWS

Как отладить недоступный (со стороны wan) сервер lemp, туннелирующийся через экземпляр Openvpn-AS на базе AWS

Я ломал голову неделями, пытаясь отладить когда-то идеально работающий веб-сервер LEMP. Я использую относительно сложную настройку. Давайте начнем с моей настройки с самого начала, когда все работало идеально.

Шаг 1 (рабочая настройка): сервер lemp/nginx > Raspberry Pi > Вторичный маршрутизатор с перенаправленными портами > Основной маршрутизатор с перенаправленными портами > Публичный Интернет, обслуживающий веб-страницы

Я запускаю сервер Lemp на Raspian OS на Raspberry Pi 4. Nginx запускает обратный прокси через мой вторичный маршрутизатор, который подключен к моему первичному маршрутизатору/модему. Первичный маршрутизатор/модем перенаправляет порты https и http на вторичный маршрутизатор, который затем перенаправляет эти же порты на Raspberry Pi. Raspberry Pi успешно получает сертификаты от Certbot и запускает полностью функционирующий веб-сайт, доступный из публичного Интернета.

Шаг 2a (рабочая настройка): сервер lemp/nginx > Raspberry Pi > Вторичный маршрутизатор > туннель EC2 Openvpn-AS > Основной маршрутизатор с перенаправленными портами > Публичный сервис веб-страниц Amazon Internet Далее я создал экземпляр AWS EC2 OpenVPN-AS и запустил его как сервер. Оттуда я установил openvpn на свой сервер lemp raspberry pi, изменил dns своих доменов так, чтобы они указывали на IP-адрес моего экземпляра OpanVPN-AS вместо моего домашнего IP-адреса, а затем запустил openvpn как клиент на своем сервере lemp, успешно туннелируя мой веб-сервер через экземпляр OpenVPN AWS ​​в публичный Интернет. Эта настройка работает.

До....

Я делаю что-то, чтобы полностью остановить все соединения с сервером через vpn. Проблема в том, что я понятия не имею, что я сделал, чтобы изменить эту когда-то работающую настройку. Я знаю, что обновил pi, и думаю, что я мог изменить внутреннее имя хоста, но это все, что я помню до того, как мой pi стал мертвым сервером.

Во внутренней сети веб-сервер по-прежнему работает, используя локальный IP-адрес при использовании туннеля EC2.

Странность, которую я заметил, заключается в том, что хотя настройка туннеля AWS остановила работу моего веб-сервера, как только я снова подключаю свой сервер к домашнему маршрутизатору без туннера и перенаправляю свой DNS обратно на домашний маршрутизатор, сервер снова начинает работать публично. Я просто не могу точно определить, что именно изменилось с тех пор, как мой сервер работал после туннелирования через AWS OVPN, и теперь он не разрешается, тем не менее, каким-то образом разрешается на моем домашнем IP с минимальными изменениями настроек. Единственное, что я действительно меняю при переключении с aws на домашний маршрутизатор, это то, на какой IP указывает DNS доменов, и должен ли туннель vpn быть включен или выключен.

Что касается туннеля Amazon OVPN, он также корректно разрешается, и сервер корректно получает новый IP-адрес Amazon.

Я знаю, как создавать серверы, однако, я буквально супермен-нуб, когда дело доходит до их отладки и выяснения того, где соединение становится плохим. Поэтому мой вопрос...

Может ли кто-нибудь попытаться провести меня через некоторые шаги, чтобы отладить это, и вернуть мой веб-сервер и запустить его через мой экземпляр OpenVPN, используя IP-адрес Amazon? Я не имею ни малейшего представления, с чего начать, кроме моих успешных пингов через туннель Amazon, а также здорового вида traceroute.

Мои порты EC2 открыты на 443 и 80, и я даже пробовал отключить все брандмауэры, но безрезультатно.

Буду признателен за любые советы, подсказки, пошаговые руководства или инструкции для новичков, которые помогут мне отладить эту проблему и определить, где именно пропадает соединение!

решение1

Подтверждают ли журналы VPN, что туннель действительно работает?

Вы говорите, что можете успешно выполнить traceroute на публичные IP-адреса. Можете ли вы сделать ручное подключение с помощью telnet? например: если ваш хост-ip 123.456.789.123: telnet 123.456.789.123 80

Вы должны получить ответ вроде:

Попытка 123.456.789.123... Подключено кwww.example.com. Экранирующий символ — '^]'.

Если это сработает, вы можете протестировать сервер с помощью: GET /index.htm HTTP/1.1 host: 123.456.789.123 <перевод строки - нажмите Enter дважды>

Сервер должен ответить страницей индекса html: HTTP/1.1 200 OK Дата: ...и т.д.

Связанный контент