GNU/Linux >> Linux の 問題 >  >> Linux

インターネットへの接続に使用しているインターフェイスを確認するにはどうすればよいですか?

route を使用できます デフォルトルートを見つけるには:

$ route
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
192.168.1.0     *               255.255.255.0   U     1      0        0 eth0
link-local      *               255.255.0.0     U     1000   0        0 eth0
default         192.168.1.1     0.0.0.0         UG    0      0        0 eth0

Iface 宛先 default の行の列 どのインターフェイスが使用されているかがわかります。


基本的にこれとこれに基づいている私のバージョン:

route | grep '^default' | grep -o '[^ ]*$'

そして、これは実験的に 、macOS の場合:

route -n get default | grep 'interface:' | grep -o '[^ ]*$'

GNU/Linux システムの場合:

#!/bin/sh

# host we want to "reach"
host=google.com

# get the ip of that host (works with dns and /etc/hosts. In case we get  
# multiple IP addresses, we just want one of them
host_ip=$(getent ahosts "$host" | awk '{print $1; exit}')

# only list the interface used to reach a specific host/IP. We only want the part
# between dev and src (use grep for that)
ip route get "$host_ip" | grep -Po '(?<=(dev )).*(?= src| proto)'

Linux
  1. Linux – LinuxでIptablesを使用して、LAN上の特定のユーザーのインターネットアクセスを制限する方法は?

  2. LinuxでMimeタイプのアプリケーションを見つける方法は?

  3. Sambaに接続するためのドメインを確認する方法は?

  1. Linuxで使用しているシェルを見つける方法

  2. どの Wi-Fi ドライバーがインストールされているかを調べる方法は?

  3. POSIX シグナルの発信元を見つける方法

  1. コンソールで大きなファイルをチェックする方法

  2. 特定のプロセスの .pid ファイルを見つける方法

  3. Linux VPS の仮想化タイプを調べる方法は?