プログラムが実行時に使用しているポートを確認するにはどうすればよいですか?
Ubuntu14.04サーバーとプログラム「SMcli」を使用しています。しかし、プログラムは実行のたびに「ストレージシステムへの接続中にネットワークエラーが検出されました」と表示します。しかし、場所を変更する前は、すべてが正常に機能していました。
次に、このプログラムが使用しているポートを知る必要があります。次に、ターゲットがリッスンしているポートを確認できます。
プログラムの起動前と起動後に、netstat -tunap
またはnetstat -tunlp
を使用してみてください。
プログラムがnc
の場合(たとえば)、次のことができます。
Sudo netstat -tulpn | grep "nc" | grep -Po "(?<=:)[^ ]+(?=.*:)"
または
Sudo netstat -tulpn | grep "nc" | tr -s ' ' | cut -d' ' -f4 | cut -d: -f2
ここでは、IPv4のみを検討し、サービスのインスタンスが1つだけ実行されていると想定しています。上記のいずれかを検討する必要がある場合は、名前でサービスを探してから、どちらを使用するかを決定する必要があります。
Sudo netstat -tulpn | grep "nc"
nc
を検索するサービス名に置き換えます。
例:
$ Sudo netstat -tulpn | grep "nc" | tr -s ' ' | cut -d' ' -f4 | cut -d: -f2
4567
$ Sudo netstat -tulpn | grep "nc" | grep -Po "(?<=:)[^ ]+(?=.*:)"
4567