Amazon-Web-Services

無法通過 TCP 連接到 EC2

  • April 23, 2020

我的 Ubuntu 19.04 EC2 實例具有安全組,其入站和未綁定規則設置為所有協議、所有埠和0.0.0.0/0IP 範圍。

我可以使用 SSH 在埠 22 上連接到它,在埠 80 上使用 http 連接到它,使用 Windows Test-NetConnection。我在 VM 上執行一個應用程序,它偵聽埠 5000,但我無法從本地電腦連接到它。

多虧了這個答案,我執行了一個可測試的程序,該程序在我的 VM 上的埠 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-NetConnectionInvoke-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 介面上偵聽,並且任何來自外部的連接都不會t 正在監聽,因此它只會重置連接,這就是您所看到的。

相反,您可以刪除 nc 命令上的 localhost 條目,它將綁定到所有介面,此時它應該在外部工作。

例如:

nc -4 -k -l -v 5000

引用自:https://serverfault.com/questions/1013654