我想通过 wireshark 捕获主机的网络流量,并需要从数据包中获取源和目标 IP 地址。我面临的问题是,我位于代理服务器后面,并且我获取代理的 IP 作为目标 IP。但是,我想获取通过我的主机访问的实际服务器的 IP 地址。
我是否可以获取实际的目标 IP 而不是代理的 IP?
答案1
感谢您的提问。假设您想了解如何获取通过代理服务器交换数据包的目标主机的信息,以下是解释。
HTTP 客户端通常使用 URL 的主机名部分进行 DNS 查找,以连接到请求的主机。然后,它会发送 HTTP GET 请求以获取 URL 的其余部分。主机名也包含在该请求中。现在,如果您位于代理服务器后面,则 HTTP GET 请求首先发送到此代理服务器,然后从那里转发到目标主机。收到的任何响应都采用相同的反向路径。
现在要捕获和过滤该主机的数据包,请键入
http.host == 'www.example.com'
在显示过滤框中。然后,在标题为“信息”的字段中,您可以找出属于示例.com。双击此数据包即可获取其详细信息。请注意,您不会在目标地址字段中看到主机的 IP 地址,而是它代表您正在使用的代理服务器及其地理位置。
因此,您需要查看 GET 请求的 TCP 连接和主机名部分。这些请求被向前发送,响应以相同的方式返回。因此,您的端点跟踪已从网络级别提升到会话级别。
如果你想确定主机的 IP 地址,你可以简单地使用在线工具,例如斯普利特或者位置,前提是你知道它的域名。
这里,我展示了从主机 example.com 捕获的数据包示例。请注意,图像中显示的源地址值 (10.3.2.65) 是我的宿舍房间 IP,而显示的目标地址值 (202.141.80.24) 是我所在学院的代理服务器。我过滤了与主机 example.com 交换的所有 HTTP 数据包
但是如果您想直接通过 Wireshark 查找主机的 IP 地址,那么正如评论中提到的那样,目前还不可能。