Linux

我怎麼知道什麼介面是我的公共介面?

  • August 5, 2019

我正在設置一個應用程序,它需要我手動輸入一個公共界面。執行sudo route時它給出以下結果:

Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
default         10.55.168.1     0.0.0.0         UG    0      0        0 eth0
10.55.168.0     *               255.255.254.0   U     0      0        0 eth0
192.168.123.0   *               255.255.255.0   U     0      0        0 eth1

我可以看到有兩個介面,但我仍然不確定哪一個是公共介面?

“公共介面”沒有正式的定義。最可能的定義是,如果數據包要發送到 Internet,它就是數據包的去處。那將是具有預設路由的任何介面。在 Linux 上,您可以從 shell 以程式方式查詢它

route -n | awk '$1 == "0.0.0.0" {print $8}'

大多數 Unix 變體都有一個route命令,它的命令行和輸出語法可能有點不同。

雖然預設路線是唯一可行的候選路線,但它實際上可能公開也可能不公開。許多機器都在NAT設備後面,因此它們根本沒有公共介面。NAT 通過自己的公共介面中繼傳出連接;傳入的連接將到達 NAT 設備,並且它們不會被路由到您的電腦,除非 NAT 專門配置為這樣做。

引用自:https://unix.stackexchange.com/questions/237621