Amazon web services Ec2上的Tcp级别信息

Amazon web services Ec2上的Tcp级别信息,amazon-web-services,amazon-ec2,tcp,Amazon Web Services,Amazon Ec2,Tcp,我正在尝试从数据包中获取TCP时间戳,以便在托管在EC2上的应用程序上实现时钟偏移。在我的网络中,我有一个ALB 所以我的问题是如何在我的应用程序中获取TCP级别的数据包信息?由于ALB过滤掉除应用程序级(HTTP)之外的所有OSI层,如果访问TCP数据包的唯一原因是检测时间戳和纠正时钟漂移,我建议将EC2实例配置为使用NTP时间服务器。 也就是说,ALB并没有从网络数据包中“删除”TCP信息。到应用程序的HTTP连接仍然通过IP和TCP传输。如果您需要从应用程序低级别访问网络数据包,我建议您

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


所以我的问题是如何在我的应用程序中获取TCP级别的数据包信息?由于ALB过滤掉除应用程序级(HTTP)之外的所有OSI层,如果访问TCP数据包的唯一原因是检测时间戳和纠正时钟漂移,我建议将EC2实例配置为使用NTP时间服务器。

也就是说,ALB并没有从网络数据包中“删除”TCP信息。到应用程序的HTTP连接仍然通过IP和TCP传输。如果您需要从应用程序低级别访问网络数据包,我建议您查看pCAP库,TCPDUMP和许多其他工具都使用该库来捕获接口上的网络流量

[更新以包括评论]

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

这记录在


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

相关:如果您不使用ALB,您如何获得此信息?我不认为是这样,当我查看来自ALB的应用程序中的http数据包时,Ip发起者总是ALB的Ip,不是客户的ip,这是另一个问题。HTTP请求不会神奇地到达您的实例,它们封装在以太网、IP和TCP数据包中到达。源IP地址当然是负载平衡器本身。如果您想检查原始发件人IP地址,您的应用程序必须查看X-Forwarded-For HTTP标头,如中所述,如果您想更准确地描述您试图实现的目标,您将得到更准确的答案。我只想获得发送到我的ALB的原始数据包,还有什么可以获得原始TCP的吗?谢谢你们两位,@SébastienStormacq请以答案格式提供您的答案,而不是评论,以便我可以将其作为答案进行检查。