use*_*849 29 networking process
我有一个服务,保持某个端口打开。
我正在获取数据,我既不希望也不想得到,我正试图确定这些数据的来源。那么如何找到哪个进程将数据发送到特定端口,而不是哪个进程正在侦听。
Sté*_*las 30
对于 TCP(尽管相同的方法适用于 SCTP 1或任何面向连接的传输协议),与寻找侦听协议相同:
lsof -nPi tcp:the-port
Run Code Online (Sandbox Code Playgroud)
将报告在该端口上打开 TCP 套接字的进程。如果您知道源端口(您的服务器应用程序可以知道它并记录它),您可以使用它来查明流氓客户端。
对于 UDP 或 RAW 套接字,虽然我认为 systemtap 或 dtrace 之类的东西可以派上用场,但它会更棘手。可能也被审计了。
1尽管 SCTP 支持(仅在 Linux 上)已lsof在 4.86 版中添加,但您不能使用-i显式请求 SCTP 套接字。这里可以lsof -nP | grep -w 'SCTP.*:the-port'用作启发式。
小智 5
尝试以下操作:
$sudo ss -tp
Run Code Online (Sandbox Code Playgroud)
或者:
$sudo netstat -A inet -p
Run Code Online (Sandbox Code Playgroud)
为了避免本地主机结果:
$sudo netstat -A inet -p | grep -v localhost
Run Code Online (Sandbox Code Playgroud)
仅列出 ESTABLISHED 连接:
$sudo netstat -A inet -p | grep -v localhost | grep ESTABLISHED
Run Code Online (Sandbox Code Playgroud)
根据它为发送数据而建立的连接类型,其中一种方法将帮助您达到目标。
用于tcpdump port 1234获取发送到该端口的数据。您可以使用 Wireshark 之类的程序在另一台计算机上对其进行分析(使用该-w选项捕获到文件)。或者,直接使用 Wireshark。
如果它建立并保持打开的 tcp/udp 连接,您可以使用它netstat来查找连接的远程 IP。
列出进程的打开套接字,如 @StephaneChazelas 提供的答案所示。
| 归档时间: |
|
| 查看次数: |
41328 次 |
| 最近记录: |