Linux プロセスが占有するポート番号を表示する 6 つの方法

Linux プロセスが占有するポート番号を表示する 6 つの方法

Linux システム管理者にとって、サービスがポートに正しくバインドされているか、またはポートをリッスンしているかどうかを知ることは非常に重要です。ポート関連の問題に対処する必要がある場合は、この記事が役立つかもしれません。

ポートは、物理ポートやソフトウェア ポートなど、Linux システム上の特定のプロセス間の論理接続の識別子です。 Linux オペレーティング システムはソフトウェアであるため、この記事ではソフトウェア ポートについてのみ説明します。ソフトウェア ポートは常にホストの IP アドレスと関連する通信プロトコルに関連付けられているため、ポートはアプリケーションを区別するために使用されることがよくあります。ネットワークに関わるほとんどのサービスは、着信ネットワーク要求をリッスンするためにソケットを開く必要があり、各サービスは個別のソケットを使用します。

ソケットは、IP アドレス、ソフトウェア ポート、およびプロトコルと組み合わせて使用​​されます。ポート番号は、伝送制御プロトコル (TCP) とユーザー データグラム プロトコル (UDP) の両方に適用されます。TCP と UDP はどちらも、通信に 0 ~ 65535 のポート番号を使用できます。

ポート割り当てのカテゴリは次のとおりです。
0 - 1023: 共通ポートとシステムポート
1024 - 49151: ソフトウェア登録ポート
49152 - 65535: 動的ポートまたはプライベートポート

予約済みポートの詳細については、Linux の /etc/services ファイルを参照してください。

# /etc/services を減らす
# /etc/サービス:
# $Id: services,v 1.55 2013/04/14 ovasik Exp $
#
# ネットワークサービス、インターネットスタイル
# IANA サービス バージョン: 最終更新日 2013-04-10
#
# 現在、IANAのポリシーでは、1つのよく知られた
# TCPとUDPの両方のポート番号。したがって、ほとんどのエントリには2つのエントリがあります
# プロトコルが UDP 操作をサポートしていない場合でも同様です。
# RFC 1700、「割り当てられた番号」(1994年10月)から更新されました。すべてのポートが
# は、より一般的なものだけが含まれています。
#
# 最新のIANAポート割り当ては以下から取得できます。
# http://www.iana.org/assignments/port-numbers
# 既知のポートは 0 から 1023 までです。
# 登録ポートは1024から49151までです
# ダイナミックポートおよび/またはプライベートポートは49152から65535までです
#
# 各行は 1 つのサービスを表し、次の形式になります。
#
# サービス名 ポート/プロトコル [エイリアス ...] [# コメント]
tcpmux 1/tcp # TCP ポート サービス マルチプレクサ
tcpmux 1/udp # TCP ポート サービス マルチプレクサ
rje 5/tcp # リモートジョブエントリ
rje 5/udp # リモートジョブエントリ
エコー7/tcp
エコー7/udp
破棄 9/tcp シンク null
破棄 9/udp シンク null
systat 11/tcp ユーザー
systat 11/udp ユーザー
昼間 13/tcp
昼間 13/udp
qotd 17/tcp 引用
qotd 17/udp 引用
msp 18/tcp # メッセージ送信プロトコル (履歴)
msp 18/udp # メッセージ送信プロトコル (履歴)
チャージン 19/tcp ttytst ソース
チャージン 19/udp ttytst ソース
ftpデータ 20/tcp
ftpデータ 20/udp
# 21 は ftp に登録されていますが、fsp でも使用されます
FTP 21/TCP
ftp 21/udp fsp fspd
ssh 22/tcp # セキュア シェル (SSH) プロトコル
ssh 22/udp # セキュア シェル (SSH) プロトコル
テルネット 23/tcp
テルネット 23/udp
# 24 - プライベートメールシステム
lmtp 24/tcp # LMTP メール配信
lmtp 24/udp # LMTP メール配信

ポート情報を表示するには、次の 6 つの方法を使用できます。

ss: ソケット統計をダンプするために使用できます。

netstat: 開いているソケットのリストを表示できます。

lsof: 開いているファイルを一覧表示できます。

fuser: ファイルを開いているプロセスのプロセス ID を一覧表示できます。

nmap: ネットワーク検出ツールおよびポート スキャナーです。

systemctl: systemd システムの制御マネージャーおよびサービス マネージャーです。

次に、sshd デーモンが使用するポート番号を確認します。

方法1: ssコマンドを使用する
ss は通常、ソケット統計をダンプするために使用されます。 netstat と同様の出力を生成しますが、他のツールよりも多くの TCP 情報とステータス情報を表示します。

また、PACKET、TCP、UDP、DCCP、RAW、Unix ドメインなど、あらゆる種類のソケット統計を表示することもできます。

# ss -tnlp | grep ssh
LISTEN 0 128 *:22 *:* ユーザー:(("sshd",pid=997,fd=3))
LISTEN 0 128 :::22 :::* ユーザー:(("sshd",pid=997,fd=4))

ポート番号を使用して確認することもできます。

# ss -tnlp | grep ":22"
LISTEN 0 128 *:22 *:* ユーザー:(("sshd",pid=997,fd=3))
LISTEN 0 128 :::22 :::* ユーザー:(("sshd",pid=997,fd=4))

方法2: netstatコマンドを使用する

netstat は、ネットワーク接続、ルーティング テーブル、インターフェイス統計、マスカレード接続、およびマルチキャスト メンバーシップを表示できます。

デフォルトでは、netstat は開いているソケットを一覧表示します。アドレス ファミリを指定しない場合は、設定されているすべてのアドレス ファミリのアクティブなソケットが表示されます。しかし、netstat は時代遅れなので、代わりに ss が使用されるのが一般的です。

# netstat -tnlp | grep ssh
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 997/sshd
tcp6 0 0 :::22 :::* 997/sshdをリッスン

ポート番号を使用して確認することもできます。

# netstat -tnlp | grep ":22"
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 1208/sshd
tcp6 0 0 :::22 :::* 1208/sshdを聴く

方法3: lsofコマンドを使用する

lsof は、開いているファイルを一覧表示したり、システム上のプロセスによって開かれたファイルに関する情報を一覧表示したりできます。

# lsof -i -P | grep ssh
コマンド PID ユーザー FD タイプ デバイス サイズ/オフ ノード名
sshd 11584 ルート 3u IPv4 27625 0t0 TCP *:22 (LISTEN)
sshd 11584 ルート 4u IPv6 27627 0t0 TCP *:22 (LISTEN)
sshd 11592 ルート 3u IPv4 27744 0t0 TCP vps.2daygeek.com:ssh->103.5.134.167:49902 (確立済み)

ポート番号を使用して確認することもできます。

# lsof -i tcp:22
コマンド PID ユーザー FD タイプ デバイス サイズ/オフ ノード名
sshd 1208 ルート 3u IPv4 20919 0t0 TCP *:ssh (LISTEN)
sshd 1208 ルート 4u IPv6 20921 0t0 TCP *:ssh (LISTEN)
sshd 11592 ルート 3u IPv4 27744 0t0 TCP vps.2daygeek.com:ssh->103.5.134.167:49902 (確立済み)

方法4: fuserコマンドを使用する

fuser ツールは、ローカル システム上でファイルを開いているプロセスのプロセス ID を標準出力に表示します。

# フューザー -v 22/tcp
 ユーザー PID アクセス コマンド
22/tcp: ルート 1208 F....sshd
 ルート 12388 F....sshd
 ルート 49339 F....sshd

方法5: nmapコマンドを使用する

nmap (「Network Mapper」) は、ネットワーク検出およびセキュリティ監査用のオープン ソース ツールです。もともとは大規模ネットワークの高速スキャン用に設計されましたが、単一のホストのスキャンにも適しています。

nmap は、生の IP パケットを使用して、ネットワーク上で利用可能なホスト、それらのホストのサービス (アプリケーション名とバージョンを含む)、ホストが実行しているオペレーティング システム (OS バージョンなどの情報を含む)、使用中のパケット フィルターまたはファイアウォールの種類、およびその他の多くの情報を決定します。

# nmap -sV -p 22 ローカルホスト
2018-09-23 12:36 IST に Nmap 6.40 ( http://nmap.org ) を起動
ローカルホスト (127.0.0.1) の Nmap スキャン レポート
ホストは稼働しています (遅延 0.000089 秒)。
ローカルホストのその他のアドレス(スキャンされていません): 127.0.0.1
港湾国サービスバージョン
22/tcp オープン ssh OpenSSH 7.4 (プロトコル 2.0)
サービス検出が実行されました。誤った結果がある場合は、http://nmap.org/submit/ に報告してください。
Nmap 完了: 1 つの IP アドレス (1 つのホストが稼働中) を 0.44 秒でスキャンしました

方法6: systemctlコマンドを使用する

systemctl は、systemd システムの制御マネージャーおよびサービス マネージャーです。これは古い SysV init システム管理に代わるもので、現在ほとんどの最新の Linux オペレーティング システムで使用されています。

# systemctl ステータス sshd
● sshd.service – OpenSSH サーバーデーモン
 ロード済み: ロード済み (/usr/lib/systemd/system/sshd.service; 有効; ベンダープリセット: 有効)
 アクティブ: 2018-09-23 02:08:56 EDT (日) からアクティブ (実行中)、6 時間 11 分前
 ドキュメント: man:sshd(8)
 man:sshd_config(5)
 メイン PID: 11584 (sshd)
 Cグループ: /system.slice/sshd.service
 └─11584 /usr/sbin/sshd -D
9月23日 02:08:56 vps.2daygeek.com systemd[1]: OpenSSHサーバーデーモンを起動しています...
9月23日 02:08:56 vps.2daygeek.com sshd[11584]: サーバーは0.0.0.0ポート22でリッスンしています。
9月23日 02:08:56 vps.2daygeek.com sshd[11584]: サーバーはポート22でリッスンしています。
9月23日 02:08:56 vps.2daygeek.com systemd[1]: OpenSSHサーバーデーモンを起動しました。
9月23日 02:09:15 vps.2daygeek.com sshd[11589]: 103.5.134.167 ポート49899 によって接続が閉じられました [preauth]
9月23日 02:09:41 vps.2daygeek.com sshd[11592]: 103.5.134.167 ポート 49902 ssh2 から root のパスワードを受け入れました

上記の出力は、sshd サービスが前回開始されたときの ssh サービスのリスニング ポートを示しています。しかし、最新のログは出力に更新されません。

# systemctl ステータス sshd
● sshd.service – OpenSSH サーバーデーモン
 ロード済み: ロード済み (/usr/lib/systemd/system/sshd.service; 有効; ベンダープリセット: 有効)
 アクティブ: 2018-09-06 07:40:59 IST よりアクティブ (実行中)、2 週間 3 日前
 ドキュメント: man:sshd(8)
 man:sshd_config(5)
 メイン PID: 1208 (sshd)
 Cグループ: /system.slice/sshd.service
 ├─ 1208 /usr/sbin/sshd -D
 ├─23951 sshd: [承認済み]
 └─23952 sshd: [ネット]
9月23日 12:50:36 vps.2daygeek.com sshd[23909]: 95.210.113.142 ポート51666からの無効なユーザーpi
9月23日 12:50:36 vps.2daygeek.com sshd[23909]: input_userauth_request: 無効なユーザー PI [preauth]
9月23日 12:50:37 vps.2daygeek.com sshd[23911]: pam_unix(sshd:auth): チェック合格; ユーザーは不明
9月23日 12:50:37 vps.2daygeek.com sshd[23911]: pam_unix(sshd:auth): 認証失敗; logname= uid=0 euid=0 tty=ssh ruser= rhost=95.210.113.142
9月23日 12:50:37 vps.2daygeek.com sshd[23909]: pam_unix(sshd:auth): チェック合格; ユーザーは不明
9月23日 12:50:37 vps.2daygeek.com sshd[23909]: pam_unix(sshd:auth): 認証失敗; logname= uid=0 euid=0 tty=ssh ruser= rhost=95.210.113.142
9月23日 12:50:39 vps.2daygeek.com sshd[23911]: 95.210.113.142 ポート 51670 ssh2 からの無効なユーザー pi のパスワードに失敗しました
9月23日 12:50:39 vps.2daygeek.com sshd[23909]: 95.210.113.142 ポート 51666 ssh2 からの無効なユーザー pi のパスワードに失敗しました
9月23日 12:50:40 vps.2daygeek.com sshd[23911]: 95.210.113.142 ポート51670 によって接続が閉じられました [preauth]
9月23日 12:50:40 vps.2daygeek.com sshd[23909]: 95.210.113.142 ポート51666 によって接続が閉じられました [preauth]

ほとんどの場合、上記の出力にはプロセスの実際のポート番号は表示されません。このとき、ログ ファイルの詳細情報を確認するには、次の journalctl コマンドを使用することをお勧めします。

# journalctl | grep -i "openssh\|sshd"
9月23日 02:08:56 vps138235.vps.ovh.ca sshd[997]: 信号15を受信しました。終了しています。
9月23日 02:08:56 vps138235.vps.ovh.ca systemd[1]: OpenSSHサーバーデーモンを停止しています...
9月23日 02:08:56 vps138235.vps.ovh.ca systemd[1]: OpenSSHサーバーデーモンを起動しています...
9月23日 02:08:56 vps138235.vps.ovh.ca sshd[11584]: サーバーは0.0.0.0ポート22でリッスンしています。
9月23日 02:08:56 vps138235.vps.ovh.ca sshd[11584]: サーバーはポート22でリッスンしています。
9月23日 02:08:56 vps138235.vps.ovh.ca systemd[1]: OpenSSHサーバーデーモンを起動しました。

サーバーが占有しているポートを確認することは、システム管理者が習得しなければならないスキルです。Linux プロセスが占有しているポート番号を確認するには、上記の 6 つの方法のうち少なくとも 1 つを知っておく必要があります。

Linux システム管理者にとって、サービスがポートに正しくバインドされているか、またはポートをリッスンしているかどうかを知ることは非常に重要です。ポート関連の問題に対処する必要がある場合は、この記事が役立つかもしれません。

ポートは、物理ポートやソフトウェア ポートなど、Linux システム上の特定のプロセス間の論理接続の識別子です。 Linux オペレーティング システムはソフトウェアであるため、この記事ではソフトウェア ポートについてのみ説明します。ソフトウェア ポートは常にホストの IP アドレスと関連する通信プロトコルに関連付けられているため、ポートはアプリケーションを区別するために使用されることがよくあります。ネットワークに関わるほとんどのサービスは、着信ネットワーク要求をリッスンするためにソケットを開く必要があり、各サービスは個別のソケットを使用します。

ソケットは、IP アドレス、ソフトウェア ポート、およびプロトコルと組み合わせて使用​​されます。ポート番号は、伝送制御プロトコル (TCP) とユーザー データグラム プロトコル (UDP) の両方に適用されます。TCP と UDP はどちらも、通信に 0 ~ 65535 のポート番号を使用できます。

ポート割り当てのカテゴリは次のとおりです。

0 - 1023: 共通ポートとシステムポート

1024 - 49151: ソフトウェア登録ポート

49152 - 65535: 動的ポートまたはプライベートポート

予約済みポートの詳細については、Linux の /etc/services ファイルを参照してください。

# /etc/services を減らす
# /etc/サービス:
# $Id: services,v 1.55 2013/04/14 ovasik Exp $
#
# ネットワークサービス、インターネットスタイル
# IANA サービス バージョン: 最終更新日 2013-04-10
#
# 現在、IANAのポリシーでは、1つのよく知られたIPアドレスを割り当てることに注意しましょう。
# TCPとUDPの両方のポート番号。したがって、ほとんどのエントリには2つのエントリがあります。
# プロトコルが UDP 操作をサポートしていない場合でも同様です。
# RFC 1700、「割り当てられた番号」(1994年10月)から更新されました。すべてのポートが
# は、より一般的なものだけが含まれています。
#
# 最新のIANAポート割り当ては以下から取得できます。
# http://www.iana.org/assignments/port-numbers
# 既知のポートは 0 から 1023 までです。
# 登録ポートは1024から49151までです
# ダイナミックポートおよび/またはプライベートポートは49152から65535までです
#
# 各行は 1 つのサービスを表し、次の形式になります。
#
# サービス名 ポート/プロトコル [エイリアス ...] [# コメント]
tcpmux 1/tcp # TCP ポート サービス マルチプレクサ
tcpmux 1/udp # TCP ポート サービス マルチプレクサ
rje 5/tcp # リモートジョブエントリ
rje 5/udp # リモートジョブエントリ
エコー7/tcp
エコー7/udp
破棄 9/tcp シンク null
破棄 9/udp シンク null
systat 11/tcp ユーザー
systat 11/udp ユーザー
昼間 13/tcp
昼間 13/udp
qotd 17/tcp 引用
qotd 17/udp 引用
msp 18/tcp # メッセージ送信プロトコル (履歴)
msp 18/udp # メッセージ送信プロトコル (履歴)
チャージン 19/tcp ttytst ソース
チャージン 19/udp ttytst ソース
ftpデータ 20/tcp
ftpデータ 20/udp
# 21 は ftp に登録されていますが、fsp でも使用されます
FTP 21/TCP
ftp 21/udp fsp fspd
ssh 22/tcp # セキュア シェル (SSH) プロトコル
ssh 22/udp # セキュア シェル (SSH) プロトコル
テルネット 23/tcp
テルネット 23/udp
# 24 - プライベートメールシステム
lmtp 24/tcp # LMTP メール配信
lmtp 24/udp # LMTP メール配信

ポート情報を表示するには、次の 6 つの方法を使用できます。

ss: ソケット統計をダンプするために使用できます。

netstat: 開いているソケットのリストを表示できます。

lsof: 開いているファイルを一覧表示できます。

fuser: ファイルを開いているプロセスのプロセス ID を一覧表示できます。

nmap: ネットワーク検出ツールおよびポート スキャナーです。

systemctl: systemd システムの制御マネージャーおよびサービス マネージャーです。

次に、sshd デーモンが使用するポート番号を確認します。

方法1: ssコマンドを使用する

ss は通常、ソケット統計をダンプするために使用されます。 netstat と同様の出力を生成しますが、他のツールよりも多くの TCP 情報とステータス情報を表示します。

また、PACKET、TCP、UDP、DCCP、RAW、Unix ドメインなど、あらゆる種類のソケット統計を表示することもできます。

# ss -tnlp | grep ssh
LISTEN 0 128 *:22 *:* ユーザー:(("sshd",pid=997,fd=3))
LISTEN 0 128 :::22 :::* ユーザー:(("sshd",pid=997,fd=4))

ポート番号を使用して確認することもできます。

# ss -tnlp | grep ":22"
LISTEN 0 128 *:22 *:* ユーザー:(("sshd",pid=997,fd=3))
LISTEN 0 128 :::22 :::* ユーザー:(("sshd",pid=997,fd=4))

方法2: netstatコマンドを使用する

netstat は、ネットワーク接続、ルーティング テーブル、インターフェイス統計、マスカレード接続、およびマルチキャスト メンバーシップを表示できます。

デフォルトでは、netstat は開いているソケットを一覧表示します。アドレス ファミリを指定しない場合は、設定されているすべてのアドレス ファミリのアクティブなソケットが表示されます。しかし、netstat は時代遅れなので、代わりに ss が使用されるのが一般的です。

# netstat -tnlp | grep ssh
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 997/sshd
tcp6 0 0 :::22 :::* 997/sshdをリッスン

ポート番号を使用して確認することもできます。

# netstat -tnlp | grep ":22"
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 1208/sshd
tcp6 0 0 :::22 :::* 1208/sshdを聴く

方法3: lsofコマンドを使用する

lsof は、開いているファイルを一覧表示したり、システム上のプロセスによって開かれたファイルに関する情報を一覧表示したりできます。

# lsof -i -P | grep ssh
コマンド PID ユーザー FD タイプ デバイス サイズ/オフ ノード名
sshd 11584 ルート 3u IPv4 27625 0t0 TCP *:22 (LISTEN)
sshd 11584 ルート 4u IPv6 27627 0t0 TCP *:22 (LISTEN)
sshd 11592 ルート 3u IPv4 27744 0t0 TCP vps.2daygeek.com:ssh->103.5.134.167:49902 (確立済み)

ポート番号を使用して確認することもできます。

# lsof -i tcp:22
コマンド PID ユーザー FD タイプ デバイス サイズ/オフ ノード名
sshd 1208 ルート 3u IPv4 20919 0t0 TCP *:ssh (LISTEN)
sshd 1208 ルート 4u IPv6 20921 0t0 TCP *:ssh (LISTEN)
sshd 11592 ルート 3u IPv4 27744 0t0 TCP vps.2daygeek.com:ssh->103.5.134.167:49902 (確立済み)

方法4: fuserコマンドを使用する

fuser ツールは、ローカル システム上でファイルを開いているプロセスのプロセス ID を標準出力に表示します。

# フューザー -v 22/tcp
 ユーザー PID アクセス コマンド
22/tcp: ルート 1208 F....sshd
 ルート 12388 F....sshd
 ルート 49339 F....sshd

方法5: nmapコマンドを使用する

nmap (「Network Mapper」) は、ネットワーク検出およびセキュリティ監査用のオープン ソース ツールです。もともとは大規模ネットワークの高速スキャン用に設計されましたが、単一のホストのスキャンにも適しています。

nmap は、生の IP パケットを使用して、ネットワーク上で利用可能なホスト、それらのホストのサービス (アプリケーション名とバージョンを含む)、ホストが実行しているオペレーティング システム (OS バージョンなどの情報を含む)、使用中のパケット フィルターまたはファイアウォールの種類、およびその他の多くの情報を決定します。

# nmap -sV -p 22 ローカルホスト
2018-09-23 12:36 IST に Nmap 6.40 ( http://nmap.org ) を起動
ローカルホスト (127.0.0.1) の Nmap スキャン レポート
ホストは稼働しています (遅延 0.000089 秒)。
ローカルホストのその他のアドレス(スキャンされていません): 127.0.0.1
港湾国サービスバージョン
22/tcp オープン ssh OpenSSH 7.4 (プロトコル 2.0)
サービス検出が実行されました。誤った結果がある場合は、http://nmap.org/submit/ に報告してください。
Nmap 完了: 1 つの IP アドレス (1 つのホストが稼働中) を 0.44 秒でスキャンしました

方法6: systemctlコマンドを使用する

systemctl は、systemd システムの制御マネージャーおよびサービス マネージャーです。これは古い SysV init システム管理に代わるもので、現在ほとんどの最新の Linux オペレーティング システムで使用されています。

# systemctl ステータス sshd
● sshd.service – OpenSSH サーバーデーモン
 ロード済み: ロード済み (/usr/lib/systemd/system/sshd.service; 有効; ベンダープリセット: 有効)
 アクティブ: 2018-09-23 02:08:56 EDT (日) からアクティブ (実行中)、6 時間 11 分前
 ドキュメント: man:sshd(8)
 man:sshd_config(5)
 メイン PID: 11584 (sshd)
 Cグループ: /system.slice/sshd.service
 └─11584 /usr/sbin/sshd -D
9月23日 02:08:56 vps.2daygeek.com systemd[1]: OpenSSHサーバーデーモンを起動しています...
9月23日 02:08:56 vps.2daygeek.com sshd[11584]: サーバーは0.0.0.0ポート22でリッスンしています。
9月23日 02:08:56 vps.2daygeek.com sshd[11584]: サーバーはポート22でリッスンしています。
9月23日 02:08:56 vps.2daygeek.com systemd[1]: OpenSSHサーバーデーモンを起動しました。
9月23日 02:09:15 vps.2daygeek.com sshd[11589]: 103.5.134.167 ポート49899 によって接続が閉じられました [preauth]
9月23日 02:09:41 vps.2daygeek.com sshd[11592]: 103.5.134.167 ポート 49902 ssh2 から root のパスワードを受け入れました

上記の出力は、sshd サービスが前回開始されたときの ssh サービスのリスニング ポートを示しています。しかし、最新のログは出力に更新されません。

# systemctl ステータス sshd
● sshd.service – OpenSSH サーバーデーモン
 ロード済み: ロード済み (/usr/lib/systemd/system/sshd.service; 有効; ベンダープリセット: 有効)
 アクティブ: 2018-09-06 07:40:59 IST よりアクティブ (実行中)、2 週間 3 日前
 ドキュメント: man:sshd(8)
 man:sshd_config(5)
 メイン PID: 1208 (sshd)
 Cグループ: /system.slice/sshd.service
 ├─ 1208 /usr/sbin/sshd -D
 ├─23951 sshd: [承認済み]
 └─23952 sshd: [ネット]
9月23日 12:50:36 vps.2daygeek.com sshd[23909]: 95.210.113.142 ポート51666からの無効なユーザーpi
9月23日 12:50:36 vps.2daygeek.com sshd[23909]: input_userauth_request: 無効なユーザー PI [preauth]
9月23日 12:50:37 vps.2daygeek.com sshd[23911]: pam_unix(sshd:auth): チェック合格; ユーザーは不明
9月23日 12:50:37 vps.2daygeek.com sshd[23911]: pam_unix(sshd:auth): 認証失敗; logname= uid=0 euid=0 tty=ssh ruser= rhost=95.210.113.142
9月23日 12:50:37 vps.2daygeek.com sshd[23909]: pam_unix(sshd:auth): チェック合格; ユーザーは不明
9月23日 12:50:37 vps.2daygeek.com sshd[23909]: pam_unix(sshd:auth): 認証失敗; logname= uid=0 euid=0 tty=ssh ruser= rhost=95.210.113.142
9月23日 12:50:39 vps.2daygeek.com sshd[23911]: 95.210.113.142 ポート 51670 ssh2 からの無効なユーザー pi のパスワードに失敗しました
9月23日 12:50:39 vps.2daygeek.com sshd[23909]: 95.210.113.142 ポート 51666 ssh2 からの無効なユーザー pi のパスワードに失敗しました
9月23日 12:50:40 vps.2daygeek.com sshd[23911]: 95.210.113.142 ポート51670 によって接続が閉じられました [preauth]
9月23日 12:50:40 vps.2daygeek.com sshd[23909]: 95.210.113.142 ポート51666 によって接続が閉じられました [preauth]

ほとんどの場合、上記の出力にはプロセスの実際のポート番号は表示されません。このとき、ログ ファイルの詳細情報を確認するには、次の journalctl コマンドを使用することをお勧めします。

# journalctl | grep -i "openssh\|sshd"
9月23日 02:08:56 vps138235.vps.ovh.ca sshd[997]: 信号15を受信しました。終了しています。
9月23日 02:08:56 vps138235.vps.ovh.ca systemd[1]: OpenSSHサーバーデーモンを停止しています...
9月23日 02:08:56 vps138235.vps.ovh.ca systemd[1]: OpenSSHサーバーデーモンを起動しています...
9月23日 02:08:56 vps138235.vps.ovh.ca sshd[11584]: サーバーは0.0.0.0ポート22でリッスンしています。
9月23日 02:08:56 vps138235.vps.ovh.ca sshd[11584]: サーバーはポート22でリッスンしています。
9月23日 02:08:56 vps138235.vps.ovh.ca systemd[1]: OpenSSHサーバーデーモンを起動しました。

Linuxプロセスが占有するポート番号を確認することは、システム管理者にとって必須のスキルです。LINUXシステムプロセスが占有するポートを確認するための上記の6つのコマンドのうち、少なくとも他の1つを知っておく必要があります。

Linux システム管理者にとって、サービスがポートに正しくバインドされているか、またはポートをリッスンしているかどうかを知ることは非常に重要です。ポート関連の問題に対処する必要がある場合は、この記事が役立つかもしれません。

ポートは、物理ポートやソフトウェア ポートなど、Linux システム上の特定のプロセス間の論理接続の識別子です。 Linux オペレーティング システムはソフトウェアであるため、この記事ではソフトウェア ポートについてのみ説明します。ソフトウェア ポートは常にホストの IP アドレスと関連する通信プロトコルに関連付けられているため、ポートはアプリケーションを区別するために使用されることがよくあります。ネットワークに関わるほとんどのサービスは、着信ネットワーク要求をリッスンするためにソケットを開く必要があり、各サービスは個別のソケットを使用します。

ソケットは、IP アドレス、ソフトウェア ポート、およびプロトコルと組み合わせて使用​​されます。ポート番号は、伝送制御プロトコル (TCP) とユーザー データグラム プロトコル (UDP) の両方に適用されます。TCP と UDP はどちらも、通信に 0 ~ 65535 のポート番号を使用できます。

ポート割り当てのカテゴリは次のとおりです。

0 - 1023: 共通ポートとシステムポート

1024 - 49151: ソフトウェア登録ポート

49152 - 65535: 動的ポートまたはプライベートポート

予約済みポートの詳細については、Linux の /etc/services ファイルを参照してください。

# /etc/services を減らす
# /etc/サービス:
# $Id: services,v 1.55 2013/04/14 ovasik Exp $
#
# ネットワークサービス、インターネットスタイル
# IANA サービス バージョン: 最終更新日 2013-04-10
#
# 現在、IANAのポリシーでは、1つのよく知られたIPアドレスを割り当てることに注意しましょう。
# TCPとUDPの両方のポート番号。したがって、ほとんどのエントリには2つのエントリがあります。
# プロトコルが UDP 操作をサポートしていない場合でも同様です。
# RFC 1700、「割り当てられた番号」(1994年10月)から更新されました。すべてのポートが
# は、より一般的なものだけが含まれています。
#
# 最新のIANAポート割り当ては以下から取得できます。
# http://www.iana.org/assignments/port-numbers
# 既知のポートは 0 から 1023 までです。
# 登録ポートは1024から49151までです
# ダイナミックポートおよび/またはプライベートポートは49152から65535までです
#
# 各行は 1 つのサービスを表し、次の形式になります。
#
# サービス名 ポート/プロトコル [エイリアス ...] [# コメント]
tcpmux 1/tcp # TCP ポート サービス マルチプレクサ
tcpmux 1/udp # TCP ポート サービス マルチプレクサ
rje 5/tcp # リモートジョブエントリ
rje 5/udp # リモートジョブエントリ
エコー7/tcp
エコー7/udp
破棄 9/tcp シンク null
破棄 9/udp シンク null
systat 11/tcp ユーザー
systat 11/udp ユーザー
昼間 13/tcp
昼間 13/udp
qotd 17/tcp 引用
qotd 17/udp 引用
msp 18/tcp # メッセージ送信プロトコル (履歴)
msp 18/udp # メッセージ送信プロトコル (履歴)
チャージン 19/tcp ttytst ソース
チャージン 19/udp ttytst ソース
ftpデータ 20/tcp
ftpデータ 20/udp
# 21 は ftp に登録されていますが、fsp でも使用されます
FTP 21/TCP
ftp 21/udp fsp fspd
ssh 22/tcp # セキュア シェル (SSH) プロトコル
ssh 22/udp # セキュア シェル (SSH) プロトコル
テルネット 23/tcp
テルネット 23/udp
# 24 - プライベートメールシステム
lmtp 24/tcp # LMTP メール配信
lmtp 24/udp # LMTP メール配信

ポート情報を表示するには、次の 6 つの方法を使用できます。

ss: ソケット統計をダンプするために使用できます。

netstat: 開いているソケットのリストを表示できます。

lsof: 開いているファイルを一覧表示できます。

fuser: ファイルを開いているプロセスのプロセス ID を一覧表示できます。

nmap: ネットワーク検出ツールおよびポート スキャナーです。

systemctl: systemd システムの制御マネージャーおよびサービス マネージャーです。

次に、sshd デーモンが使用するポート番号を確認します。

方法1: ssコマンドを使用する

ss は通常、ソケット統計をダンプするために使用されます。 netstat と同様の出力を生成しますが、他のツールよりも多くの TCP 情報とステータス情報を表示します。

また、PACKET、TCP、UDP、DCCP、RAW、Unix ドメインなど、あらゆる種類のソケット統計を表示することもできます。

# ss -tnlp | grep ssh
LISTEN 0 128 *:22 *:* ユーザー:(("sshd",pid=997,fd=3))
LISTEN 0 128 :::22 :::* ユーザー:(("sshd",pid=997,fd=4))

ポート番号を使用して確認することもできます。

# ss -tnlp | grep ":22"
LISTEN 0 128 *:22 *:* ユーザー:(("sshd",pid=997,fd=3))
LISTEN 0 128 :::22 :::* ユーザー:(("sshd",pid=997,fd=4))

方法2: netstatコマンドを使用する

netstat は、ネットワーク接続、ルーティング テーブル、インターフェイス統計、マスカレード接続、およびマルチキャスト メンバーシップを表示できます。

デフォルトでは、netstat は開いているソケットを一覧表示します。アドレス ファミリを指定しない場合は、設定されているすべてのアドレス ファミリのアクティブなソケットが表示されます。しかし、netstat は時代遅れなので、代わりに ss が使用されるのが一般的です。

# netstat -tnlp | grep ssh
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 997/sshd
tcp6 0 0 :::22 :::* 997/sshdをリッスン

ポート番号を使用して確認することもできます。

# netstat -tnlp | grep ":22"
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 1208/sshd
tcp6 0 0 :::22 :::* 1208/sshdを聴く

方法3: lsofコマンドを使用する

lsof は、開いているファイルを一覧表示したり、システム上のプロセスによって開かれたファイルに関する情報を一覧表示したりできます。

# lsof -i -P | grep ssh
コマンド PID ユーザー FD タイプ デバイス サイズ/オフ ノード名
sshd 11584 ルート 3u IPv4 27625 0t0 TCP *:22 (LISTEN)
sshd 11584 ルート 4u IPv6 27627 0t0 TCP *:22 (LISTEN)
sshd 11592 ルート 3u IPv4 27744 0t0 TCP vps.2daygeek.com:ssh->103.5.134.167:49902 (確立済み)

ポート番号を使用して確認することもできます。

# lsof -i tcp:22
コマンド PID ユーザー FD タイプ デバイス サイズ/オフ ノード名
sshd 1208 ルート 3u IPv4 20919 0t0 TCP *:ssh (LISTEN)
sshd 1208 ルート 4u IPv6 20921 0t0 TCP *:ssh (LISTEN)
sshd 11592 ルート 3u IPv4 27744 0t0 TCP vps.2daygeek.com:ssh->103.5.134.167:49902 (確立済み)

方法4: fuserコマンドを使用する

fuser ツールは、ローカル システム上でファイルを開いているプロセスのプロセス ID を標準出力に表示します。

# フューザー -v 22/tcp
 ユーザー PID アクセス コマンド
22/tcp: ルート 1208 F....sshd
 ルート 12388 F....sshd
 ルート 49339 F....sshd

方法5: nmapコマンドを使用する

nmap (「Network Mapper」) は、ネットワーク検出およびセキュリティ監査用のオープン ソース ツールです。もともとは大規模ネットワークの高速スキャン用に設計されましたが、単一のホストのスキャンにも適しています。

nmap は、生の IP パケットを使用して、ネットワーク上で利用可能なホスト、それらのホストのサービス (アプリケーション名とバージョンを含む)、ホストが実行しているオペレーティング システム (OS バージョンなどの情報を含む)、使用中のパケット フィルターまたはファイアウォールの種類、およびその他の多くの情報を決定します。

# nmap -sV -p 22 ローカルホスト
2018-09-23 12:36 IST に Nmap 6.40 ( http://nmap.org ) を起動
ローカルホスト (127.0.0.1) の Nmap スキャン レポート
ホストは稼働しています (遅延 0.000089 秒)。
ローカルホストのその他のアドレス(スキャンされていません): 127.0.0.1
港湾国サービスバージョン
22/tcp オープン ssh OpenSSH 7.4 (プロトコル 2.0)
サービス検出が実行されました。誤った結果がある場合は、http://nmap.org/submit/ に報告してください。
Nmap 完了: 1 つの IP アドレス (1 つのホストが稼働中) を 0.44 秒でスキャンしました

方法6: systemctlコマンドを使用する

systemctl は、systemd システムの制御マネージャーおよびサービス マネージャーです。これは古い SysV init システム管理に代わるもので、現在ほとんどの最新の Linux オペレーティング システムで使用されています。

# systemctl ステータス sshd
● sshd.service – OpenSSH サーバーデーモン
 ロード済み: ロード済み (/usr/lib/systemd/system/sshd.service; 有効; ベンダープリセット: 有効)
 アクティブ: 2018-09-23 02:08:56 EDT (日) からアクティブ (実行中)、6 時間 11 分前
 ドキュメント: man:sshd(8)
 man:sshd_config(5)
 メイン PID: 11584 (sshd)
 Cグループ: /system.slice/sshd.service
 └─11584 /usr/sbin/sshd -D
9月23日 02:08:56 vps.2daygeek.com systemd[1]: OpenSSHサーバーデーモンを起動しています...
9月23日 02:08:56 vps.2daygeek.com sshd[11584]: サーバーは0.0.0.0ポート22でリッスンしています。
9月23日 02:08:56 vps.2daygeek.com sshd[11584]: サーバーはポート22でリッスンしています。
9月23日 02:08:56 vps.2daygeek.com systemd[1]: OpenSSHサーバーデーモンを起動しました。
9月23日 02:09:15 vps.2daygeek.com sshd[11589]: 103.5.134.167 ポート49899 によって接続が閉じられました [preauth]
9月23日 02:09:41 vps.2daygeek.com sshd[11592]: 103.5.134.167 ポート 49902 ssh2 から root のパスワードを受け入れました

上記の出力は、sshd サービスが前回開始されたときの ssh サービスのリスニング ポートを示しています。しかし、最新のログは出力に更新されません。

# systemctl ステータス sshd
● sshd.service – OpenSSH サーバーデーモン
 ロード済み: ロード済み (/usr/lib/systemd/system/sshd.service; 有効; ベンダープリセット: 有効)
 アクティブ: 2018-09-06 07:40:59 IST よりアクティブ (実行中)、2 週間 3 日前
 ドキュメント: man:sshd(8)
 man:sshd_config(5)
 メイン PID: 1208 (sshd)
 Cグループ: /system.slice/sshd.service
 ├─ 1208 /usr/sbin/sshd -D
 ├─23951 sshd: [承認済み]
 └─23952 sshd: [ネット]
9月23日 12:50:36 vps.2daygeek.com sshd[23909]: 95.210.113.142 ポート51666からの無効なユーザーpi
9月23日 12:50:36 vps.2daygeek.com sshd[23909]: input_userauth_request: 無効なユーザー PI [preauth]
9月23日 12:50:37 vps.2daygeek.com sshd[23911]: pam_unix(sshd:auth): チェック合格; ユーザーは不明
9月23日 12:50:37 vps.2daygeek.com sshd[23911]: pam_unix(sshd:auth): 認証失敗; logname= uid=0 euid=0 tty=ssh ruser= rhost=95.210.113.142
9月23日 12:50:37 vps.2daygeek.com sshd[23909]: pam_unix(sshd:auth): チェック合格; ユーザーは不明
9月23日 12:50:37 vps.2daygeek.com sshd[23909]: pam_unix(sshd:auth): 認証失敗; logname= uid=0 euid=0 tty=ssh ruser= rhost=95.210.113.142
9月23日 12:50:39 vps.2daygeek.com sshd[23911]: 95.210.113.142 ポート 51670 ssh2 からの無効なユーザー pi のパスワードに失敗しました
9月23日 12:50:39 vps.2daygeek.com sshd[23909]: 95.210.113.142 ポート 51666 ssh2 からの無効なユーザー pi のパスワードに失敗しました
9月23日 12:50:40 vps.2daygeek.com sshd[23911]: 95.210.113.142 ポート51670 によって接続が閉じられました [preauth]
9月23日 12:50:40 vps.2daygeek.com sshd[23909]: 95.210.113.142 ポート51666 によって接続が閉じられました [preauth]

ほとんどの場合、上記の出力にはプロセスの実際のポート番号は表示されません。このとき、ログ ファイルの詳細情報を確認するには、次の journalctl コマンドを使用することをお勧めします。

# journalctl | grep -i "openssh\|sshd"
9月23日 02:08:56 vps138235.vps.ovh.ca sshd[997]: 信号15を受信しました。終了しています。
9月23日 02:08:56 vps138235.vps.ovh.ca systemd[1]: OpenSSHサーバーデーモンを停止しています...
9月23日 02:08:56 vps138235.vps.ovh.ca systemd[1]: OpenSSHサーバーデーモンを起動しています...
9月23日 02:08:56 vps138235.vps.ovh.ca sshd[11584]: サーバーは0.0.0.0ポート22でリッスンしています。
9月23日 02:08:56 vps138235.vps.ovh.ca sshd[11584]: サーバーはポート22でリッスンしています。
9月23日 02:08:56 vps138235.vps.ovh.ca systemd[1]: OpenSSHサーバーデーモンを起動しました。

Linux システム管理者にとって、サービスがポートに正しくバインドされているか、またはポートをリッスンしているかどうかを知ることは非常に重要です。ポート関連の問題に対処する必要がある場合は、この記事が役立つかもしれません。

ポートは、物理ポートやソフトウェア ポートなど、Linux システム上の特定のプロセス間の論理接続の識別子です。 Linux オペレーティング システムはソフトウェアであるため、この記事ではソフトウェア ポートについてのみ説明します。ソフトウェア ポートは常にホストの IP アドレスと関連する通信プロトコルに関連付けられているため、ポートはアプリケーションを区別するために使用されることがよくあります。ネットワークに関わるほとんどのサービスは、着信ネットワーク要求をリッスンするためにソケットを開く必要があり、各サービスは個別のソケットを使用します。

ソケットは、IP アドレス、ソフトウェア ポート、およびプロトコルと組み合わせて使用​​されます。ポート番号は、伝送制御プロトコル (TCP) とユーザー データグラム プロトコル (UDP) の両方に適用されます。TCP と UDP はどちらも、通信に 0 ~ 65535 のポート番号を使用できます。

ポート割り当てのカテゴリは次のとおりです。

0 - 1023: 共通ポートとシステムポート

1024 - 49151: ソフトウェア登録ポート

49152 - 65535: 動的ポートまたはプライベートポート

予約済みポートの詳細については、Linux の /etc/services ファイルを参照してください。

# /etc/services を減らす
# /etc/サービス:
# $Id: services,v 1.55 2013/04/14 ovasik Exp $
#
# ネットワークサービス、インターネットスタイル
# IANA サービス バージョン: 最終更新日 2013-04-10
#
# 現在、IANAのポリシーでは、1つのよく知られた
# TCPとUDPの両方のポート番号。したがって、ほとんどのエントリには2つのエントリがあります
# プロトコルが UDP 操作をサポートしていない場合でも同様です。
# RFC 1700、「割り当てられた番号」(1994年10月)から更新されました。すべてのポートが
# は、より一般的なものだけが含まれています。
#
# 最新のIANAポート割り当ては以下から取得できます。
# http://www.iana.org/assignments/port-numbers
# 既知のポートは 0 から 1023 までです。
# 登録ポートは1024から49151までです
# ダイナミックポートおよび/またはプライベートポートは49152から65535までです
#
# 各行は 1 つのサービスを表し、次の形式になります。
#
# サービス名 ポート/プロトコル [エイリアス ...] [# コメント]
tcpmux 1/tcp # TCP ポート サービス マルチプレクサ
tcpmux 1/udp # TCP ポート サービス マルチプレクサ
rje 5/tcp # リモートジョブエントリ
rje 5/udp # リモートジョブエントリ
エコー7/tcp
エコー7/udp
破棄 9/tcp シンク null
破棄 9/udp シンク null
systat 11/tcp ユーザー
systat 11/udp ユーザー
昼間 13/tcp
昼間 13/udp
qotd 17/tcp 引用
qotd 17/udp 引用
msp 18/tcp # メッセージ送信プロトコル (履歴)
msp 18/udp # メッセージ送信プロトコル (履歴)
チャージン 19/tcp ttytst ソース
チャージン 19/udp ttytst ソース
ftpデータ 20/tcp
ftpデータ 20/udp
# 21 は ftp に登録されていますが、fsp でも使用されます
FTP 21/TCP
ftp 21/udp fsp fspd
ssh 22/tcp # セキュア シェル (SSH) プロトコル
ssh 22/udp # セキュア シェル (SSH) プロトコル
テルネット 23/tcp
テルネット 23/udp
# 24 - プライベートメールシステム
lmtp 24/tcp # LMTP メール配信
lmtp 24/udp # LMTP メール配信

ポート情報を表示するには、次の 6 つの方法を使用できます。

ss: ソケット統計をダンプするために使用できます。

netstat: 開いているソケットのリストを表示できます。

lsof: 開いているファイルを一覧表示できます。

fuser: ファイルを開いているプロセスのプロセス ID を一覧表示できます。

nmap: ネットワーク検出ツールおよびポート スキャナーです。

systemctl: systemd システムの制御マネージャーおよびサービス マネージャーです。

次に、sshd デーモンが使用するポート番号を確認します。

方法1: ssコマンドを使用する

ss は通常、ソケット統計をダンプするために使用されます。 netstat と同様の出力を生成しますが、他のツールよりも多くの TCP 情報とステータス情報を表示します。

また、PACKET、TCP、UDP、DCCP、RAW、Unix ドメインなど、あらゆる種類のソケット統計を表示することもできます。

# ss -tnlp | grep ssh
LISTEN 0 128 *:22 *:* ユーザー:(("sshd",pid=997,fd=3))
LISTEN 0 128 :::22 :::* ユーザー:(("sshd",pid=997,fd=4))

ポート番号を使用して確認することもできます。

# ss -tnlp | grep ":22"
LISTEN 0 128 *:22 *:* ユーザー:(("sshd",pid=997,fd=3))
LISTEN 0 128 :::22 :::* ユーザー:(("sshd",pid=997,fd=4))

方法2: netstatコマンドを使用する

netstat は、ネットワーク接続、ルーティング テーブル、インターフェイス統計、マスカレード接続、およびマルチキャスト メンバーシップを表示できます。

デフォルトでは、netstat は開いているソケットを一覧表示します。アドレス ファミリを指定しない場合は、設定されているすべてのアドレス ファミリのアクティブなソケットが表示されます。しかし、netstat は時代遅れなので、代わりに ss が使用されるのが一般的です。

# netstat -tnlp | grep ssh
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 997/sshd
tcp6 0 0 :::22 :::* 997/sshdをリッスン

ポート番号を使用して確認することもできます。

# netstat -tnlp | grep ":22"
TCP 0 0 0.0.0.0:22 0.0.0.0 :* 1208/sshdを聞いてください
TCP6 0 0 ::: 22 :::* 1208/sshdを聞いてください

方法3: lsofコマンドを使用する

LSOFは、オープンファイルをリストし、システム上のプロセスによって開かれたファイルに関する情報をリストできます。

#lsof -i -p |
コマンド PID ユーザー FD タイプ デバイス サイズ/オフ ノード名
SSHD 11584ルート3U IPv4 27625 0T0 TCP *:22(聞く)
SSHD 11584ルート4U IPv6 27627 0T0 TCP *:22(聞く)
SSHD 11592ルート3U IPv4 27744 0T0 TCP VPS.2DAYGEEK.COM:SSH->103.5.134.167:49902(確立)

ポート番号を使用して確認することもできます。

#LSOF -I TCP:22
コマンド PID ユーザー FD タイプ デバイス サイズ/オフ ノード名
SSHD 1208ルート3U IPv4 20919 0T0 TCP *:SSH(聞く)
SSHD 1208ルート4U IPv6 20921 0T0 TCP *:SSH(聞く)
SSHD 11592ルート3U IPv4 27744 0T0 TCP VPS.2DAYGEEK.COM:SSH->103.5.134.167:49902(確立)

方法4:フューザーコマンドの使用

フューザーツールは、ファイルを開いているローカルシステム上のプロセスのプロセスIDを標準出力するために表示されます。

#fuser -v 22/tcp
 ユーザー PID アクセス コマンド
22/TCP:ルート1208 F .... sshd
 ルート12388 f .... sshd
 ルート49339 F .... sshd

方法5:NMAPコマンドの使用

NMAP( "Network Mapper")は、ネットワーク検出とセキュリティ監査のためのオープンソースツールです。もともとは、大規模なネットワークの高速スキャン用に設計されていましたが、シングルホストのスキャンにも適しています。

NMAPは、元のIPパケットを使用して、ネットワーク上の利用可能なホスト、これらのホスト(アプリケーション名とバージョンを含む)、オペレーティングシステム(オペレーティングシステムバージョンなど)、使用中のパケットフィルターまたはファイアウォールのタイプ、およびその他の情報を決定します。

#NMAP -SV -P 22 LocalHost
2018-09-23でNMAP 6.40(http://nmap.org)を開始
LocalHostのNMAPスキャンレポート(127.0.0.1)
ホストはアップ(0.000089Sレイテンシ)です。
LocalHostのその他のアドレス(スキャンされていない):127.0.0.1
ポートステートサービスバージョン
22/TCP Open SSH OpenSSH 7.4(プロトコル2.0)
サービスの検出は、http://nmap.org/submit/で誤った結果を報告してください。
NMAPが完了しました:0.44秒でスキャンされた1つのIPアドレス(1ホストアップ)

方法6:SystemCTLコマンドを使用します

SystemCtlは、SystemDシステムのコントロールマネージャーおよびサービスマネージャーです。古いSYSV初期化システム管理に取って代わり、現在のほとんどのLinuxオペレーティングシステムは現在SystemDを使用しています。

#SystemCTLステータスSSHD
●SSHD.Service -OpenSSHサーバーデーモン
 ロード:ロード:(/usr/lib/systemd/system/sshd.service; enabled; vendor preset:enabled)
 アクティブ:2018-09-23 02:08:56 EDT以降
 docs:man:sshd(8)
 男:sshd_config(5)
 メインPID:11584(SSHD)
 cgroup:/system.slice/sshd.service
 └。11584/usr/sbin/sshd -d
9月23日02:08:56 vps.2daygeek.com Systemd [1]:Openssh Server Daemonを開始...
9月23日02:08:56 vps.2daygeek.com SSHD [11584]:0.0.0.0ポート22でリスニングサーバー。
9月23日02:08:56 vps.2daygeek.com SSHD [11584]:サーバーリスニング::ポート22。
9月23日02:08:56 vps.2daygeek.com SystemD [1]:OpenSSHサーバーデーモンを開始しました。
9月23日02:09:15 VPS.2DAYGEEK.COM SSHD [11589]:接続は103.5.134.167ポート49899 [Preauth]
9月23日02:09:41 VPS.2DAYGEEK.COM SSHD [11592]:103.5.134.167ポート49902 SSH2からのルートのパスワードを受け入れたパスワード

上記の出力は、SSHDサービスが最後に開始されたときのSSHサービスのリスニングポートを示しています。ただし、最新のログを出力に更新しません。

#SystemCTLステータスSSHD
●SSHD.Service -OpenSSHサーバーデーモン
 ロード:ロード:(/usr/lib/systemd/system/sshd.service; enabled; vendor preset:enabled)
 アクティブ:2018-09-06 07:40:59 IST以降
 docs:man:sshd(8)
 男:sshd_config(5)
 メインPID:1208(SSHD)
 cgroup:/system.slice/sshd.service
 ├。1208/usr/sbin/sshd -d
 ├├。23951sshd:[受け入れ]
 └└。23952sshd:[net]
9月23日12:50:36 VPS.2DAYGEEK.COM SSHD [23909]:95.210.113.142ポート51666からの無効なユーザーPI
9月23日12:50:36 VPS.2DAYGEEK.com SSHD [23909]:input_userauth_request:無効なユーザーpi [preauth]
9月23日12:50:37 VPS.2DAYGEEK.COM SSHD [23911]:PAM_UNIX(SSHD:AUTH):Passを確認します
9月23日12:50:37 VPS.2DAYGEEK.COM SSHD [23911]:PAM_UNIX(SSHD:AUTH):認証障害= 0 euid = 0 tty = ssh ruser = rhost = 95.210.113.142
9月23日12:50:37 VPS.2DAYGEEK.COM SSHD [23909]:PAM_UNIX(SSHD:AUTH):Passを確認します
9月23日12:50:37 VPS.2DAYGEEK.COM SSHD [23909]:PAM_UNIX(SSHD:AUTH):認証障害= 0 euid = 0 tty = ssh ruser = rhost = 95.210.113.142
9月23日12:50:39 VPS.2DAYGEEK.COM SSHD [23911]:95.210.113.142からの無効なユーザーPIのパスワードの失敗ポート51670 SSH2
9月23日12:50:39 VPS.2DAYGEEK.COM SSHD [23909]:95.210.113.142からの無効なユーザーPIのパスワードの失敗ポート51666 SSH2
9月23日12:50:40 VPS.2DAYGEEK.COM SSHD [23911]:接続は95.210.113.142ポート51670 [Preauth]
9月23日12:50:40 VPS.2DAYGEEK.com SSHD [23909]:接続は95.210.113.142ポート51666 [Preauth]

ほとんどの場合、上記の出力にはプロセスの実際のポート番号は表示されません。このとき、ログ ファイルの詳細情報を確認するには、次の journalctl コマンドを使用することをお勧めします。

#journalctl |。
Sep 23 02:08:56 VPS138235.VPS.CA SSHD [997]:Signal 15を受信します。
9月23日02:08:56 vps138235.vps.ovh.ca systemd [1]:opensshサーバーデーモンを停止...
9月23日02:08:56 vps138235.vps.ovh.ca Systemd [1]:Openssh Server Daemon ...を開始...
9月23日02:08:56 VPS138235.VPS.OVH.CA SSHD [11584]:0.0.0.0ポート22でリスニングサーバー
9月23日02:08:56 VPS138235.VPS.OVH.CA SSHD [11584]:サーバーリスニング::ポート22。
9月23日02:08:56 vps138235.vps.ovh.ca systemd [1]:Opensshサーバーデーモンを開始しました。

afd

Linuxシステム管理者が、サービスが正しくバインドされているか、ポートを聞くかを知ることが重要です。港湾関連の問題に対処する必要がある場合は、この記事が役立つ場合があります。

ポートは、物理ポートやソフトウェアポートを含むLinuxシステム上の特定のプロセス間の論理接続の識別子です。 Linuxオペレーティングシステムはソフトウェアであるため、この記事ではソフトウェアポートについてのみ説明します。ソフトウェアポートは常にホストのIPアドレスと関連する通信プロトコルに関連付けられているため、アプリケーションを区別するためにポートを使用することがよくあります。ネットワークを含むほとんどのサービスは、着信ネットワークリクエストをリッスンするためにソケットを開く必要があり、各サービスは個別のソケットを使用します。

ソケットは、IPアドレス、ソフトウェアポート、およびプロトコルと組み合わせて使用​​され、ポート番号は、TCPとUDPの両方が0〜65535のポート番号と通信することができます。

ポート割り当てカテゴリは次のとおりです。

0-1023:一般的なポートとシステムポート

1024-49151:ソフトウェア登録ポート

49152-65535:ダイナミックポートまたはプライベートポート

予約済みポートの詳細については、Linux の /etc/services ファイルを参照してください。

#より少ない /etc /services
# /etc /services:
#$ ID:Services、V 1.55 2013/04/14 Ovasik Exp $
#
#ネットワークサービス、インターネットスタイル
#IANAサービスバージョン:最終更新2013-04-10
#
#単一の有名なものを割り当てることは現在IANAの方針であることに注意してください
#TCPとUDPの両方のポート番号。したがって、ここのほとんどのエントリには2つのエントリがあります
#プロトコルがUDP操作をサポートしていない場合でも。
#RFC 1700、「割り当てられた数字」(1994年10月)から更新されます
#は含まれており、より一般的なもののみが含まれています。
#
#最新のIANAポート割り当てはから得ることができます
#http://www.iana.org/assignments/port-numbers
#よく知られているポートは、0〜1023のポートです。
#登録されたポートは1024から49151までのポートです
#ダイナミックポートおよび/またはプライベートポートは、49152〜65535のポートです。
#
#各行は1つのサービスを記述し、フォームです。
#
#service-nameポート/プロトコル[エイリアス...] [#コメント]
TCPMUX 1/TCP#TCPポートサービスマルチプレクサ
TCPMUX 1/UDP#TCPポートサービスマルチプレクサ
RJE 5/TCP#リモートジョブエントリ
RJE 5/UDP#リモートジョブエントリ
エコー7/TCP
エコー7/UDP
9/TCPシンクヌルを破棄します
9/UDPシンクヌルを廃棄します
SYSTAT 11/TCPユーザー
Systat 11/UDPユーザー
昼間13/TCP
昼間13/UDP
QOTD 17/TCPの引用
QOTD 17/UDPの引用
MSP 18/TCP#メッセージプロトコルを送信(歴史)
MSP 18/UDP#メッセージプロトコルを送信(歴史)
chargen 19/tcp ttytstソース
Chargen 19/udp ttytstソース
FTP-DATA 20/TCP
ftp-data 20/udp
#21はFTPに登録されていますが、FSPでも使用されます
FTP 21/TCP
FTP 21/UDP FSP FSPD
SSH 22/TCP#セキュアシェル(SSH)プロトコル
SSH 22/UDP#セキュアシェル(SSH)プロトコル
Telnet 23/TCP
Telnet 23/UDP
#24-プライベートメールシステム
LMTP 24/TCP#LMTPメール配信
LMTP 24/UDP#LMTPメール配信

ポート情報を表示するには、次の 6 つの方法を使用できます。

ss: ソケット統計をダンプするために使用できます。

netstat: 開いているソケットのリストを表示できます。

lsof: 開いているファイルを一覧表示できます。

フューザー:ファイルを開いた状態で、これらのプロセスのプロセスIDをリストできます。

nmap: ネットワーク検出ツールおよびポート スキャナーです。

systemctl: systemd システムの制御マネージャーおよびサービス マネージャーです。

次に、sshd デーモンが使用するポート番号を確認します。

方法1: ssコマンドを使用する

SSは通常、ソケット統計をダンプするために使用されます。 NetStat出力と同様の情報を出力できますが、他のツールよりも多くのTCPとステータス情報を表示できます。

また、PACKET、TCP、UDP、DCCP、RAW、Unix ドメインなど、あらゆる種類のソケット統計を表示することもできます。

#SS -TNLP |
聞く0 128 *:22 *: *ユーザー:(( "sshd"、pid = 997、fd = 3))
聞く0 128 ::: 22 :::*ユーザー:(( "sshd"、pid = 997、fd = 4))

ポート番号を使用して確認することもできます。

#SS -TNLP |。
聞く0 128 *:22 *: *ユーザー:(( "sshd"、pid = 997、fd = 3))
聞く0 128 ::: 22 :::*ユーザー:(( "sshd"、pid = 997、fd = 4))

方法2: netstatコマンドを使用する

NetStatは、ネットワーク接続、ルーティングテーブル、インターフェイス統計、マスカレード接続、およびマルチキャストメンバーを表示できます。

デフォルトでは、NetStatは開いたソケットをリストします。アドレスファミリが指定されていない場合、構成されたすべてのアドレスファミリのアクティブソケットが表示されます。しかし、Netstatは時代遅れであり、通常SSに置き換えられます。

#netstat -tnlp |
TCP 0 0 0.0.0.0:22 0.0.0.0 :* 997/sshdを聞いてください
TCP6 0 0 ::: 22 :::* 997/sshdを聞いてください

ポート番号を使用して確認することもできます。

#netstat -tnlp |。
TCP 0 0 0.0.0.0:22 0.0.0.0 :* 1208/sshdを聞いてください
TCP6 0 0 ::: 22 :::* 1208/sshdを聞いてください

方法3: lsofコマンドを使用する

LSOFは、オープンファイルをリストし、システム上のプロセスによって開かれたファイルに関する関連情報をリストできます。

#lsof -i -p |
コマンド PID ユーザー FD タイプ デバイス サイズ/オフ ノード名
SSHD 11584ルート3U IPv4 27625 0T0 TCP *:22(聞く)
SSHD 11584ルート4U IPv6 27627 0T0 TCP *:22(聞く)
SSHD 11592ルート3U IPv4 27744 0T0 TCP VPS.2DAYGEEK.COM:SSH->103.5.134.167:49902(確立)

ポート番号を使用して確認することもできます。

#LSOF -I TCP:22
コマンド PID ユーザー FD タイプ デバイス サイズ/オフ ノード名
SSHD 1208ルート3U IPv4 20919 0T0 TCP *:SSH(聞く)
SSHD 1208ルート4U IPv6 20921 0T0 TCP *:SSH(聞く)
SSHD 11592ルート3U IPv4 27744 0T0 TCP VPS.2DAYGEEK.COM:SSH->103.5.134.167:49902(確立)

方法4:フューザーコマンドを使用します

フューザーツールは、ファイルを標準出力でローカルシステムに開いたプロセスのプロセスIDを表示します。

#fuser -v 22/tcp
 ユーザー PID アクセス コマンド
22/TCP:ルート1208 F .... sshd
 ルート12388 f .... sshd
 ルート49339 F .... sshd

方法5:NMAPコマンドを使用します

NMAP( "Network Mapper")は、ネットワーク検出とセキュリティ監査のためのオープンソースツールです。もともとは、大規模なネットワークで速いスキャンを実行するために使用されていましたが、単一のホストでのスキャンにも適しています。

NMAPは、元のIPパケットを使用して、ネットワーク上の利用可能なホスト、これらのホスト(アプリケーション名とバージョンを含む)、オペレーティングシステム(オペレーティングシステムバージョンなど)、使用中のパケットフィルターまたはファイアウォールのタイプ、およびその他の情報を決定します。

#NMAP -SV -P 22 LocalHost
2018-09-23でNMAP 6.40(http://nmap.org)を開始
LocalHostのNMAPスキャンレポート(127.0.0.1)
ホストはアップ(0.000089Sレイテンシ)です。
LocalHostのその他のアドレス(スキャンされていない):127.0.0.1
ポートステートサービスバージョン
22/TCP Open SSH OpenSSH 7.4(プロトコル2.0)
サービスの検出は、http://nmap.org/submit/で誤った結果を報告してください。
NMAPが完了しました:0.44秒でスキャンされた1つのIPアドレス(1ホストアップ)

方法6:SystemCTLコマンドを使用します

SystemCtlは、SystemDシステムのコントロールマネージャーおよびサービスマネージャーです。古いSYSV初期化システム管理に取って代わり、現在のほとんどのLinuxオペレーティングシステムは現在SystemDを使用しています。

#SystemCTLステータスSSHD
●SSHD.Service -OpenSSHサーバーデーモン
 ロード:ロード:(/usr/lib/systemd/system/sshd.service; enabled; vendor preset:enabled)
 アクティブ:2018-09-23 02:08:56 EDT以降
 docs:man:sshd(8)
 男:sshd_config(5)
 メインPID:11584(SSHD)
 cgroup:/system.slice/sshd.service
 └。11584/usr/sbin/sshd -d
9月23日02:08:56 vps.2daygeek.com Systemd [1]:Openssh Server Daemonを開始...
9月23日02:08:56 vps.2daygeek.com SSHD [11584]:0.0.0.0ポート22でリスニングサーバー。
9月23日02:08:56 vps.2daygeek.com SSHD [11584]:サーバーリスニング::ポート22。
9月23日02:08:56 vps.2daygeek.com SystemD [1]:OpenSSHサーバーデーモンを開始しました。
9月23日02:09:15 VPS.2DAYGEEK.COM SSHD [11589]:接続は103.5.134.167ポート49899 [Preauth]
9月23日02:09:41 VPS.2DAYGEEK.COM SSHD [11592]:103.5.134.167ポート49902 SSH2からのルートのパスワードを受け入れたパスワード

上記の出力は、SSHDサービスが最後に開始されたときのSSHサービスのリスニングポートを示しています。ただし、最新のログを出力に更新しません。

#SystemCTLステータスSSHD
●SSHD.Service -OpenSSHサーバーデーモン
 ロード:ロード:(/usr/lib/systemd/system/sshd.service; enabled; vendor preset:enabled)
 アクティブ:2018-09-06 07:40:59 IST以降
 docs:man:sshd(8)
 男:sshd_config(5)
 メインPID:1208(SSHD)
 cgroup:/system.slice/sshd.service
 ├。1208/usr/sbin/sshd -d
 ├├。23951sshd:[受け入れ]
 └└。23952sshd:[net]
9月23日12:50:36 VPS.2DAYGEEK.COM SSHD [23909]:95.210.113.142ポート51666からの無効なユーザーPI
9月23日12:50:36 VPS.2DAYGEEK.com SSHD [23909]:input_userauth_request:無効なユーザーpi [preauth]
9月23日12:50:37 VPS.2DAYGEEK.COM SSHD [23911]:PAM_UNIX(SSHD:AUTH):Passを確認します
9月23日12:50:37 VPS.2DAYGEEK.COM SSHD [23911]:PAM_UNIX(SSHD:AUTH):認証障害= 0 euid = 0 tty = ssh ruser = rhost = 95.210.113.142
9月23日12:50:37 VPS.2DAYGEEK.COM SSHD [23909]:PAM_UNIX(SSHD:AUTH):Passを確認します
9月23日12:50:37 VPS.2DAYGEEK.COM SSHD [23909]:PAM_UNIX(SSHD:AUTH):認証障害= 0 euid = 0 tty = ssh ruser = rhost = 95.210.113.142
9月23日12:50:39 VPS.2DAYGEEK.COM SSHD [23911]:95.210.113.142からの無効なユーザーPIのパスワードの失敗ポート51670 SSH2
9月23日12:50:39 VPS.2DAYGEEK.COM SSHD [23909]:95.210.113.142からの無効なユーザーPIのパスワードの失敗ポート51666 SSH2
9月23日12:50:40 VPS.2DAYGEEK.COM SSHD [23911]:接続は95.210.113.142ポート51670 [Preauth]
9月23日12:50:40 VPS.2DAYGEEK.com SSHD [23909]:接続は95.210.113.142ポート51666 [Preauth]

ほとんどの場合、上記の出力にはプロセスの実際のポート番号は表示されません。このとき、ログ ファイルの詳細情報を確認するには、次の journalctl コマンドを使用することをお勧めします。

#journalctl |。
Sep 23 02:08:56 VPS138235.VPS.CA SSHD [997]:Signal 15を受信します。
9月23日02:08:56 vps138235.vps.ovh.ca systemd [1]:opensshサーバーデーモンを停止...
9月23日02:08:56 vps138235.vps.ovh.ca Systemd [1]:Openssh Server Daemon ...を開始...
9月23日02:08:56 VPS138235.VPS.OVH.CA SSHD [11584]:0.0.0.0ポート22でリスニングサーバー
9月23日02:08:56 VPS138235.VPS.OVH.CA SSHD [11584]:サーバーリスニング::ポート22。
9月23日02:08:56 vps138235.vps.ovh.ca systemd [1]:Opensshサーバーデーモンを開始しました。

プロセスのポート番号を確認することは、Linuxシステムのプロセスを占めています。

以下もご興味があるかもしれません:
  • Linuxポート使用量を表示し、占有プロセスを見つけて殺す
  • Linuxでプロセスが占有するポート番号を表示する
  • ポート占有LSOF -I:ポートを表示するLinuxメソッド
  • Linux でポートが占有されているかどうかを確認する方法
  • Linux/Windowsでポートを占有しているプログラム/プロセスを確認する方法
  • Linuxで占有されているポートのプロセス番号とプログラム名を表示する方法
  • LINUX ポートが占有されているかどうかを確認します

<<:  MySQL での正規表現置換のための replace と regexp の使用法の分析

>>:  MySQL の異常なエラー ERROR: 2002 を解決する方法

推薦する

Vue の computed と watch の違いを分析する

目次1. 計算入門1.1、getとsetの使い方1.2. 計算された属性キャッシュ2. 時計の紹介3...

jQuery+h5 で 9 マス抽選特殊効果を実現 (フロントエンドとバックエンドのコード)

序文:フロントエンド: jq+h5 で 9 グリッドのダイナミック効果を実現バックエンド: thin...

HTML でフロートをクリアする 2 つの方法

1. クリアフローティング法1前の親要素の高さを設定します。注: エンタープライズ開発では、可能であ...

Docker swarm を使用して Nebula Graph クラスターを迅速にデプロイする方法のチュートリアル

1. はじめにこの記事では、Docker Swarm を使用して Nebula Graph クラスタ...

Reactでレシピシステムを実装する方法を解説した記事

目次1. レシピ集1.1 プロジェクトの背景1.2 テクノロジースタック1.3 開発環境1.4. プ...

MySQL のインデックスと制約の例文

外部キーテーブルの主キーがどのテーブルの外部キーであるかを照会する 選択 テーブル名、 列名、 制約...

MySQL のデッドロック チェックとデッドロック除去の例の詳細な説明

1. クエリプロセスプロセスリストを表示2. 対応するプロセスを照会し、IDを強制終了します。検証(...

VMware Workstation 14 Pro インストール Ubuntu 16.04 チュートリアル

この記事では、VMware Workstation14 ProにUbuntu 16.04をインストー...

Pycharmとsshリモートアクセスサーバーdockerの詳細なチュートリアル

背景: 一部の実験はサーバー上で完了する必要があります。したがって、リモート サーバー上のコードをロ...

CSSはコーナーカット+ボーダー+投影+コンテンツ背景色のグラデーション効果を実現します

CSS を使用するだけで、コーナーカット + ボーダー + 投影 + コンテンツの背景色のグラデーシ...

ページングのどのページでMySQLのレコードをクエリするか

序文実際には、次のような問題に遭遇する可能性があります。特定のレコードの ID がわかっていて、その...

jQuery を使用して、iframe 下の無効なページ アンカー ポイントの問題を修正する

適用シナリオ: iframe ページにスクロール バーがなく、親ウィンドウにスクロール バーが表示さ...

MySQL 文字列連結関数 GROUP_CONCAT の詳細な説明

前回の記事では、クロステーブル更新について書きました。自分が書いた SQL を見たとき、自分がバカみ...

タブバーの切り替え効果を実現するJavaScript

タブバー: 異なるタブをクリックすると異なるコンテンツが表示され、クリックしたタブのスタイルが変更さ...

Windows10 HomeバージョンにDockerをインストールするときに発生する問題の概要

Docker ダウンロード アドレス: http://get.daocloud.io/#instal...