この質問は ネットワークポートは開いていますが、プロセスが接続されていません に似ています
私はそこからすべてを試し、ログなどを確認しましたが、何も見つかりません。
私のnetstatにTCPリスニングポートとpidのないUDPポートが表示されています。これらのポートをlsofで検索しても何も表示されません。
netstat -lntup
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 0.0.0.0:44231 0.0.0.0:* LISTEN -
udp 0 0 0.0.0.0:55234 0.0.0.0:* -
次のコマンドは何も表示しません。
lsof | grep 44231
lsof | greo 55234
fuser -n tcp 44231
fuser -n udp 55234
再起動後、これらの「同じ」2つの接続は、新しいポート番号を除いて存在します。
netstat -lntup
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 0.0.0.0:45082 0.0.0.0:* LISTEN -
udp 0 0 0.0.0.0:37398 0.0.0.0:* -
また、lsofコマンドとfuserコマンドは何も表示しません。
彼らが何かアイデアはありますか?それらについて心配する必要がありますか?
あなたが提供したデータから、それはいくつかのNFSマウントまたはRPCを使用する何かに関連していると思います。
rpcinfo -p
で、RPC関連のサービスで使用されている可能性のあるポートを確認できます。
これは私のシステムでどのように見えるかです
# netstat -nlp | awk '{if ($NF == "-")print $0}'
tcp 0 0 0.0.0.0:55349 0.0.0.0:* LISTEN -
udp 0 0 0.0.0.0:18049 0.0.0.0:* -
# rpcinfo -p
program vers proto port
100000 2 tcp 111 portmapper
100000 2 udp 111 portmapper
100024 1 udp 10249 status
100024 1 tcp 10249 status
100021 1 udp 18049 nlockmgr
100021 3 udp 18049 nlockmgr
100021 4 udp 18049 nlockmgr
100021 1 tcp 55349 nlockmgr
100021 3 tcp 55349 nlockmgr
100021 4 tcp 55349 nlockmgr
一部のプロセス/ pidはrootのみが使用できます。試す
Sudo netstat -antlp
tIME_WAIT状態でない開いているすべてのポートのPIDを返す必要があります
@ user202173などのヒントに基づいて、netstatでポートが-
としてリストされている場合でも、ポートを所有するプロセスを追跡するために以下を使用できました。
これが私の最初の状況でした。 Sudo netstat
は、PID /プログラムが-
のポートを示しています。 lsof -i
は何も表示しません。
$ Sudo netstat -ltpna | awk 'NR==2 || /:8785/'
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp6 0 0 :::8785 :::* LISTEN -
tcp6 1 0 ::1:8785 ::1:45518 CLOSE_WAIT -
$ Sudo lsof -i :8785
$
さあ釣りに行きましょう。まず、netstat
呼び出しに-e
を追加して、iノードを取得しましょう。
$ Sudo netstat -ltpnae | awk 'NR==2 || /:8785/'
Proto Recv-Q Send-Q Local Address Foreign Address State User Inode PID/Program name
tcp6 0 0 :::8785 :::* LISTEN 199179 212698803 -
tcp6 1 0 ::1:8785 ::1:45518 CLOSE_WAIT 0 0 -
次に、lsof
を使用して、そのiノードに接続されているプロセスを取得します。
$ Sudo lsof | awk 'NR==1 || /212698803/'
COMMAND PID TID USER FD TYPE DEVICE SIZE/OFF NODE NAME
envelope_ 145661 145766 drees 15u IPv6 212698803 0t0 TCP *:8785 (LISTEN)
これでプロセスIDがわかったので、プロセスを確認できます。そして残念ながら、それは消滅したプロセスです。そして、そのPPIDは1なので、その親を強制終了することはできません( 親がinitであるプロセスを強制終了するにはどうすればよいですか )。理論的には、initは最終的にそれをクリーンアップするかもしれませんが、私は待つのに飽きて再起動しました。
$ ps -lf -p 145661
F S UID PID PPID C PRI NI ADDR SZ WCHAN STIME TTY TIME CMD
0 Z drees 145661 1 2 80 0 - 0 exit May01 ? 00:40:10 [envelope] <defunct>
具体的にはわかりませんが、カーネルモジュール(NFSなど)には、これらのソケットに関連付けるPIDがありません。 lsmodで疑わしいものを探します。
これが役立つかどうかわかりません。私は同じ問題を抱えていて、私がやったことは次のとおりです:最初に、オプション-a(all)および-e(extended)を指定してnetstatを呼び出しました。後者のオプションを使用すると、使用されているポートに関連付けられているiノードを確認できます。次に、取得したiノード番号を使用してlsof | grepを呼び出し、そのiノードに関連付けられているプロセスのPIDを取得しました。それは私の場合にはうまくいきました。
このポートとの間で送受信されるトラフィックはありますか。tcpdump -vv -x s 1500 port 37398 -w trace.out
でキャプチャをファイルtrace.outに保存することを確認します。その後、wiresharkで開くか、tcpdump -vv port 37398
でそれを開き、直接何が起こっているかを確認します。
そのポートにtelnetしてみてください。udpソケットにnetcatを使用してください。何らかのバナーが表示される場合があります。
Rkhunterを入手して、システムにバックドアがないか確認してください。
Lsof/netstatのmd5ハッシュを、インストールメディアのハッシュと比較して、ファイルが更新されていないことを前提とします。