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


135

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

netstat -a在命令行上使用过。

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


2
@Justgivemeaname:nmap是用于检查另一台主机上开放端口的工具。如果您可以netstat在机器上运行,则使用它会更快,更可靠。
David Foerster,2014年

@DavidFoerster:不知道netstat,所以我知道了。它在链接中说,但是应该从另一个主机使用它。谢谢!
Justgivemeaname 2014年

Answers:


163

有一些参数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开始)

**他们也可以与对等方建立连接/断开连接。


71

您可以使用以下命令:

netstat -tulnp | grep <port no>

如果显示某些过程,则使用它。如果没有输出,则关闭(不使用)。


20

易于使用的另一种备用命令行可以找出哪个进程正在使用端口:

lsof -n -i4TCP:$PORT | grep LISTEN

我在.bash_profile中添加了下一个功能,

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

然后运行“ pslisten 5060”来查看谁在抢我的SIP端口。

它也可以与Apple Mac OS X一起使用。


13

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

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

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

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

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


谢谢。你写的-a意思是服务器并建立。“服务器”是否表示某些服务正在侦听的端口?“已建立”是否表示存在现有连接的端口,而不管它是客户端端口还是服务器端口?那什么样的端口不-a显示呢?
蒂姆(Tim)

我不认为该-a选项意味着“所有活动”插槽;它只是意味着“全部”。netstat默认情况下显示所有活动套接字,但不包括被动套接字(打开,侦听)。通过使用该-a选项,可以显示主动和被动插座。
Egon Olieux

@EgonOlieux谢谢。我纠正了;编辑了答案。
heemayl

@heemayl您的答案的第二部分仍然不正确。处于“侦听”状态的TCP套接字永远不能成为连接。它没有连接任何东西,只是在监听。因此,侦听TCP套接字也称为被动套接字。如果客户端尝试连接到服务器上的(侦听)套接字,则会在服务器上创建一个新的套接字以与客户端建立连接。作为已建立连接的一部分的套接字称为活动套接字。
Egon Olieux

3

另一个选择是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                                                              :::*                    

1
我不知道这一点,谢谢zee
nick fox

2

否则使用手表可能会有所帮助,然后随心所欲欣赏。

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

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

1
-a与-l冲突,-a捕获所有已建立或侦听的信息,-l只是捕获侦听的信息,因此实际上它是'-ltnp'tcp,'-lunp'udp或'-ltunp'tcp + udp
ModerateJavaScriptDev

1

实际上,有更好的方法来查看您打开了哪些端口。netstat或的问题lsof是,它们查询网络堆栈,并且实际上不连接至计算机,而是尝试查看系统上正在运行的内容。更好的方法是这样使用nmap

nmap -sT -O localhost

查看打开的端口。


0
  1. 尝试此操作以获取该范围内打开的端口的列表。

    for p in {1..1023}
    do
       (echo >/dev/tcp/localhost/$p) >/dev/null 2>&1 && echo "$p open"
    done
    
  2. 这个命令将显示它是什么!

    cat /etc/services | grep {PORTNumber}
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.