TCP 连接在同一个子网内的工作方式是否不同?

TCP 连接在同一个子网内的工作方式是否不同?

在尝试使 Java RMI 运行时,我遇到了一些令我困惑的网络行为。

我使用 netcat 连接到本地机器:

[my_machine]$ nc -w 1 192.168.0.100 60000 && echo success
success

我尝试对我的服务器执行同样的事情:

[my_machine]$ nc -w 1 my-servers-ip 60000 && echo success

除非我明确监听服务器套接字,否则这是行不通的:

[amazon_ec2]$ nc -l 60000 

[my_machine]$ nc -w 1 my-servers-ip 60000 && echo success
success

对于失败的版本,SYN数据包将收到一个RST, ACK响应。

我对此不太了解,目前我只有问题中提到的那些荒诞理论。有什么想法吗?

可能有用的细节:

Local Machine (192.168.0.100) - Macbook

Remote Machine (Amazon EC2) - Amazon Linux AMI 2012.03 
    Security Group Settings:
        22 (SSH)        0.0.0.0/0
        1099            0.0.0.0/0
        49152-65535     0.0.0.0/0
    "iptables -L" shows no rules set 

答案1

不是,对于本地或远程(路由)服务器,TCP 连接的工作方式相同。三次握手是相同的。

您可以检查

  • 某些服务实际上正在监听端口 60000(netstat
  • 该服务未配置为以某种方式拒绝非本地客户端
  • 没有防火墙阻止流量

相关内容