0.概要
アプリが起動しない時、セキュリティソフトや権限の問題の場合もあるが、
ネットワーク系アプリではポートが既に他のアプリで使用されている事が原因の場合がある。
(例としては、VMwareが443ポートを使っているなど。)
このような場合はnetstatで調べる事ができる。
1. Windows
netstat -oオプションでPIDがわかる。
>netstat -ano
アクティブな接続
プロトコル ローカル アドレス 外部アドレス 状態 PID
TCP 0.0.0.0:443 0.0.0.0:0 LISTENING 7976
tasklistコマンドでPIDに該当するプロセスがわかるのでアプリの設定を変える等で対処する。
C:\>tasklist /fi "PID eq 7976"
イメージ名 PID セッション名 セッション# メモリ使用量
========================= ======== ================ =========== ============
vmware-hostd.exe 7976 Services 0 10,780 K
2. Linux
netstat -pオプションでPIDとプロセス名がわかる。
# netstat -anp | grep 443
tcp 0 0 0.0.0.0:443 0.0.0.0:* LISTEN 2281/(プロセス名)
※ 例はUbuntu。ディストリビューションによる差異は未確認。
捕捉:sockstat
netstatにPIDを出力するオプションが無いOS(BSD系など)ではsockstatでポートとプロセスの紐づけを確認できる
] sockstat -n
USER COMMAND PID FD PROTO LOCAL ADDRESS FOREIGN ADDRESS
root dhclient 148 4 udp *.68 *.*
root syslogd 208 3 dgram /var/run/log -
root smbd 370 10 dgram /usr/pkg/lib/samba/private/msg.sock/370 -
root smbd 370 34 dgram - /var/run/log
root smbd 370 38 tcp6 *.445 *.*
root smbd 370 39 tcp6 *.139 *.*
root smbd 370 40 tcp *.445 *.*
root smbd 370 41 tcp *.139 *.*
root sshd 401 3 tcp6 *.22 *.*
root sshd 401 4 tcp *.22 *.*