通信できるか確認したい
ネットワーク系の問題を解決するのはプログラミングより厄介で、いわゆる問題の切り出しが肝になる。
ここでは特定の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