Linux
我怎麼知道什麼介面是我的公共介面?
我正在設置一個應用程序,它需要我手動輸入一個公共界面。執行
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 專門配置為這樣做。