我将我的容器的docker端口暴露给主机
docker run -p 80:80 ...
Run Code Online (Sandbox Code Playgroud)
然后我尝试显示所有监听端口以进行调试,netstat例如:
netstat -at
Run Code Online (Sandbox Code Playgroud)
奇怪的是,netstat不会显示具有暴露端口的docker容器,尽管他们正在监听并回复浏览器.
如何netstat显示这些暴露的端口?
更新: 我在Debian 8 Jessie上运行它.这是我做的:
docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
9dfa08bab50d workflows-nginx "/bin/sh -c '/usr/sbi" 2 hours ago Up 2 hours 0.0.0.0:80->80/tcp, 0.0.0.0:443->443/tcp workflows-nginx
d0b0c3f90f13 workflows-django "/bin/sh -c 'python /" 7 hours ago Up 3 hours 0.0.0.0:8000->8000/tcp workflows-django
99a857c92533 workflows-db "/docker-entrypoint.s" 7 hours ago Up 3 hours 5432/tcp workflows-db
Run Code Online (Sandbox Code Playgroud)
这里docker报告容器端口被转发到主机.此外,如果我停止workflows-nginx容器,它将停止通过http(端口80)回答浏览器.如果我再次启动它,它会再次开始响应.
这是输出sudo netstat -at | less:
Active …Run Code Online (Sandbox Code Playgroud) 我有一个在Windows上运行在WebLogic 11g上的Java应用程序,经过几天后,它变得没有响应.我注意到的一个可疑症状是,netstat即使服务器处于空闲状态,大量连接(大约3000个)也会显示CLOSE_WAIT状态.由于应用程序服务器正在管理客户端连接,因此我不确定是什么导致了这种情况.我们还进行了许多环回到同一服务器的Web服务调用,但我相信这些连接会正常关闭.还有什么可能导致这种情况,以及如何解决这样的问题?
有些事情对我来说很奇怪:
有人可以快速概述如何解释这些结果吗?
在netstat命令输出中使用Recv-Q和Send-Q列有什么用?当我们在实时场景中使用它时?在我的系统中,列的两个值始终显示为零.这是什么意思?
我觉得这是可能的,我只是不太确定信息的位置.
我想获取特定应用程序的上/下统计信息,但我想使用ADB而不是wireshark或netty来完成.
我知道我可以看到vmData使用
adb shell
cd proc
cd pid#
cat status
Run Code Online (Sandbox Code Playgroud)
我知道我可以看到netstats使用:
ADB Shell dumpsys netstats details full
Run Code Online (Sandbox Code Playgroud)
这给了我这些结果:
Dev stats:
Pending bytes: 1410076
Complete history:
ident=[[type=MOBILE, subType=COMBINED, subscriberId=310260...]] uid=-1 set=ALL tag=0x0
NetworkStatsHistory: bucketDuration=3600000
bucketStart=1349211600000 activeTime=3600000 rxBytes=19656154 rxPackets=16897 txBytes=615620 txPackets=8084 operations=0
bucketStart=1349215200000 activeTime=3600000 rxBytes=28854708 rxPackets=23363 txBytes=1037409 txPackets=12206 operations=0
bucketStart=1349218800000 activeTime=3600000 rxBytes=1839274 rxPackets=1565 txBytes=89791 txPackets=914 operations=0
bucketStart=1349222400000 activeTime=3600000 rxBytes=17421 rxPackets=88 txBytes=18376 txPackets=95 operations=0
bucketStart=1349226000000 activeTime=3600000 rxBytes=506966 rxPackets=788 txBytes=96491 txPackets=859 operations=0
Run Code Online (Sandbox Code Playgroud)
不幸的是,这看起来像一个组合的netstat,不区分应用程序.
所以我的问题是,通过简单地使用命令提示符,有没有办法通过唯一的PID#或应用程序名称来查看网络流量?
编辑
好吧,我取得了一些进展
有了这段代码
adb shell cat proc/1638(thePID)/net/dev > C:\netstats.txt …Run Code Online (Sandbox Code Playgroud) 我已经工作了5天,试图在iPhone上学习和实现网络监视器.我查看了来自苹果的netstat代码,我失去了25%的头发.
我找到了JB Devices的链接,但我需要它在非JB设备上执行.(无论Apple是否在App商店接受它).
我发现了一些有用的链接:
如何在iPhone上获取tcp udp开放端口列表(我无法解析此问题中返回的数据:()
sysctlbyname buf返回类型(我不是网络人......不能理解这一个,可能是你们可以帮助:))
我可以说我从第一个链接得到了一些东西.你能帮我解析数据吗?有没有其他方法来实现这一目标?
我正在努力确保Windows服务程序(在.NET之上运行)正确释放其网络连接.
在本地运行服务时,我知道它将在端口57300上创建大量到localhost的HTTP连接.我用它netstat来监视它们是否正确释放.
我很惊讶地发现这个端口的许多连接都归"系统空闲进程"(PID = 0)所有.

在这里我们可以看到服务程序只拥有其中三个连接(PID = 5012).所有其他人都归PID 0所有.
我的主要问题是:为什么会这样?而我需要照顾?
但我也想知道:
这是否意味着服务程序确实正确地释放了连接?
如果需要,这些连接会被重用吗?
在.NET ServicePointManager中进行这样的连接"保留插槽" 吗?
我正在使用 Windows 10 Pro 机器。
当我运行时netstat,它kubernetes:port在活动连接中显示为外部地址。
这是什么意思?我已经检查过,我的机器上没有运行 kubernetes 集群。
如何关闭这些连接?
Minikube 状态:
$ minikube status
host:
kubelet:
apiserver:
kubectl:
Run Code Online (Sandbox Code Playgroud) 我尝试在端口7054上启动Python SimpleHTTPServer:
$ sudo python -m SimpleHTTPServer 7054
...
socket.error: [Errno 98] Address already in use
Run Code Online (Sandbox Code Playgroud)
所以,我运行了以下命令:
$ sudo netstat -ntpu | grep 7054
$ sudo lsof -i -n -P | grep 7054
Run Code Online (Sandbox Code Playgroud)
但我没有结果.