如何取得流量路由的網路介面

如何取得流量路由的網路介面

我試圖找出我的流量通過哪個介面路由,並獲取與該介面關聯的本地 IP 位址。這將使我在 VPN 存取被停用(所有透過 wlan0 -> 從該介面讀取 ip)或 vpn 被啟動(所有透過 tun0,取得該介面的 ip)的情況下有所不同。

我知道路線命令,但我真的不知道如何解析它以提取我需要的資訊。

這是我沒有 VPN 的 ip 路由清單:

default via 192.168.26.1 dev wlp0s20f3 proto dhcp metric 600 
169.254.0.0/16 dev wlp0s20f3 scope link metric 1000 
172.17.0.0/16 dev docker0 proto kernel scope link src 172.17.0.1 linkdown 
192.168.26.0/23 dev wlp0s20f3 proto kernel scope link src 192.168.26.254 metric 600 

連接到VPN後

default via 192.168.31.1 dev tun0 proto static metric 50 
default via 192.168.26.1 dev wlp0s20f3 proto dhcp metric 600 
10.0.0.0/8 via 192.168.31.1 dev tun0 proto static metric 50 
13.224.73.0/24 via 192.168.31.1 dev tun0 proto static metric 50 
18.135.151.3 via 192.168.31.1 dev tun0 proto static metric 50 
40.114.41.40 via 192.168.31.1 dev tun0 proto static metric 50 
52.95.0.0/16 via 192.168.31.1 dev tun0 proto static metric 50 
104.18.4.20 via 192.168.31.1 dev tun0 proto static metric 50 
104.18.5.20 via 192.168.31.1 dev tun0 proto static metric 50 
104.18.25.245 via 192.168.31.1 dev tun0 proto static metric 50 
104.27.148.109 via 192.168.31.1 dev tun0 proto static metric 50 
104.27.149.109 via 192.168.31.1 dev tun0 proto static metric 50 
143.204.190.0/24 via 192.168.31.1 dev tun0 proto static metric 50 
149.11.92.90 via 192.168.26.1 dev wlp0s20f3 proto static metric 600 
150.2.20.0/24 via 192.168.31.1 dev tun0 proto static metric 50 
150.2.22.0/24 via 192.168.31.1 dev tun0 proto static metric 50 
150.2.34.0/24 via 192.168.31.1 dev tun0 proto static metric 50 
169.254.0.0/16 dev wlp0s20f3 scope link metric 1000 
172.16.0.0/12 via 192.168.31.1 dev tun0 proto static metric 50 
172.17.0.0/16 dev docker0 proto kernel scope link src 172.17.0.1 linkdown 
192.168.0.0/16 via 192.168.31.1 dev tun0 proto static metric 50 
192.168.26.0/23 dev wlp0s20f3 proto kernel scope link src 192.168.26.254 metric 600 
192.168.26.1 dev wlp0s20f3 proto static scope link metric 600 
192.168.31.0/24 dev tun0 proto kernel scope link src 192.168.31.56 metric 50 

假設最上面的預設路由就是正在使用的路由是否安全?

答案1

尋找這些資料分為兩個部分:首先,確定哪些子網路透過特定介面直接發出;其次,確定通往網際網路的流量的「預設路由」。

(跳到「您的路線」部分,了解我對您的路線輸出的剖析)

在這兩種情況下,我們都需要ip route list輸出,但就我而言,我們將查看我的筆記型電腦(目前沒有 VPN,因為我在家庭網路上):

default via 172.18.0.1 dev wlp59s0 proto dhcp metric 600 
10.10.0.0/16 dev static-local proto kernel scope link src 10.10.0.1 
10.73.252.0/24 dev InternalDHCP proto kernel scope link src 10.73.252.1 
10.74.0.0/24 dev docker0 proto kernel scope link src 10.74.0.1 linkdown 
169.254.0.0/16 dev docker0 scope link metric 1000 linkdown 
172.18.0.0/16 dev wlp59s0 proto kernel scope link src 172.18.2.0 metric 600

正如你所看到的,我的網路上有幾個不同的東西。我有兩個 docker 子網路、另外兩個網路(static-local用於InternalDHCP我的 LXD 容器)、我的無線介面wlp59s0以及頂部的「預設路由」。

讓我們將其分解為各個組成部分。首先查看非預設路由。這將被解讀如下:

  • static-local流向 10.10.0.0/16 (10.10.0.0-10.10.255.255) 的所有流量都直接透過來源 IP 為 10.10.0.1 的網路連結進行。
  • InternalDHCP所有流向 10.73.252.0/24 (10.73.252.0-10.73.252.255) 的流量都直接透過來源為 10.73.252.1 的網路連結進行
  • 流向 10.74.0.0/24 (10.74.0.0-10.74.0.255) 的所有流量都直接透過docker0來源為 10.74.0.1 的網路連結進行。同一網頁連結也接受 的流量169.254.0.0/16,但該連結已離線且無法運作。
  • wlp59s0流向 172.18.0.0/16 (172.18.0.0-172.18.255.255) 的所有流量都直接透過來源 IP 為 172.18.2.0 的網路連結進行。

現在預設路由:

  • wlp59s0與上述其他路由之一不匹配的所有其他流量將透過裝置(這是我的 WiFi 卡)透過網關/路由器位址 172.18.0.1 進行路由。

這就是您剖析ip route list上述輸出的方式。如果您願意,我們可以幫助您剖析您的ip route list輸出,但這就是您閱讀輸出的方式。


您的路線

這是我對您的路由的剖析,無論您的 VPN 連線還是未連線。

首先,當您未使用 VPN 時:

  • 流向 192.168.26.0/23 (192.168.26.0-192.168.27.255) 的流量直接透過 wlp0s20f3 (wifi) 介面連結發出。這包括直接存取 192.168.26.1(預設路由)
  • 到 149.11.92.90 的流量直接透過 182.168.26.1 透過您的 wifi 介面連結發出。
  • 流向 172.17.0.0/16 (172.17.0.0-172.17.255.255) 的流量直接透過來源 IP 位址為 172.17.0.1 的 docker0 網路連結傳輸。
  • 您的網路連結出現問題,因此 169.254.0.0/16 (169.254.0.0-169.254.255.255) 透過 WiFi 裝置連結出去。
  • 對於任何其他子網路指定,當您未使用 VPN 時,您的流量將透過網關 IP 192.168.26.1(您的路由器)透過 WiFi 介面流出

現在,當您使用 VPN 時,它會為您的表中添加大量毫無意義的路由,但我們可以將它們壓縮為一種評估規則的簡單方法。請注意,先前的非 VPN 連線規則仍然適用:

  • 連接到 VPN 時,先前連結規則(包括您不在 VPN 上時的規則)未處理的所有流量都將透過隧道上的 192.168.31.1 透過 tun0 裝置和 VPN 連結進行路由。因此,所有到 Internet 的流量(除了上面指定的連結位址之外)都將首先通過 VPN 隧道。如果 VPN 隧道連結發生故障且流量無法通過該隧道,它將回退到使用標準 WiFi 連線(但是,只有當 VPN 隧道發生故障且不重新連線時才會發生這種情況,因此該tun0介面將消失)

  • 您的系統和 VPN 端點之間的流量透過預設 WiFi 連結到達遠端 VPN 伺服器。 (這是連接到 VPN 伺服器的「預設」行為,它將使用您的預設 wifi 連結)。

相關內容