如何检查我的计算机上的打开/关闭端口?

如何检查计算机上的打开/关闭端口?

我在命令行上使用了netstat -a

  • 端口状态“LISTENING”是否表示端口已打开?
  • 输出中未显示的任何端口是否已关闭?

netstat的一些参数对此有用:

  • -l--listening仅显示当前正在侦听传入连接的套接字。
  • -a--all显示当前正在使用的所有套接字。
  • -t--tcp显示tcp套接字。
  • -u--udp显示udp套接字。
  • -n--numeric将主机和端口显示为数字,而不是在dns中解析并查看/ etc / services。

你可以混合使用这些来获得你想要的东西。 要了解当前使用的端口号,请使用以下方法之一:

 netstat -atn # For tcp netstat -aun # For udp netstat -atun # For both 

在输出中,所有提到的端口都在使用,要么监听传入连接,要么连接到对等端**所有其他端口都关闭。 TCP和UDP端口为16位宽(从1-65535开始)

**他们也可以与同伴连接/断开连接。

您可以使用此命令:

 netstat -tulnp | grep  

如果它显示了一些使用它的过程。 如果没有输出则关闭(未使用)。

另一个易于使用的替代命令行,用于找出使用端口的进程:

 lsof -n -i4TCP:$PORT | grep LISTEN 

我在.bash_profile中添加了下一个函数,

 function pslisten { echo `lsof -n -i4TCP:$1 | grep LISTEN` } 

现在运行“pslisten 5060”以查看谁正在抓取我的SIP端口。

它也适用于Apple Mac OS X.

端口状态“LISTENING”是否表示端口已打开?

是。 这意味着某些服务正在侦听计算机上的该端口以进行传入连接,即此端口已打开以建立新连接。

输出中未显示的任何端口表示它已关闭?

是。 记住netstat -a将显示所有活动( 侦听 )和被动( 非侦听 )连接,即充当两个服务器的端口(某些服务正在侦听来自不同机器/进程的连接的这些端口)并建立(连接是无论主机/服务可以是服务器还是客户端,都建立在这些端口上

所有TCP和UDP端口都属于一个名为套接字的类别,其中有很多。 要查看套接字信息,您可以检查man ss

另一种选择是ss 。 它更容易使用….

以下命令仅输出当前侦听套接字的列表。

 root@server:~# ss -l Netid State Recv-Q Send-Q Local Address:Port Peer Address:Port u_dgr UNCONN 0 0 * 23353 * 23352 u_dgr UNCONN 0 0 * 568 * 362 u_dgr UNCONN 0 0 * 14836 * 14837 u_dgr UNCONN 0 0 * 20446 * 369 u_dgr UNCONN 0 0 * 22877 * 369 u_dgr UNCONN 0 0 * 504 * 347 u_dgr UNCONN 0 0 * 16298 * 369 u_dgr UNCONN 0 0 * 23343 * 369 u_dgr UNCONN 0 0 * 24125 * 369 u_dgr UNCONN 0 0 * 24617 * 369 u_dgr UNCONN 0 0 * 23352 * 23353 u_dgr UNCONN 0 0 * 23334 * 369 u_dgr UNCONN 0 0 * 17113 * 369 u_dgr UNCONN 0 0 * 16957 * 369 u_dgr UNCONN 0 0 * 14793 * 362 u_dgr UNCONN 0 0 * 23345 * 362 u_dgr UNCONN 0 0 * 24070 * 369 udp UNCONN 0 0 *:sunrpc *:* udp UNCONN 0 0 *:981 *:* udp UNCONN 0 0 :::sunrpc :::* udp UNCONN 0 0 :::981 :::* tcp LISTEN 0 128 127.0.0.1:85 *:* tcp LISTEN 0 128 *:ssh *:* tcp LISTEN 0 128 *:3128 *:* tcp LISTEN 0 100 127.0.0.1:smtp *:* tcp LISTEN 0 128 *:8006 *:* tcp LISTEN 0 128 *:sunrpc *:* tcp LISTEN 0 128 :::ssh :::* tcp LISTEN 0 100 ::1:smtp :::* tcp LISTEN 0 128 :::sunrpc :::* 

或者这可能有助于使用手表,然后玩你想看到的东西。

 sudo watch -d -n0 "netstat -atnp | grep ESTA" sudo watch -d -n0 "netstat -tulnp | grep ESTA" 

实际上,有一种更好的方法可以查看您打开的端口。 netstatlsof的问题在于它们查询网络堆栈并且实际上没有连接到计算机,而是试图查看系统上正在运行的内容。 更好的方法是像这样使用nmap

 nmap -sT -O localhost 

要查看开放端口。