私のパブリックインターフェイスが何であるかをどうやって知ることができますか?

私のパブリックインターフェイスが何であるかをどうやって知ることができますか?

パブリックインターフェイスに手動で入力する必要があるアプリケーションを設定しています。実行すると、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

2つのインターフェースがあることがわかりますが、どちらがパブリックインターフェースなのかはまだわかりません。

答え1

「パブリックインタフェース」の正式な定義はありません。最も可能性の高い定義は、パケットがインターネットに送信されたときにパケットが移動する場所です。これはデフォルトパスのインターフェイスになります。 Linuxでは、シェルを介してプログラムで照会できます。

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

ほとんどのUnixバリアントには、routeコマンドラインと出力構文がわずかに異なる可能性があるコマンドがあります。

デフォルトパスは唯一の実行可能な候補ですが、実際に公開される場合もあればそうでない場合もあります。後ろに機械が多いですねネットワークアドレス変換したがって、公開インターフェイスはまったくありません。 NATは、独自のパブリックインターフェイスを介して発信接続を中継します。着信接続はNATデバイスに到達し、NATが特別に設定されていない限り、コンピュータにルーティングされません。

答え2

ほとんどすべての場合、外部インターフェイスにはデフォルトパスがあるため、ほとんどの場合は問題ありません。

ip r | awk '/^default/ {print $5}'

ただし、異なるメトリック、複数のルーティングテーブルを使用する複数の基本パスがあり、ソースまたはポリシーベースのルーティングを実行する場合は、これが十分ではないことを自分で知っておく必要があります。

関連情報