
複数のインターフェイスにいるときにルータのアドレスが何であるかをどうやって知ることができますか? netstat -rnを使用すると、ルーターアドレスであるデフォルトインターフェイスのゲートウェイを取得できることがわかります。しかし、他のインターフェイスはどうですか?
私の場合、異なるルータのeth0とwlan0にあり、OSはデフォルトでeth0を選択します(wlan0のゲートウェイが見つかりません)、インターフェイスのルータアドレスを照会する一般的な方法はありますか? ?
$ netstat -rn
Kernel IP routing table
Destination Gateway Genmask Flags MSS Window irtt Iface
0.0.0.0 192.168.1.1 0.0.0.0 UG 0 0 0 eth0
169.254.0.0 0.0.0.0 255.255.0.0 U 0 0 0 wlan0
192.168.1.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0
192.168.2.0 0.0.0.0 255.255.255.0 U 0 0 0 wlan0
$ ifconfig
eth0 Link encap:Ethernet HWaddr b4:b5:2f:32:f3:22
inet addr:192.168.1.132 Bcast:192.168.1.255 Mask:255.255.255.0
inet6 addr: fe80::b6b5:2fff:fe32:f322/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:22 errors:0 dropped:0 overruns:0 frame:0
TX packets:53 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:3035 (3.0 KB) TX bytes:9857 (9.8 KB)
Interrupt:17 Memory:d4400000-d4420000
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNING MTU:65536 Metric:1
RX packets:569 errors:0 dropped:0 overruns:0 frame:0
TX packets:569 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:53950 (53.9 KB) TX bytes:53950 (53.9 KB)
wlan0 Link encap:Ethernet HWaddr 60:67:20:00:56:6c
inet addr:192.168.2.115 Bcast:192.168.2.255 Mask:255.255.255.0
inet6 addr: fe80::6267:20ff:fe00:566c/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:8152 errors:0 dropped:0 overruns:0 frame:0
TX packets:4030 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:6316155 (6.3 MB) TX bytes:574275 (574.2 KB)
答え1
私の考えでは、あなたはこのip route
コマンドが欲しいと思います。 2つのイーサネットカード「enp3s0」と「enp3s8」を持つ私のサーバーでこれを呼び出すと、次のようip route
な結果が得られます。
1001 % ip route
default via 10.0.0.1 dev enp3s8
10.0.0.0/24 dev enp3s8 proto kernel scope link src 10.0.0.3
192.168.1.0/24 dev enp3s0 proto kernel scope link src 192.168.1.148
これにより、すべてのパスが表示されます。次のように特定のデバイス名へのパスを取得できるようです。
[root@splunge ~]# ip route list dev enp3s8
default via 10.0.0.1
10.0.0.0/24 proto kernel scope link src 10.0.0.3
「デフォルトのパス」行には、ルーターのIPアドレスが表示されます。
すべてがArch Linuxボックスにあります。 ip
はパッケージの一部iproute2
です/usr/bin/ip
。以前のRHELシステムでは、/sbin/ip
どのパッケージから来たのかわかりません。
答え2
traceroute
使用するデバイスを使用して指定する-i
と、次のホップはそのデバイスに接続されているルーターになります。
答え3
私が見つけた最良の方法は/var/lib/dhcp/dhclient.(interface).leasesにあるdhcp設定ファイルを印刷し、そこからルータ定義を見つけることです。