我該如何判斷(或證明)資料包被我的路由器或 ISP 丟棄?

我該如何判斷(或證明)資料包被我的路由器或 ISP 丟棄?

我有一個由 ISP 提供的 Hitron 路由器,並將其配置為將連接埠轉送到 LAN 上的裝置。我用過的能夠從 LAN 上的機器透過路由器的 WAN IP 存取 LAN 上的機器。例如

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 層級丟棄?如果是這樣,我該怎麼做?

編輯

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

答案1

聽起來問題是髮夾 NAT 設定不正確,這是某些 SOHO 路由器自動正確配置的內容,而在其他路由器中則需要特定的路由和 NAT 規則。

https://serverfault.com/a/557776

相關內容