web-dev-qa-db-ja.com

netstat出力の意味は?

「Sudonetstat-an」と入力すると、これは次の出力の一部になります。

Proto Recv-Q Send-Q Local Address               Foreign Address             State      
tcp        0      0 192.99.202.17:39922        23.82.16.66:29842           TIME_WAIT  

私は最初の行が何を言っているのか混乱しています。

23.82.16.66のサーバーがポート29842またはポート39922を介してこのサーバーに接続しているということですか?

サーバーからそのIPへの発信接続ではなく、そのIPからの着信接続であることをどのように知ることができますか?

それが重要な場合、私はCENTOS6.7を実行しています。

2
Henley Wing

サーバーからそのIPへの発信接続ではなく、そのIPからの着信接続であることをどのように知ることができますか?

ローカルアドレスは、実行しているマシンのアドレス[〜#〜] netstat [〜#〜 ]コマンドは、TCP接続の状態を理解することで、ローカルアドレスの観点から着信か発信かを理解するのに役立ちます。

簡略化されたTCP有限状態マシン

状態:TIME-WAIT

状態の説明:デバイスは、他のデバイスからFINを受信して​​確認応答し、自身のFINを送信してACKを受信しました。 ACKが受信されたことを確認し、新しい接続との潜在的な重複を防ぐのを待つことを除いて、これで完了です。 (この状態の詳細については、 接続の終了について説明しているトピック を参照してください。)

イベントと遷移:タイマーの有効期限:指定された待機期間の後、デバイスはCLOSED状態に移行します。

ソース


TIME-WAIT

(サーバーまたはクライアントのいずれか)は、リモートTCPが接続終了要求の確認応答を受信したことを確認するために十分な時間が経過するのを待つことを表します。[によると RFC 79 a接続は、2 MSL(最大セグメントライフタイム)と呼ばれる最大4分間TIME-WAITにとどまることができます。]

ソース


別の良い説明

TCP/IPの動作方法により、接続をすぐに閉じることはできません。パケットは、接続が閉じられた後、順序が狂って到着するか、再送信される可能性があります。 CLOSE_WAITは、リモートエンドポイント(接続の反対側)が接続を閉じたことを示します。 TIME_WAITは、ローカルエンドポイント(こちら側)が接続を閉じたことを示します。遅延したパケットを接続に一致させて適切に処理できるように、接続は維持されています。接続は、4分以内にタイムアウトすると削除されます。

ソース


rfc793:画像ソース

enter image description here 画像ソース


その他のリソース

3
Pimp Juice IT

サーバーがポート39922でリッスンしているかどうかを確認すると、接続がリモート側から確立されたことがわかります。

次に例を示します。サーバーは標準ポート22でssh接続を受け入れます。netstat -anutp | grep :22を使用すると、サーバーがリッスンしているか、接続されているか、接続しているかを確認できます。サーバーへの2つのターミナルセッションを開き、sshを使用した1つの接続から3番目のサーバーへの接続の場合、上記のコマンドの出力は、サーバーがポート22でリッスンしていること、ローカル側に接続用のポート22があることを示します。サーバーとポート22がリモート側にリストされており、3番目のサーバーのIPと、この回線のローカル側にランダムなポートがあります。

Netstatコマンドの出力から、接続がローカルから開始されたのかリモートから開始されたのかがわからないと思います。

1
Zina

あなたはすでにあなたの質問に対して2つの良い答えを受け取っているので、あなたの投稿の行の間に私が読んだ何かに対処する新しいものを追加することをお詫びします。私の答えは、他の2つの答えをcomplementすることを目的としており、それらを置き換えることを目的としていません。

netstatの出力から、接続が自分のマシンによって開始されたのか、リモートマシンによって開始されたのかを判別することはできません。あなたがこの質問をしているという単純な事実は私を心配させます、そして私をさらに心配させるのはその出力のもう一つの奇妙な事実です:のためのhighポート(> 10,000を意味する)の使用両方接続の側面。

説明させてください。 PCは、client/severモデルで他のPCにサービスを提供します。たとえば、Webサーバーは、リモートクライアントからの指定されたポート(実際には2つ:80と443)でWebページの要求をリッスンします。同様にssh,ftp,dnsなども同様です。すべての必須サービスは、よく知られたポートでリッスンします(たとえば、 Wikipedia を参照)。そのうちのいくつかは、石に刻むことが非常に重要です。それらの割り当ては、少なくとも [〜#〜 ] iana [〜#〜] 。他の多くのポートは、その使用がIANAによって規制されていませんが、特定のアプリケーションでは従来型になっています。すべてのlisteningポートに共通しているのは、それらが10000未満であるということです。高いポート(10,000を超えるポート)は、従来、outgoing接続用に予約されており、notリスニング用に予約されています。

では、どうしてポート39922と29842の間の接続がわかりますか?誰かがあなたのマシンまたはリモートマシンのいずれかで非常に非標準のポートにサービスをセットアップしたためです。あなたのマシンはlistening serverですか?コマンド

Sudo ss -lntp

マシンが着信(TCP、-tオプション)接続をリッスンするすべてのポート、および関連するプロセスが一覧表示されます。したがって、ポート39922でリッスンしているプロセスがある場合は、それを確認できます。

さて、supposeこれは確かに事実であることが判明しました、i.e.あなたがセットアップしなかったサービスがポート39922でリッスンしています。誰がそれをしますか?ツール(netcatまたはnc、TCP接続)のスイスアーミーナイフを使用するハッカーは、PC間の高いポートを介して簡単に接続できますとp0wnedpc。これが私が心配している理由です。

また、23.82.16.66がクラウドサーバーソリューションを提供する複数のデータセンターを所有する会社であるNobisTechnologyに属していることを知っても安心できません。そして、ケーキの上のアイシング、私が上記の情報をグーグルで実行したとき、私はNobis Technologyがどのように有名なスパマーであるかに関するシステム管理者によって この投稿 に出くわしました、そして上記のアドレスが23.82.16.66、貧しい男がブロックしようとしている範囲の1つに真っ直ぐに収まります。そして、見よ、あなたのローカルIPアドレス192.99.202.17は、 whatismyipaddress.com によってあなたのメールサーバーであると報告されています。

結局、私はそれから何を作りますか?よく知られているスパマーからメールサーバーへの接続。ハイポートのみを介して、何も知らない。システムが何らかの理由で侵害された可能性があります。だから私はこの記事を書いています。

0
MariusMatutiae