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

Не удается подключиться к EC2 через TCP

Мой экземпляр Ubuntu 19.04 EC2 имеет группу безопасности с входящими и несвязанными правилами, установленными для всех протоколов, всех портов и 0.0.0.0/0 Диапазон IP.

Я могу подключиться к нему с помощью SSH на порту 22 и с http на порту 80, используя Windows Test-NetConnection. Я запускаю приложение на виртуальной машине, которая прослушивает порт 5000, но мне не удалось подключиться к нему с локального компьютера.

Благодаря этот ответ Я запускаю тестируемый процесс, который прослушивает порт 5000 на моей виртуальной машине.

ubuntu@ip-172-31-35-82:~$ nc -4 -k -l -v localhost 5000
Listening on [localhost] (family 2, port 5000)

Вызов curl localhost:5000 на другом терминале дает ожидаемый результат

ubuntu@ip-172-31-35-82:~$ nc -4 -k -l -v localhost 5000
Listening on [localhost] (family 2, port 5000)
Connection from localhost 51424 received!
GET / HTTP/1.1
Host: localhost:5000
User-Agent: curl/7.58.0
Accept: */*

Однако делать звонки Test-NetConnection или Invoke-WebRequest с моего локального компьютера на этот компьютер, и порт 5000 сразу выходит из строя (без тайм-аута). Процесс прослушивания также не выводит на печать, что он получил какие-либо новые соединения.

(base) PS C:\Users\Konrad> Test-NetConnection **.**.***.** -port 5000 -v
WARNING: TCP connect to (**.**.***.** : 5000) failed
VERBOSE: **.**.***.**.in-addr.arpa
VERBOSE: **.**.***.**.in-addr.arpa
VERBOSE: Perform operation 'Invoke CimMethod' with following parameters, ''methodName' = QueryIsolationType,'className'
 = MSFT_NetAddressFilter,'namespaceName' = root\standardcimv2'.
VERBOSE: Operation 'Invoke CimMethod' complete.


ComputerName           : **.**.***.**
RemoteAddress          : **.**.***.**
RemotePort             : 5000
InterfaceAlias         : Wi-Fi
SourceAddress          : **.**.***.**
PingSucceeded          : True
PingReplyDetails (RTT) : 42 ms
TcpTestSucceeded       : False

Были заменены настоящие IP.

Что мне не хватает?

Я считаю, что проблема, с которой вы сталкиваетесь при тестировании, заключается в том, что в команде netcat (nc), которую вы настраиваете для прослушивания соединений, которые вы указываете localhost, это означает, что он будет прослушивать только этот интерфейс localhost, и любые подключения, поступающие извне, выиграли. не слушайте, и поэтому он просто сбросит соединение, что вы и видите.

Вместо этого вы можете удалить запись localhost в команде nc, и она будет привязана ко всем интерфейсам, и в этот момент она должна работать извне.

Например:

nc -4 -k -l -v 5000