
У нас есть сервер в AWS, который пытается подключиться по TCP к приложению на локальном сервере, но не может. Сначала мы подумали, что это проблемы с маршрутизацией/брандмауэром, поэтому мы попытались подключиться к этому приложению с помощью telnet на определенном порту, на котором оно работает, работая tcpdump
на локальном сервере.
Мы (думаем) видим, что получаем запрос на подключение к Telenet, но в ответ ничего не отправляется:
На сервере AWS запускаем:telnet ON_PREMISE_IP PORT
На локальном сервере мы запускаемtcpdump -i INTERFACE -n port PORT
И мы видим:
15:02:49.785795 IP AWS_IP.RANDOM_PORT > ON_PREMISE_IP.int-rcv-cntrl: Flags [S], seq 3124225083, win 62727, options [mss 1350,sackOK,TS val 576158266 ecr 0,nop,wscale 7], length 0
А на стороне AWS мы получаем:
telnet: Unable to connect to remote host: No route to host
Я проверил, что мы прослушиваем этот порт, запустив netstat:
sudo netstat -ltnp | grep PORT
tcp 0 0 ON_PREMISE_IP:PORT 0.0.0.0:* LISTEN PID/java
В дополнение к этому мы можем установить соединение с локального сервера к тому же серверу AWS.
Локальный сервер работает под управлением CentOS 8 с ядром4.18.0-305.19.1.el8_4.x86_64
Я понятия не имею, как продолжить :/
Обновление 1: Я использовал netcat
этот порт вместо нашего собственного приложения Java, но проблема осталась.