使用netstat -a -o -n 我可以获得端口和PID的列表
然后我需要去任务管理器并添加PID,看看它是谁。(相当令人沮丧)

我想知道是否有一个 CMD 命令可以完成这一切(使用find, for, powershell)
这样我就可以得到进程名称
我正在开发一个侦听端口 3000 的应用程序。显然它的一个实例仍在侦听端口,因为每当我启动它时,它都无法创建侦听器(C#、TcpListener,但这无关紧要),因为端口已经采取。
现在,任务管理器中不存在该应用程序,所以我试图找到它的 PID 并杀死它,这导致了这个有趣的结果:
C:\Users\username>netstat -o -n -a | findstr 0.0:3000
TCP 0.0.0.0:3000 0.0.0.0:0 LISTENING 3116
C:\Users\username>taskkill /F /PID 3116
ERROR: The process "3116" not found.
Run Code Online (Sandbox Code Playgroud)
我以前从未见过这种行为,并认为看看是否有人有解决方案很有趣。
更新:我启动了 Process Explorer 并搜索了 3000 并找到了这个:
<Non-existent Process>(3000): 5552
Run Code Online (Sandbox Code Playgroud)
我右键单击它并选择“关闭句柄”。它不再在 Process Explorer 中,但仍显示在 netstat 中,并且仍会阻止应用程序启动侦听器。
更新 2:找到了 Windows 的 TCPView,它将进程显示为"<non-existent>". 与 CurrPorts 一样,当我尝试关闭此工具中的连接时没有任何反应。
这是我得到的 netstat -tulpn 的输出:
tcp 0 0 127.0.0.1:2208 0.0.0.0:* LISTEN 2055/hpiod
tcp 0 0 127.0.0.1:631 0.0.0.0:* LISTEN 2077/cupsd
tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN 2138/sendmail: acce
tcp 0 0 127.0.0.1:2207 0.0.0.0:* LISTEN 2060/python
tcp 0 0 0.0.0.0:735 0.0.0.0:* LISTEN 1825/rpc.statd
tcp 0 0 :::111 :::* LISTEN 1781/rpcbind
tcp 0 0 :::80 :::* LISTEN 2624/httpd
tcp 0 0 :::22 :::* LISTEN 2096/sshd
udp 0 0 0.0.0.0:32768 0.0.0.0:* 2398/avahi-daemon:
udp 0 0 0.0.0.0:68 0.0.0.0:* 1581/dhclient
udp 0 0 0.0.0.0:729 0.0.0.0:* 1825/rpc.statd
udp …Run Code Online (Sandbox Code Playgroud) 我在 OS X Mountain Lion 笔记本电脑上,上面有几个 Vagrant 盒子。我试图找出哪个进程正在侦听端口 8080。我的变体产生了一百行但没有特定端口号。我假设是这样的:
netstat -XXX | grep 8080
Run Code Online (Sandbox Code Playgroud) 在Linux 上,我们可以使用tcpkill命令终止已建立的 TCP 连接。
例如,要删除与特定 IP 之间的所有连接:
tcpkill host ipaddr
Run Code Online (Sandbox Code Playgroud)
或者类似地,通过以下方式在 ethernet-1 上使用端口 21 终止所有连接:
tcpkill -i eth1 port 21
Run Code Online (Sandbox Code Playgroud)
同样,我想知道在 Windows 上杀死某些连接的命令是什么,确切地说是 Windows 7。就像我可以看到活动连接列表一样netstat -n,现在我想知道如何删除特定或一组连接?
我使用 netstat(在 Windows 中)查看 TCP 和 UDP 的监听端口:
我注意到在“外部地址”列中,UDP 显示*:*而不是0.0.0.0:0,这两个值是否表示相同的内容?如果是这样,那么为什么 UDP 显示*:*而不是0.0.0.0:0?
举一个具体的例子,OSX 如何选择这些默认条目中的哪一个netstat -nr路由到?
Destination Gateway Flags Refs Use Netif Expire
0/1 10.10.99.100 UGSc 0 0 ppp0
default 192.168.1.1 UGSc 5 0 en0
default 192.168.1.1 UGScI 1 0 en1
default 192.0.2.1 UGScI 157 2 ppp0
Run Code Online (Sandbox Code Playgroud)
据我所知,OSX 在其接口而不是路由表条目上使用指标。但是默认情况下所有这些接口指标都是 0 那么它如何选择呢?上次创建的界面?
我已经看到有些人建议它在网络首选项中的顺序,但在我的情况下,ppp0 接口(来自 SonicWall NetExtender)没有在那里列出。
这个帖子中有一些讨论,但我没有看到答案。
netstat -o在输出中包含一些计时器信息,但我没有在Timer列中的任何地方找到对输出的解释。
任何人都可以解释这一点或指出一个解释吗?
这就是 netstat -o 的输出结果(在 Ubuntu 8.04 上)。
Active Internet connections (w/o servers)
Proto Recv-Q Send-Q Local Address Foreign Address State Timer
tcp 0 0 192.168.22.1:443 111.111.11.210:5804 ESTABLISHEDkeepalive (6176.47/0/0)
tcp 0 0 192.168.22.1:443 192.168.22.253:48379 TIME_WAIT timewait (36.57/0/0)
tcp 0 924 192.168.22.1:47763 10.9.169.60:443 ESTABLISHEDon (0.34/0/0)
tcp 0 0 192.168.22.1:443 192.168.111.99:4059 ESTABLISHEDkeepalive (6963.60/0/0)
tcp 0 0 192.168.22.1:443 192.168.111.74:1729 ESTABLISHEDkeepalive (1393.60/0/0)
tcp 0 0 192.168.56.1:42204 10.9.169.60:443 ESTABLISHEDoff (0.00/0/0)
tcp 0 0 192.168.56.1:42207 10.9.169.60:443 ESTABLISHEDoff (0.00/0/0)
tcp 0 940 …Run Code Online (Sandbox Code Playgroud) 伙计们,我想知道我的特定端口是否正在使用 netstat 运行服务器?我如何做到这一点?