【问题标题】:Diagnosing tcp communication along a route沿路由诊断 tcp 通信
【发布时间】:2013-05-22 22:19:54
【问题描述】:

通过我的家庭 DSL 网络,我无法再访问特定网站(例如 www.example.com)。 使用wireshark和其他工具,我观察到以下属性:

  1. 当请求被发送到站点的 80 端口时,原始 TCP SYN 没有得到 SYN/ACK 应答
  2. 这适用于所有平台(Windows、iOS)
  3. 网络服务器 (www.example.com) 会在请求来自另一个 IP 时做出响应(例如,从我的工作场所,网站工作正常)
  4. 家庭网络可以访问网络上的所有其他网站(因此家庭网络可以正常工作,但该站点除外)
  5. 托管在同一 IP 的其他网站也没有响应
  6. 通过其他端口(例如 FTP、端口 21)与服务器 IP 进行通信
  7. Ping 和 tracert 成功
  8. 高级服务器日志中未记录任何请求

分析:以上让我相信,一定有防火墙过滤掉路由中的请求,但只过滤端口 80 上的请求。我看到了几个可以设置防火墙的选项

  1. 在家里的调制解调器中
  2. 由我的 ISP 在他们的路径上实施(他们是否出于某种原因阻止了该站点)?
  3. 在服务器上(由于某种原因它没有为我的公共 IP 提供服务)

正如您所料,ISP 和服务器托管公司各自将过错归咎于对方。我想调查一下,问题出在哪里。

问题:我如何才能诊断到原始 SYN 消息的去向?

  • 调制解调器被阻塞了吗?
  • 它到达服务器了吗?
  • 服务器是否应答 (SYN/ACK),并且应答被阻止/转储?

【问题讨论】:

    标签: apache networking tcp firewall


    【解决方案1】:

    首先回答您的问题:

    1) MODEM 不会阻塞、过滤等,路由器会。如果您有路由器,并且可以访问该接口,您将是确定您的设备是否正在过滤的人。

    2) 只有服务器的管理员才能告诉您这些信息。

    3) 见上文。

    现在... 作为一个知道有多少服务器的维护人员,我不时阻止来自特定目的地的特定端口。例如,如果我看到一个“已知网站垃圾邮件发送者”(通过 Spamhaus、Shadowserver 等),我有应用程序来重新编写防火墙规则。例如,如果 $BAD_USER 尝试访问 PORT80 则 ipfw(从该端口对他进行防火墙)。因此,您的 IP 或整个 IP 空间 (CIDR) 有可能被服务器列入黑名单。

    如果您使用的是 Linux 或 BSD,您可以尝试 tcptraceroute:

    tcptraceroute www.this-site.com 80
    

    可能告诉您正在发生的事情。不管人们怎么想,任意阻止任何东西对 ISP 来说都是不符合最佳利益的。 (至少在美国不是)。阻塞/过滤会给必须处理这些规则的设备带来负担(检查此数据包是否在规则 1 中,不,规则 2,不)。 ISP 设备(核心)的目的是在它进来的时候尽快传递出去。而不是“为 N 数量的用户坐下来处理这个数据包”

    【讨论】:

    • 谢谢,我会在 linux 上尝试 tcptraceroute 并报告。
    • 我试过 tcptraceroute,除了路由上的第二个节点外,它只给了我“* * *”每个节点的答案。我的理解是否正确,这只探测沿途的路由器是否也响应端口 80?如果是这样的话,它可能无论如何都不是一个有趣的信息。
    • * * * 可能意味着很多事情:a) 没有可用的主机名(无法执行 nslookup(反向名称))b) 防火墙/过滤意味着只要您到达目的地就没有什么意义。如果我不得不猜测,端点(您尝试连接的服务器)有某种形式的过滤。
    • (来自 OP)连接现在又可以正常工作了,就在它断开一个月后。我猜这是一个阻止流量的动态过滤器。我(在调制解调器/路由器上)、ISP 和服务器托管都没有做任何改变。接受你的回答,虽然它并没有真正解决我的问题。
    猜你喜欢
    • 2011-12-24
    • 2010-09-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-07-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多