Networking

Telnet 連接到伺服器但無法傳輸數據

  • March 12, 2021

我們的客戶端有一個伺服器,我們的 Web 應用程序在埠 443 和 2000 上執行。我們的客戶端有兩組 IP 地址。一組用於公司大樓中使用的電腦。這些電腦可以瀏覽這兩個 Web 應用程序。另一組 IP 地址用於通過 VPN 連接進行遠端連接的使用者。這些使用者可以瀏覽在埠 443 上提供的 Web 應用程序,但無法瀏覽在埠 2000 上提供的 Web 應用程序。他們的瀏覽器出現超時錯誤。

我們知道這不是軟體問題,因為公司大樓中的使用者可以毫無問題地使用這兩個應用程序。他們還允許來自兩個 IP 地址組的兩個埠的流量。當有人使用建築物內的電腦連接到 Web 應用程序時,防火牆軟體會顯示所有請求都已成功處理。但是,當他們嘗試通過 VPN 連接連接到埠 2000 時,請求被發送到伺服器但使用者無法得到響應。防火牆軟體顯示“不完整”文本。請注意,僅當通過 VPN 連接請求埠 2000 時才會出現此問題。如果通過 VPN 請求埠 443,則沒有問題。

我們在伺服器的 2000 埠上設置了一個 TCP 回顯伺服器,並嘗試通過 VPN 連接通過 telnet 命令連接到 2000 埠。我們看到它可以連接。但是,不會回顯通過 telnet 發送的文本。如果我們在公司大樓內的電腦上嘗試相同的操作,我們可以通過 telnet 連接到伺服器,並且還會回顯通過 telnet 發送的文本。

我們還在伺服器上執行 tcpdump 命令來監聽埠 2000 上的 TCP 包。當我們通過 telnet 連接到伺服器時,我們可以看到來自兩個 IP 組的 TCP 活動。但是,當我們通過 telnet 發送文本時,只有從公司大樓內的電腦發送的文本在 tcpdump 輸出中可見。從 VPN 使用者的電腦發送的消息不會在 tcpdump 上創建 TCP 活動。

我們花了很多時間,無法弄清楚問題所在。任何幫助表示讚賞。

在我對 Internet 的研究中,我發現埠 2000 用於 Cisco 的 VOIP 協議 SCCP(閱讀 Skinny)。似乎某些 ISP、VPN 軟體和 Cisco 防火牆可以丟棄此協議的數據包。我們將埠更改為另一個埠,問題已解決。

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