Networking

我如何判斷(或證明)我的路由器或 ISP 正在丟棄數據包?

  • April 11, 2022

我有一個由我的 ISP 提供的 Hitron 路由器,我將其配置為將埠轉發到我的 LAN 上的設備。我曾經能夠通過路由器的WAN IP從區域網路上的機器訪問區域網路上的機器。例如

curl https://$(curl icanhazip.com)

事實上,假設我有一台伺服器在路由器後面監聽,就會建立一個 HTTPS 連接。

例子:

client (192.168.0.42) ---> router (192.168.0.1) ---> dns for me.example.com, returns my WAN IP - same thing curl icanhazip.com returns. Example 203.0.113.42
client (source:192.168.0.42, dest:203.0.113.42:443) ---> nothing. Hangs forever. Or until timeout.

這曾經工作得很好。

現在我只能通過我的網關 192.168.0.1 訪問路由器,但這只能直接訪問路由器,而不是它後面的任何機器。如果我想連接到 LAN 上的伺服器,我必須直接使用 IP。

但奇怪的是,如果我沒有連接到我的 wifi——實際上是任何其他網路——那麼我可以連接到我的外部 IP 並且流量被正確轉發。

client(source: 192.0.2.42, dest: 203.0.113.42:443) ---> router ---> web server (192.168.0.42)

是否有可能找出我的數據包在哪裡被丟棄?我四處尋找路由器本身的任何資訊,但沒有骰子。我還在 Twitter 上聯繫了我的 ISP,但他們也沒有太大幫助。我使用了 ping & traceroute - 嘗試連接到路由器的公共 IP 失敗。我還啟動了 wireshark,可以看到 ping 數據包出去和其他流量嘗試,但我對它不夠熟悉,不知道是否有辦法使用它說:“啊,是的,這些數據包肯定是在 X 處掉落”。我還完全禁用了路由器級別的防火牆,以及任何看起來遙不可及的設置(甚至將我的路由器搞砸到必須對其進行硬重置,我認為這是在配置 IP 通路)。

我是否可以驗證數據包是否被我的路由器丟棄,或者在 ISP 級別被丟棄?如果是這樣,我該怎麼做?

編輯

為了獲得更多樂趣和興奮,顯然這適用於較低的埠。我不知道確切的範圍是多少,但似乎更高的埠仍然允許連接。

聽起來問題是髮夾 NAT 配置不正確,這是一些 SOHO 路由器自動正確配置的東西,而另一些則需要特定的路由和 NAT 規則。

https://serverfault.com/a/557776

引用自:https://serverfault.com/questions/1097593