我知道如何使用 lsof 或 netstat 做相反的事情(找出哪个进程打开了给定的端口),但是对 Google 的广泛研究并没有帮助我解决相反的问题。
我知道我可以将“netstat -np”与一些 grep 和 sed 结合使用,但它看起来很笨拙。是否有反向版本的“lsof -i tcp:80”可以显示给定进程打开的所有本地端口?
我试图了解 TCP 端口在哪些接口上打开
使用 windows netstat 命令我得到如下结果:
TCP [::]:10000 MyMachineName:0 LISTENING
Run Code Online (Sandbox Code Playgroud)
这里的符号“::”是什么意思?对于其余端口,它正确显示本地环回或 LAN 机器名称,在某些情况下甚至显示 0.0.0.0。
一个非常繁忙的代理服务器有很多“SYNs to LISTEN sockets drops”。
我了解到一个原因可能是积压量太小。但在这种情况下,“套接字的监听队列溢出的次数”值应该相等(事实并非如此)。
那么这种行为的原因可能是什么?也许是坏的网卡?
我们有 5 个代理,其中两个数字不相等,所以这个问题似乎发生在那里。
这是 netstat 的输出:
$ netstat -s | grep -i list
238627 times the listen queue of a socket overflowed
8610307 SYNs to LISTEN sockets dropped
Run Code Online (Sandbox Code Playgroud)
服务器有 ipv4 和 ipv6 流量,也许有帮助?
我正在尝试查找 Kubernetes 集群上运行的哪个应用程序正在使用特定端口与 RabbitMQ 集群进行通信。在 RabbitMQ 上,我看到连接来自 192.168.1.10:34226。192.168.1.10是Kubernetes节点之一。登录到 192.168.1.10 后,我检查是否通过 tcpdump 命令从该节点建立了连接tcpdump -i eth0 port 34226。我看到两个方向的交通。现在我正在尝试查找哪个进程正在建立此连接。首先我尝试了 netstat:
netstat -tapn | grep 34226
结果什么也没发现。然后我尝试了 ss 但仍然一无所获。连接已建立,通过 tcpdump 我可以看到发送到 RabbitMQ 的心跳数据包以及来自 RabbitMQ 的响应。但 netstat 和 ss 不报告已建立的连接。
更新1
我发现这与网络命名空间有关。我的问题与this问题类似,但我需要找到从34226端口建立连接的进程的PID。
在我的 Linode 上 sudo netstat -tulp 给了我:
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 *:ssh *:* LISTEN 2030/sshd
tcp 0 0 *:http *:* LISTEN 2178/httpd
tcp 0 0 *:ssh *:* LISTEN 2030/sshd
udp 0 0 *:bootpc *:* 1937/dhclient
Run Code Online (Sandbox Code Playgroud)
为什么 sshd 在那里两次?
我有一个 RHEL 服务器,上面有几个应用程序,我试图找出其中一个正在调用外部 Web 服务。我有 TCP 转储显示正在进行的调用,并且通过各种工具我能够确定进行这些调用的临时端口。但是,我无法弄清楚如何将该临时端口映射到 pid。我知道我可以使用lsof -i将绑定端口映射到 pid,但这不是我的问题。
有什么方法可以将正在使用的临时端口映射到 pid 或其他指示哪个文件正在调用的指标?
我有一台服务器,今天我的服务器负载超过 20,我发现一个命令可以检测到服务器的活动连接以进行 DDOS 检测并拒绝 IP。
netstat -anp | grep 'tcp\|udp' | awk '{print $5}' | cut -d: -f1 | sort | uniq -c | sort -n
Run Code Online (Sandbox Code Playgroud)
此命令的结果是:
1 109.162.158.160
1 109.162.192.55
1 127.0.0.1
1 206.217.193.220
1 91.99.170.69
2 66.197.219.236
5 213.152.172.169
32 0.0.0.0
583
Run Code Online (Sandbox Code Playgroud)
没有IP的583连接,我该如何解决这个问题?服务器负载超过 20
tnx 为您提供帮助。
TLDR:我如何更深入地挖掘我的 Mac mini OSX 服务器以确定哪些进程消耗了如此多的带宽,或者所有入站流量来自哪里?
资源缓存开启,所有资源都被缩小或图像被粉碎,我们的页面比上个月的网站 (www.vulytrampolines.com) 消耗的带宽更少,我们的分析流量是相同的。
背景故事:我们有 2 台 mac mini 服务器运行我们的网站/登台/数据库等。自从从美国的专用服务器迁移到城市的托管地点后,我们的带宽消耗不知何故增加了四倍。两者之间有一个数据库复制过程设置,以及DNS和各种网站(例如大文件、数据库任务、内网包等在临时服务器上,网站和数据库在生产服务器上)
我们的临时服务器在3 天内有7GB 的入站流量。有谁知道如何检查入站流量来源,以查看 200k 连接处的入站流量的一致流可能来自哪里?我们不知道。我们根本不向它发送文件,唯一应该处于活动状态的是 SSH 和数据库复制过程。[见下文] 显示我们已经建立了大约 20 多个与 625 端口的 close_weight 连接和 30 多个 close_weight 连接。我们还不清楚这是如何发生的。netstat
令人讨厌的是,webstats 显示我们没有使用接近 11.66GB 的 HTTP 流量(它说我们在上个月使用了 22GB,但我们的出站流量记录为超过 100GB)。数据库统计数据表明,我们也没有使用足够的带宽来导致问题。
这是我们的登台服务器 venus1(几个星期以来一直是这样):

这是我们的生产服务器 venus2:

netstat -anp tcpvenus1 上的输出。大部分国外地址来自我们的工作IP地址。11211 是内存缓存。
tcp4 0 0 122.99.117.18.49712 204.93.223.143.80 ESTABLISHED
tcp4 0 0 122.99.117.18.11211 122.99.117.18.49711 ESTABLISHED
tcp4 0 0 122.99.117.18.49711 122.99.117.18.11211 ESTABLISHED
tcp4 0 52 122.99.117.18.22 59.167.152.67.56106 …Run Code Online (Sandbox Code Playgroud) 我对系统管理很陌生,我一直在努力更熟悉像 netsat 这样的工具。如果我netstat -n在我的服务器上运行,我会看到这一行:
tcp 0 0 xxx.xxx.xxx.xxx:44573 xxx.xxx.xxx.xxx:443 ESTABLISHED
Run Code Online (Sandbox Code Playgroud)
但是,我使用 iptables 的默认策略为 DROP,而 44573 不是我允许流量通过的端口之一。我的规则在 iptables 中是这样的:
Chain INPUT (policy DROP)
target prot opt source destination
ACCEPT tcp -- anywhere anywhere tcp dpt:pcsync-https state NEW,ESTABLISHED
ACCEPT tcp -- anywhere anywhere tcp dpt:21022 state NEW,ESTABLISHED
ACCEPT tcp -- anywhere anywhere tcp dpt:http state NEW,ESTABLISHED
ACCEPT tcp -- anywhere anywhere tcp dpt:https state NEW,ESTABLISHED
ACCEPT tcp -- anywhere anywhere tcp dpt:ftp state NEW,ESTABLISHED
ACCEPT tcp -- anywhere anywhere tcp …Run Code Online (Sandbox Code Playgroud) 当我运行命令时,netstat -tln我看到以下输出:
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State
tcp 0 0 127.0.0.1:3306 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN
tcp6 0 0 :::8000 :::* LISTEN
tcp6 0 0 :::80 :::* LISTEN
tcp6 0 0 :::22 :::* LISTEN
tcp6 0 0 :::443 :::* LISTEN
Run Code Online (Sandbox Code Playgroud)
我理解除了0.0.0.0:22和之外的所有条目127.0.0.1:3306;为什么会有这些条目?
我使用 iptables 作为我的防火墙工具,想知道我是否需要禁用它以及该条目最初是如何显示的。
我知道那3306是针对 mysql 的。但是为什么 SSH 和 Mysql 有特定的 IP 地址,而其他服务器没有?