動かざることバグの如し

近づきたいよ 君の理想に

特定のNIC経由で通信できるか確認するコマンド5選

通信できるか確認したい

ネットワーク系の問題を解決するのはプログラミングより厄介で、いわゆる問題の切り出しが肝になる。

ここでは特定のNIC(ここではeth0)とか自身のローカルIPを指定して、そこ経由で通信可能かどうかをチェックできるコマンドをまとめた。

curlを使う方法

必ずといっていいほど入っているので楽かと

curl --interface 192.168.1.12 google.com

curlに関して言えばNICのデバイス名を指定することもできる。

curl --interface eth0 google.com

pingを使う方法

もっと手軽なのはpingかもしれない

ping -I eth0 google.com

が、pingはICMPプロトコルなので、これでうまく行ったからと言って実際の通信は、、というパターンがあるかもしれない。

wgetを使う方法

wget --bind-address 192.168.1.12 google.com

telnetを使う方法

最近はポート確認ぐらいにしか使ってないが、-bインターフェイスを指定できる。

telnet -b 192.168.1.12 google.com 80
Trying 172.217.161.78...
Connected to google.com.
Escape character is '^]'.

もしうまく行かなかった場合は以下のようなメッセージになるはず

telnet -b 192.168.1.12 google.com 80
Trying 172.217.161.78...
telnet: Unable to connect to remote host: Network is unreachable

nmapを使う方法

nmap -S 192.168.1.12 -e eth0 -Pn -sT -p 80 www.google.com

参考リンク