
Как найти сетевой интерфейс, подключенный к Интернету?
Эту машину обычно можно подключить через {eth0,eth1,usb0,wlan0}
. Лучшее, что я смог придумать, это:
sudo route | grep default | awk '{print $NF}'
Обновлять: Мое любимое решение:
$(for i in `ip r`; do echo $i; done | grep -A 1 dev | tail -n1)
решение1
Я думаю, что будет лучше использовать iproute2 вместо старого и плохо работающего маршрута.
ip r | sed -n '/^de/s/.*dev //p'
решение2
route -n | awk '$1 ~ /0.0.0.0/ {print $NF}'
предоставит вам интерфейс со шлюзом по умолчанию, который, скорее всего, является интерфейсом, через который вы выходите в Интернет.