关于Ec2的Tcp级别信息

问题描述 投票:0回答:1

我正在尝试从我的应用程序(在EC2上托管)中获取时钟偏移目的的数据包的TCP时间戳。在我的网络中,我有一个ALB。

所以我的问题是如何在我的应用程序中获取TCP级别的数据包信息?由于ALB过滤掉除应用程序级别(HTTP)之外的所有OSI层

amazon-web-services amazon-ec2 tcp
1个回答
1
投票

如果访问TCP数据包的唯一原因是检测时间戳并纠正时钟漂移,我建议将EC2实例配置为使用NTP时间服务器。 https://aws.amazon.com/blogs/aws/keeping-time-with-amazon-time-sync-service/

话虽这么说,ALB并没有从网络数据包中“删除”TCP信息。与应用程序建立的HTTP连接仍然通过IP和TCP传输。如果您需要从应用程序对网络数据包进行低级访问,我建议您查看TCPDUMP使用的pCAP库以及许多其他工具来捕获接口上的网络流量。

https://www.tcpdump.org/

[更新包括评论]

了解客户端与ALB之间的TCP连接在ALB级别终止非常重要。 ALB创建第二个TCP连接以将HTTP请求转发到您的EC2实例。 ALB不会从TCP / IP中删除信息,它只是创建第二个独立的新连接。通常,您希望从初始TCP连接传播的唯一信息是源IP地址。与大多数负载平衡器和代理一样,ALB从原始连接(从客户端接收的连接)捕获此信息,并将信息嵌入名为X-Forwarded-For的HTTP头中。

这在https://docs.aws.amazon.com/elasticloadbalancing/latest/classic/x-forwarded-headers.html记录

如果您想从原始连接中捕获其他信息,恐怕无法使用ALB。 (但我也会对用例非常好奇,即你想要实现的目标)

© www.soinside.com 2019 - 2024. All rights reserved.