如何透過給定的網路連線引導特定流量?

如何透過給定的網路連線引導特定流量?

希望我的措詞正確、恰當!

使用 Windows 7 Pro SP1

在我的筆記型電腦上,我必須同時使用有線和無線連接 - 某些流量(例如訪問特定係統)我只能透過有線連接存取 - 而其他流量則只能透過無線連接存取。

兩者都是公司現場聯繫 - 他們只是不太團結。

目前,我必須整天在它們之間切換 - 如果我將兩者都打開,則可能會嘗試使用哪些連接視窗(但通常是有線的),因此我拔掉/禁用了我不想要的連接視窗然後當我需要的時候再改回來。

是否有更好的方法將特定應用程式/協定定向到特定連接?

或者,如果這不可能,可以重新導向特定的 URL(這至少可以減少切換頻率!)

編輯新增 IPCONFIG 資訊 - 顯示使用相同子網路的兩個連接

Wireless LAN adapter Wireless Network Connection:

   Connection-specific DNS Suffix  . :
   Link-local IPv6 Address . . . . . : fe80::f1ff:5ffe:6093:ebf%13
   IPv4 Address. . . . . . . . . . . : 10.240.54.12
   Subnet Mask . . . . . . . . . . . : 255.255.255.0
   Default Gateway . . . . . . . . . : 10.240.54.254

Ethernet adapter Local Area Connection:

   Connection-specific DNS Suffix  . : domain.local
   Link-local IPv6 Address . . . . . : fe80::9088:177:1936:10ac%11
   IPv4 Address. . . . . . . . . . . : 172.31.161.83
   Subnet Mask . . . . . . . . . . . : 255.255.255.0
   Default Gateway . . . . . . . . . : 172.31.161.1

答案1

Windows 7 網路卡優先權配置

所有現代 Windows 版本都提供了使用有點令人困惑的命名來確定網路介面優先權的能力Network Interface Metric。對於大多數家庭/簡單網絡,當沒有其他標準明確強制決定時,此設定將最終決定使用哪個 NIC;基本上,當兩個NIC 從網路堆疊的角度來看同樣可行時,例如當兩個NIC 上的目標均可用時,兩個NIC 都具有有效的配置預設網關,兩個NIC 位於同一子網路中,等等。

介面指標

介面指標設定「1」是最高優先權(先使用 NIC)。 Windows 預設提供的自動設定鬆散地基於連線速度;目的是優先考慮高速鏈路而不是低速鏈路。這是處理 WiFi 和有線乙太網路之間效能差異的不完美方法,因為 WiFi 網路上的吞吐量有時可能非常好,但幾乎總是不太可靠且一致。

換句話說,正如您所指出的,在幾乎所有情況下,有線 LAN 連線都應優先於 wifi,並且預設情況下(至少在 win 7 中),但情況並非如此。

至少在開始時避免複雜的配置

您可以調整這些設置,以對哪些網卡用於哪些流量進行非常精細的控制,但我認為這超出了您正在尋找的範圍。您可以這樣配置,例如,如果應使用通常不會獲得優先權的 NIC 來存取某個伺服器/網站/IP 位址範圍,並且兩個 NIC 都可以存取該主機/IP 範圍。進行最小的更改,評估結果,並在必要時再次進行額外的微小更改。如果如上所述,路由是透過介面硬設定的,那麼當只有兩個 NIC 之一可用時,幾乎肯定會遇到問題。

相關配置設定

此外,您還可以調整相關參數“Gateway Metric”,當 2 個或更多 NIC 具有相同閘道時,該參數會優先使用哪個 NIC。有一些證據表明,在某些情況下更改介面指標是不夠的,還必須配置網關指標。如果更改接口指標後沒有看到任何變化,請查看下面的步驟 3 以及底部的鏈接,以了解有關更改網關指標的詳細資訊(相同的命令,不同的參數)。

首先評估介面指標,因此您不必深入研究該設置,但如果需要,它是可用的。為了澄清上面的評論 - 使用我描述的方法,您不需要從任何介面更改/刪除網關;這充其量會迫使您使用靜態 IP,最壞的情況會在有線 LAN 不可用時導致連線問題。

如何修改網路介面指標設定

  1. 開啟管理命令提示符,然後輸入以下命令: netstat -rn或了解更多詳細信息netsh int ip show config
  2. 這將輸出系統中所有網卡的清單。最左邊一列 (netstat) 中的數字是 NIC 介面指標(也稱為優先權)。

  3. 您希望將有線 NIC 設定為低於無線 NIC 的指標。一旦您了解了這些值的設置,請將有線 NIC 配置為非常低的數字(例如 2),並將 wifi 配置為較高的數字(例如 64)。應用這些設定的語法如下。我對兩張網路卡使用名稱「Wired」和「Wifi」;使用系統中的正確值(步驟 1 的輸出將包含正確的名稱」。

    set interface "Wired" metric=2
    set interface "Wifi" metric=64

如果您發現確實需要修改網關指標,語法為:

 set interface "Wired" gwmetric=2 
 set interface "Wifi" gwmetric=64 

注意 - 我選擇的度量值是任意的。如果您只有兩個NIC,則(理論上)將卡片設定為度量2 和3 與度量2 和64 之間沒有區別。 1。如果是,請不要將任何一個「真實」NIC 設定為一個 - 在某些情況下,這會導致本地流量被傳送到路由器(一個簡單的例子是透過 LAN IP 位址 ping 自己 - 通常會被路由到環回接口- 您可能會無意中更改它)。在ping 的情況下,這幾乎是無關緊要的,但許多應用程式使用與LAN IP 位址綁定的本地網路套接字,其目的是使流量永遠不會真正離開PC,在這種情況下,效能下降將是非瑣碎的。

更多資訊:

這裡有幾個關於這個主題的連結;這個顯示如何使用 GUI 調整這些設置,以及這個提供了偶爾需要修改介面和網關指標的軼事證據。我之前不必調整網關指標設置,但我在幾分鐘的谷歌搜尋中多次遇到這個主題,我想確保這個答案中涵蓋了它。

評估設定更改的有效性:

  1. 查看正在使用哪個 NIC 的一個簡單方法是使用 traceroute 命令並查看它從哪個 NIC 發出(目標本地 LAN 主機以及各種互聯網主機,以確保 LAN 和 WAN 之間的 NIC 使用分佈一致)。
  2. 根據您想要深入了解的程度,取得有關 NIC 使用情況的真實統計資料的理想方法是使用資料包擷取程式(例如wireshark)。
  3. 最簡單的方法是查看每個網路介面狀態的資料包傳輸計數,並查看兩個網路卡之間的相對速率。

如果情況確實很糟糕,請動態調整指標設定

在最壞的情況下,如果品質連接確實整天在有線和無線之間來回波動,那麼編寫一個小腳本來根據當前網路效能調整 NIC 指標值並不困難。簡而言之,您將編寫一個 powershell 腳本或批次文件,對網路連線執行快速測試,評估每個 NIC 的結果,並讓腳本更改指標值以優先考慮具有當前「最佳」效能的 NIC。我不確定連接有多糟糕 - 如果連接嚴重到丟包的程度,您可以透過簡單的 ping 測試來測試 NIC。否則,您可能需要進行下載速度和延遲測試(例如 speedtest.net)。

更新

我有點誤解你的問題了。

如果您可以提供您需要做什麼的具體信息,我可以為您提供有關如何操作的詳細信息。

如果您需要幫助,請嘗試提供盡可能多的細節,因為這裡有大量的可能性,並且問題旨在將其深入到最簡單的方法。

如果這可以在 IP 位址層級處理(這意味著到給定 IP 位址的所有流量都應該從特定介面發出),那麼這將很容易做到。如果它是協議/應用程式/連接埠和/或主機相關的,那麼它會更複雜。

附加問題:

  1. 我們可以在 IP 位址層級過濾它還是特定於應用程式?
  2. 需要使用特定介面的 IP 位址或 IP 位址範圍是多少。如果條件(問題 1)不是 IP 位址,則提供需要使用特定介面的應用程式的詳細資訊。

  3. 問題是如果「選擇」了錯誤的接口,通訊就會完全失敗嗎?這意味著實際上無法透過該介面存取遠端主機?或者使用錯誤的介面是否只會降低效能?

  4. 請執行以下 2 個快速測試,以便我們了解區域網路上的幕後路由配置。我不清楚這些網路之間是否存在路由,所以這將檢查一下。

    A。首先確定有線乙太網路介面的預設閘道是什麼(不在您的範例中)。為了保持一致性,如果您同時擁有 ipv4 和 ipv6,請使用 IPv4 閘道。

    b.斷開有線乙太網路介面(僅保留 wifi),並嘗試 ping 有線乙太網路介面預設閘道。會發生什麼事?

    C。現在重新連接有線乙太網路並斷開 WiFi 適配器。

    d. Ping wifi 介面的預設閘道(在您的問題中為 10.240.54.254),並讓我知道發生了什麼。

解決此問題可能就像添加靜態路由(單一命令)一樣簡單,但我將根據您的回覆提供詳細資訊。

相關內容