序幕:
在许多恰好充当 NFS 客户端的机器上,netstat报告两个打开的端口,但没有列出关联守护程序的 PID。通常这可能有点令人担忧。
# netstat -lnp | egrep -- '- +$'
tcp 0 0 0.0.0.0:57448 0.0.0.0:* LISTEN -
udp 0 0 0.0.0.0:48933 0.0.0.0:* -
Run Code Online (Sandbox Code Playgroud)
另外netcat确认 TCP 端口确实是打开的。
# nc -v localhost 57448
localhost [127.0.0.1] 57448 (?) open
^C
Run Code Online (Sandbox Code Playgroud)
然而lsof,这两个端口没有报告任何内容。阴谋增长。
# lsof -i TCP:57448 -i UDP:48933
Run Code Online (Sandbox Code Playgroud)
然而,rpcinfo最终为我们指明了正确的方向。它由nlockmgr,又名lockdNFS保持开放。取消搜索。
# rpcinfo -p | egrep '57448|48933'
100021 1 udp 48933 nlockmgr
100021 3 udp 48933 nlockmgr
100021 4 udp 48933 …Run Code Online (Sandbox Code Playgroud) 在 /proc/net/ip_conntrack 我有:
established 3076
time_wait 4346
total 7468
Run Code Online (Sandbox Code Playgroud)
在 netstat 我有:
established 1051
time_wait 73
total 1165
Run Code Online (Sandbox Code Playgroud)
这是为什么?其他联系在哪里?如何弄清楚他们在做什么?
更新:有关 ip_conntrack 的更多统计信息
assured 5230
unreplied 2133
total 7427
Run Code Online (Sandbox Code Playgroud) 似乎我的 debian 7.1 输出了一些 ssh 蛮力。我正在寻找如何找到这些蛮力的来源。我在 netstat 输出中搜索,但我如何识别这个黑客的踪迹?
root@server:~# netstat -pa
Connexions Internet actives (serveurs et établies)
Proto Recv-Q Send-Q Adresse locale Adresse distante Etat PID/Program name
tcp 0 0 *:sunrpc *:* LISTEN 1778/rpcbind
tcp 0 0 *:ftp *:* LISTEN 3344/vsftpd
tcp 0 0 *:ssh *:* LISTEN 2853/sshd
tcp 0 0 *:smtp *:* LISTEN 3317/master
tcp 0 0 localhost:6502 *:* LISTEN 7660/murmurd
tcp 0 0 localhost:mysql *:* LISTEN 2796/mysqld
tcp 0 0 *:43978 *:* LISTEN 1809/rpc.statd
tcp 0 384 VPS-286:ssh …Run Code Online (Sandbox Code Playgroud) 我可以执行netstat -atulpn | grep java查找所有 Java 进程及其附带端口,这很棒,但我还希望还显示进程的完整执行参数。我不相信netstat到目前为止我所探索的一切都是可能的,所以我想我必须编写一个脚本来处理输出netstat,然后将 pid 传递进去ps,然后美化输出以显示ip+端口和完整的命令行。
有没有更好的方法来做到这一点,或者这是唯一的选择?
我在多个 Web 服务器的重负载下运行 memcached 服务器。在调查一些奇怪的应用程序级别行为时,我们发现netstat -s在 memcached 框上显示了很多“由于意外数据而重置连接”。
该值在负载下每秒上升数百。
这是什么意思,我该怎么办?
示例输出:
Ip:
147533037 total packets received
2 with invalid addresses
0 forwarded
0 incoming packets discarded
147533033 incoming packets delivered
154883954 requests sent out
5 outgoing packets dropped
Icmp:
27 ICMP messages received
4 input ICMP message failed.
ICMP input histogram:
destination unreachable: 27
0 ICMP messages sent
0 ICMP messages failed
ICMP output histogram:
IcmpMsg:
InType3: 27
Tcp:
8010699 active connections openings
8086268 passive connection openings
6146 …Run Code Online (Sandbox Code Playgroud) 我们有一个在 Mac OS X 上运行的 Java 服务器应用程序。
有时这个应用程序变得没有响应,我们不得不使用kill -9. 然而,这个过程并没有消失;它似乎仍然是ps,其名称周围带有括号,并且 STAT 列中有一个问号:
$ ps u -p 776
USER PID %CPU %MEM VSZ RSS TT STAT STARTED TIME COMMAND
camadmin 776 0.0 0.0 0 0 ?? ?E 5:12PM 0:00.00 (java)
Run Code Online (Sandbox Code Playgroud)
更重要的是,服务器正在使用的端口仍然是绑定的:
$ netstat -na | grep 9902
tcp4 0 0 *.9902 *.* LISTEN
Run Code Online (Sandbox Code Playgroud)
即使它不可见lsof:
$ sudo lsof -P -i tcp | grep 9902
$
Run Code Online (Sandbox Code Playgroud)
由于端口仍然绑定,我们无法重新启动服务器应用程序。没有重新启动机器,可以做些什么来释放端口并真正杀死这个进程?
我看到netstat -t选项的帮助说Displays the current connection offload state.
我在 Windows 命令控制台中尝试过。
该Offload State值显示InHost。
是什么Offload意思netstat?
谢谢。
AFAIK,当主机尝试与另一台服务器建立大量连接并且会话耗尽了所有可用的临时端口时,就会发生端口耗尽。例如
192.168.1.1:端口 -> 10.20.30.40:443
这看起来并不常见,但对于负载均衡器来说这是一个问题。我的问题是,有没有办法获得即将到来的预警?
我知道我可以使用 netstat 来获取所有连接,但是如果有数万个连接。运行命令、对目标进行排序并计算共享相同客户端 IP、服务器 IP 和服务器端口的连接数将需要相当多的资源。并定期进行。
有更容易的方法吗?当 TCP 堆栈分配端口时,它是否可以知道它在散列未使用的端口并生成错误或日志时遇到问题?
我在 Windows 2008 服务器上遇到一些问题,部分网络连接无法通过。例如,在服务器上的 Web 应用程序中,我们需要打开到另一台服务器的套接字连接,有时会失败并显示以下消息:
通常只允许每个套接字地址(协议/网络地址/端口)使用一次
我查找了错误,这导致我进入此页面:http://msdn.microsoft.com/en-us/library/aa560610( v=bts.20).aspx,这表明它可能是 TCP/IP 端口精疲力尽。
当我执行 netstat -n 时,我在端口 80 上获得大量 TIME_WAIT 连接。
有谁知道这可能是什么原因造成的?
我正在运行一个小臂板,在我们的本地网络内提供一些服务。当我尝试了解 docker 对 ipv6 的支持时,我对第一次测试的结果感到非常困惑。
我的网络由使用 dhcpv6 的单个路由控制,每个客户端都有 2 个有效的全局 ipv6 地址(还有 1 个本地 ipv4),并受到路由器防火墙的保护(不允许从互联网到客户端的请求)。
Arm 板运行的是 ubuntu 16.04,具有有效的 ipv6 地址并启用了隐私扩展。
所有docker容器都使用默认的桥接网络,没有任何调整。
在docker主机上
netstat -tulpen|grep docker
Run Code Online (Sandbox Code Playgroud)
节目
tcp6 0 0 :::8080 :::* LISTEN 0 22490 1559/docker-proxy
Run Code Online (Sandbox Code Playgroud)
没有一个 ipv4 服务正在侦听。
在这个 docker 容器内,相同的 netstat 请求给出
tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 0 23955 8/nginx
tcp6 0 0 :::80 :::* LISTEN 0 23956 8/nginx
Run Code Online (Sandbox Code Playgroud)
Nginx 正在侦听 ipv6 和 ipv4 - 端口 80 暴露给端口 8080
docker run (...) -p 8080:80 (...)
Run Code Online (Sandbox Code Playgroud)
检查桥接网络
docker …Run Code Online (Sandbox Code Playgroud)