我的 Ubuntu 19.04 EC2 实例具有安全组,其中入站和非绑定规则设置为所有协议、所有端口和0.0.0.0/0
IP 范围。
我可以使用 Windows 通过端口 22 上的 SSH 和端口 80 上的 http 连接到它Test-NetConnection
。我在 VM 上运行一个侦听端口 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: */*
但是,从我的本地计算机向该计算机和端口 5000 进行呼叫Test-NetConnection
或Invoke-WebRequest
操作会立即失败(没有超时)。侦听过程也不会打印它接收到任何新连接。
(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已被替换。
我错过了什么?
答案1
我认为您在测试中遇到的问题是,在您设置的用于监听连接的 netcat (nc) 命令中,您指定了 localhost,这意味着它将只监听该 localhost 接口,它不会监听任何来自外部的连接,所以它只会重置连接,这就是您所看到的。
相反,您可以删除 nc 命令上的 localhost 条目,它将绑定到所有接口,此时它应该在外部工作。
例如:
nc -4 -k -l -v 5000