トラブルシューティングでよく使うコマンド<ネットワーク編>

Linux

疎通を確認する

ICMP(インターネットプロトコルと同じネットワーク層プロトコル)で疎通を確認したい。

# ping www.mydomain.com

通信経路を確認したい。

UDP(デフォルト)
# traceroute www.mydomain.com
# traceroute --udp www.mydomain.com

ICMP
# traceroute --icmp www.mydomain.com

TCP
# traceroute --tcp www.mydomain.com

HTTP(アプリケーション層)で疎通を確認したい。

# curl http://www.mydomain.com

HTTPで疎通を確認したい。(代替サーバーの動作検証をする場合など)ホスト名を正引きして得られるサーバーとは違うサーバーに接続したいが、接続先では名前ベースバーチャルホストを使っている。

# curl --header "Host: www.mydomain.com" http://alternate.mydomain.com
# curl -H "Host: www.mydomain.com" http://alternate.mydomain.com


ネットワークインターフェイスを操作する

ネットワークインターフェイスの状態を表示します。

# ifconfig

ネットワークインターフェイスを起動します。

# ifconfig eth0 up

ネットワークインターフェイスを停止します。

# ifconfig eth0 down

ネットワークインターフェイスの状態を確認します。仮想IPアドレスはifconfigでは表示されないため、こちらのコマンドで確認します。

# ip addr show eth0


通信内容を確認する

HTTPヘッダを表示したい。

# curl --head http://www.mydomain.com
# curl -I http://www.mydomain.com
HTTP/1.1 500 Internal Server Error
Server: nginx/1.0.5
Date: Tue, 04 Oct 2011 04:36:03 GMT
Content-Type: text/html; charset=utf-8
Connection: keep-alive
Status: 500 Internal Server Error
Content-Length: 948
Cache-Control: no-cache

HTTPヘッダをファイルに出力したい。

# curl --dump-header ~/header.dump http://www.mydomain.com
# curl -D ~/header.dump http://www.mydomain.com

サーバーとのやり取りを確認したい。

# curl --verbose http://www.mydomain.com
# curl -v http://www.mydomain.com

TCPのダンプを確認したい。

# tcpdump -i eth0 -n vrrp



FreeBSD

listenしているプロセスとポート番号の一覧を表示します。

# sockstat -4l
USER     COMMAND    PID   FD PROTO  LOCAL ADDRESS         FOREIGN ADDRESS      
www      httpd      91040 3  tcp4   *:80                  *:*
zabbix   zabbix_age 90484 4  tcp4   192.168.10.19:10050   *:*
zabbix   zabbix_ser 80498 4  tcp4   192.168.10.19:10051   *:*
nobody   memcached  1032  17 tcp4   *:11211               *:*
nobody   memcached  1032  19 udp4   *:11211               *:*
mysql    mysqld     82881 10 tcp4   *:3306                *:*