如何查看服务器端口号

时间:2022-05-02 19:41 | 分类: 句子大全 | 作者:未来科技中心 | 评论: 次 | 点击:

如何查看服务器端口号

1. 如何查看服务器所开放的端口

在服务器中要查看端口,可以使用Netstat命令:

1、依次点击“开始→运行”,键入“cmd”并回车,打开命令提示符窗口。

2、在命令提示符状态下键入“netstat -a -n”,按下回车键后就可以看到以数字形式显示的TCP和UDP连接的端口号及状态。

端口相关的概念:

在网络技术中,端口(Port)包括逻辑端口和物理端口两种类型。物理端口指的是物理存在的端口,如ADSL Modem、集线器、交换机、路由器上用 于连接其他网络设备的接口,如RJ-45端口、SC端口等等。逻辑端口是指逻辑意义上用于区分服务的端口,如TCP/IP协议中的服务端口,端口号的范围从0到65535,比如用于浏览网页服务的80端口,用于FTP服务的21端口等。由于物理端口和逻辑端口数量较多,为了对端口进行区分,将每个端口进行了编号,这就是端口号

端口按端口号可以分为3大类:

1:公认端口(Well Known Port)

公认端口号从0到1023,它们紧密绑定与一些常见服务,例如FTP服务使用端口21,你在 /etc/services 里面可以看到这种映射关系。

2:注册端口(Registered Ports):

从1024到49151。它们松散地绑定于一些服务。也就是说有许多服务绑定于这些端口,这些端口同样用于许多其它目的。

3: 动态或私有端口(Dynamic and/or Private Ports)

动态端口,即私人端口号(private port numbers),是可用于任意软件与任何其他的软件通信的端口数,使用因特网的传输控制协议,或用户传输协议。动态端口一般4915265535Linux中有限定端口的使用范围,如果我要为我的程序预留某些端口,那么我需要控制这个端口范围。/proc/sys/net/ipv4/ip_local_port_range定义了本地TCP/UDP的端口范围,你可以在/etc/sysctl.conf里面定义net.ipv4.ip_local_port_range = 1024 65000。

2. 如何查看服务器所开放的端口

1. Windows本身自带的netstat命令

关于netstat命令,我们先来看看windows帮助文件中的介绍:

Netstat

显示协议统计和当前的 TCP/IP 网络连接。该命令只有在安装了 TCP/IP 协议后才可以使用。

netstat [-a] [-e] [-n] [-s] [-p protocol] [-r] [interval]

参数

-a

显示所有连接和侦听端口。服务器连接通常不显示。

-e

显示以太网统计。该参数可以与 -s 选项结合使用。

-n

以数字格式显示地址和端口号(而不是尝试查找名称)。

-s

显示每个协议的统计。默认情况下,显示 TCP、UDP、ICMP 和 IP 的统计。-p 选项可以用来指定默认的子集。

-p protocol

显示由 protocol 指定的协议的连接;protocol 可以是 tcp 或 udp。如果与 -s 选项一同使用显示每个协议的统计,protocol 可以是 tcp、udp、icmp 或 ip。

-r

显示路由表的内容。

interval

重新显示所选的统计,在每次显示之间暂停 interval 秒。按 CTRL+B 停止重新显示统计。如果省略该参数,netstat 将打印一次当前的配置信息。

(1)公认端口(Well Known Ports):从0到1023,它们紧密绑定(binding)于一些服务。通常这些端口的通讯明确表明了某种服务的协议。例如:80端口实际上总是HTTP通讯。

(2)注册端口(Registered Ports):从1024到49151。它们松散地绑定于一些服务。也就是说有许多服务绑定于这些端口,这些端口同样用于许多其它目的。例如:许多系统处理动态端口从1024左右开始。

(3)动态和/或私有端口(Dynamic and/or Private Ports):从49152到65535。理论上,不应为服务分配这些端口。实际上,机器通常从1024起分配动态端口。但也有例外:SUN的RPC端口从32768开始。

0 通常用于分析操作系统。这一方法能够工作是因为在一些系统中“0”是无效端口,当你试图使用一种通常的闭合端口连接它时将产生不同的结果。一种典型的扫描:使用IP地址为0.0.0.0,设置ACK位并在以太网层广播。

2. 工作在windows2000下的命令行工具fport

使用windows2000的朋友要比使用windows9X的幸运一些,因为可以使用fport这个程序来显示本机开放端口与进程的对应关系。

Fport是FoundStone出品的一个用来列出系统中所有打开的TCP/IP和UDP端口,以及它们对应应用程序的完整路径、PID标识、进程名称等信息的软件。

与Fport功能类似的图形化界面工具Active Ports

Active Ports为SmartLine出品,你可以用来监视电脑所有打开的TCP/IP/UDP端口,不但可以将你所有的端口显示出来,还显示所有端口所对应的程序所在的路径,本地IP和远端IP(试图连接你的电脑IP)是否正在活动。

3. 怎么查看电脑服务器端口号名称

在服务器中要查看端口,可以使用Netstat命令:

1、依次点击“开始→运行”,键入“cmd”并回车,打开命令提示符窗口。

2、在命令提示符状态下键入“netstat -a -n”,按下回车键后就可以看到以数字形式显示的TCP和UDP连接的端口号及状态。

Netstat命令用法如下:

命令格式:Netstat -a -e -n -o -s-an

-a 表示显示所有活动的TCP连接以及计算机监听的TCP和UDP端口。

-e 表示显示以太网发送和接收的字节数、数据包数等。

-n 表示只以数字形式显示所有活动的TCP连接的地址和端口号。

-o 表示显示活动的TCP连接并包括每个连接的进程ID(PID)。

-s 表示按协议显示各种连接的统计信息,包括端口号。

-an 查看所有开放的端口。

「linux专栏」什么是端口号?如何查看端口号信息?

尽管搞IT多年,但一些基本性的概念却依旧似懂非懂,就好比说什么是端口号?你说知道吧,确实知道,每个程序都有个自己的端口号,有些都是约定俗称的,比如FTP端口21、SFTP端口22、IIS端口80等等。可是让你去细细解释一下,还真不一定能回答上来。

「linux专栏」什么是端口号?如何查看端口号信息?

什么是端口号?

我们都知道,每台联网的计算机都有自己的IP,这个IP好比是在互联网上的地址编号,是唯一的,这样才能通过IP地址正常通信。那么问题就来了,一台计算机它可能会提供多个服务,比如Apache服务、FTP服务、Email服务等等,通过IP地址来区分显示是不可能的。这个时候我们就需要用端口来进行区分,每个服务对应指定的端口,这样通过IP+端口就能唯一确定要访问的服务了。

「linux专栏」什么是端口号?如何查看端口号信息?

为了统一整个互联网的端口和网络服务的对应关系,以便让所有的主机都能使用相同的机制来请求或提供服务,同一个服务使用相同的端口,这就是协议。

计算机中的协议主要分为两大类:面向连接的可靠的TCP协议(Transmission Control Protocol,传输控制协议);面向无连接的不可靠的UDP协议(User Datagram Protocol,用户数据报协议)。这么多的端口,我们该如何知道哪个端口对应哪个呢?其实在linux系统中,提供了/etc/services的文件,可以进行查看。

「linux专栏」什么是端口号?如何查看端口号信息?

端口信息查看方法(进程号与的端口号均可查看)

以下的命令较多,详细的用法不必深究,先记住固定用法,后期遇到了再细讲。

方法 1:使用 ss 命令

ss 一般用于转储套接字统计信息,类似于 netstat 输出的信息,但它显示了更多的 TCP 信息和状态信息。它还可以显示所有类型的套接字统计信息,包括 PACKET、TCP、UDP、DCCP、RAW、Unix 域等。

[root@localhost ~]#  ss -tnlp | grep dmserverState      Recv-Q Send-Q          Local Address:Port                         Peer Address:Port              LISTEN     0      5                           *:5900                                    *:*                   users:          LISTEN     0      128         :::5236                    :::*                   users:(("dmserver",pid=7060,fd=4))[root@localhost ~]# 

方法 2:使用 netstat 命令

netstat 能够显示网络连接、路由表、接口统计信息、伪装连接以及多播成员。既然已经会用ss的高级命令了,就忘记它吧。

[root@localhost ~]# netstat -tnlpActive Internet connections (only servers)Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name    tcp6       0      0 :::4236                 :::*                    LISTEN      7059/dmap               tcp6       0      0 :::5236                 :::*                    LISTEN      7060/dmserver       tcp6       0      0 :::22                   :::*                    LISTEN      6831/sshd           tcp6       0      0 ::1:631                 :::*                    LISTEN      6832/cupsd          tcp6       0      0 ::1:25                  :::*                    LISTEN      7225/master         [root@localhost ~]# 

方法 3:使用 fuser 命令

fuser 工具会将本地系统上打开了文件的进程的进程 ID 显示在标准输出中,一般通过端口去查看对应的进程和和用户。

[root@localhost ~]# fuser -v  5236/tcp                     用户     进程号 权限   命令5236/tcp:            dmdba      7060 F.... dmserver

方法 4:使用 nmap 命令

nmap(“Network Mapper”)是一款用于网络检测和安全审计的开源工具。它最初用于对大型网络进行快速扫描,但它对于单个主机的扫描也有很好的表现。

nmap 使用原始 IP 数据包来确定网络上可用的主机,这些主机的服务(包括应用程序名称和版本)、主机运行的操作系统(包括操作系统版本等信息)、正在使用的数据包过滤器或防火墙的类型,以及很多其它信息。

[root@localhost ~]# nmap -sV -p 5236 localhostStarting Nmap 6.40 ( http://nmap.org ) at 2021-01-01 00:23 CSTmass_dns: warning: Unable to determine any DNS servers. Reverse DNS is disabled. Try using --system-dns or specify valid servers with --dns-serversNmap scan report for localhost (127.0.0.1)Host is up (0.00031s latency).Other addresses for localhost (not scanned): 127.0.0.1PORT     STATE SERVICE    VERSION5236/tcp open  tcpwrappedService detection performed. Please report any incorrect results at http://nmap.org/submit/ .Nmap done: 1 IP address (1 host up) scanned in 10.91 seconds

可以看出,对于普通用户来说,该命令似乎并不好用,也看得不大懂,还需要注意的是该命令一般不会默认安装,需要额外安装。

方法 5:使用 systemctl 命令

systemctl 是 systemd 系统的控制管理器和服务管理器,通过systemctl可以查看服务的具体运行信息,包括PID、是否自启、启动命令等。很遗憾,通过该命令只能查看到对应的PID进程号,如果要查看对应的端口号,可以通过本文中其他端口号、进程号查看方法进行互查。

[root@localhost ~]# systemctl status DmServiceDMSERVER.service ● DmServiceDMSERVER.service - DM database instance service   Loaded: loaded (/usr/lib/systemd/system/DmServiceDMSERVER.service; enabled; vendor preset: disabled)   Active: active (running) since 一 2021-03-22 16:33:05 CST; 15h ago  Process: 6837 ExecStart=/soft/dmdb/bin/DmServiceDMSERVER start (code=exited, status=0/SUCCESS) Main PID: 7060 (dmserver)    Tasks: 54   CGroup: /system.slice/DmServiceDMSERVER.service           └─7060 /soft/dmdb/bin/dmserver /soft/dmdb/data/DAMENG/dm.ini -noconsole3月 22 16:32:48 localhost.localdomain systemd[1]: Starting DM database instance service...3月 22 16:33:05 localhost.localdomain DmServiceDMSERVER[6837]: [39B blob data]3月 22 16:33:05 localhost.localdomain systemd[1]: Started DM database instance service.[root@localhost ~]# 

方法 6:使用 lsof 命令

lsof 能够列出打开的文件,并列出系统上被进程打开的文件的相关信息。

[root@localhost ~]# lsof -i:5236COMMAND   PID  USER   FD   TYPE DEVICE SIZE/OFF NODE NAMEdmserver 7060 dmdba    4u  IPv6  46668      0t0  TCP *:padl2sim (LISTEN)

总体来说,进程号和端口号查看的办法虽然很多,但在实际工作中,我们只需要掌握一种自己认为最好用的命令就可以了。后期会根据情况对相关命令进行复盘,详细介绍其用法。

更多实用技能敬请期待,收藏+关注才不会迷路哦[憨笑]


  • 发表评论
【已经有()位大神发现了看法】

  • 匿名发表
  •  
人参与,条评论