你需要了解的25个网络端口,以备技术面试之用

如果你正在为网络、Linux系统管理、DevOps或网络安全面试做准备,那么理解网络端口是必不可少的。端口号几乎在每一个技术面试中都会出现,因为它们对于网络通信至关重要。然而,许多候选人却忽视了这一基本领域。

本文涵盖了您应该铭记的前25个端口,包括每个端口的功能、背后的协议以及它的重要性。无论您是初学者还是只是需要复习,这本指南都旨在简单、实用,便于面试准备。

网络端口是什么?

在我们进入列表之前,让我们快速了解一下口口到底是什么。

在网络世界中,端口并不是一个物理实体 — 它是一个虚拟通道,允许计算机之间的通信。可以将其想象为酒店的房间号码。你的IP地址是酒店地址,端口则告诉计算机你要访问哪个服务(房间)。

每个端口被分配一个介于065535之间的数字:

  • 0-1023: 知名端口(由系统级服务使用)。
  • 1024-49151:注册端口(由软件和应用程序使用)。
  • 49152-65535:动态/私人端口(临时连接)。

面试官为什么会问有关端口的问题?

因为它测试了你对以下内容的理解:

  • 哪些服务运行在什么端口上
  • TCP和UDP之间的区别
  • 如何排除连接问题
  • 开放端口的安全隐患

你会经常听到类似的问题:

  • SSH使用哪个端口?
  • 如何在Linux中检查开放端口?
  • 你能解释一下80和443端口之间的区别吗?

你必须知道的25个端口(带描述)

让我们来看看您在面试中和使用真实系统时最常见的端口。

端口协议服务名称目的
20TCPFTP(数据)以主动模式传输文件数据
21TCPFTP(控制)FTP传输的命令/控制
22TCPSSH安全远程登录/文件传输
23TCPTelnet远程登录(不安全,遗留)
25TCPSMTP发送电子邮件
53TCP/UDP域名系统将域名解析为IP地址
67用户数据报协议DHCP 服务器分配IP地址
68用户数据报协议DHCP客户端接收DHCP配置
80TCPHTTP标准(不安全)网络流量
110TCPPOP3旧的电子邮件检索协议
123用户数据报协议网络时间协议同步系统时间
135TCPRPCWindows 服务通信
137用户数据报协议NetBIOS 名称服务Windows 名称查找
138用户数据报协议NetBIOS 数据报服务Windows浏览
139TCPNetBIOS会话服务在旧版Windows中共享文件/打印机
143TCPIMAP电子邮件检索(现代)
161用户数据报协议简单网络管理协议监控路由器、交换机等。
389TCP/UDPLDAP集中式认证(如 Active Directory)
443TCPHTTPS安全的网络流量
445TCP通过 TCP 的 SMB现代Windows文件共享
465TCPSMTPS安全SMTP(遗留)
514用户数据报协议系统日志集中日志记录
993TCPIMAPS安全IMAP
995TCPPOP3S安全的 POP3
3306TCPMYSQL流行的数据库服务
5432TCPPostgreSQL开源SQL数据库
5900TCPVNC远程桌面访问(图形用户界面)
6379TCPRedis内存键值存储
8080TCPHTTP备选应用服务器,代理
8443TCPHTTPS替代安全访问自定义网络应用程序

快速提示:只需记住这四个端口:20/21用于FTP22用于SSH80用于HTTP,以及443用于HTTPS – 这些是最重要的端口。

端口分类,以简化生活

与其随意记忆所有端口,不如将它们分组:

类别端口服务名称
远程访问22SSH(安全外壳协议)
23Telnet
5900VNC(虚拟网络计算)
电子邮件服务25SMTP(简单邮件传输协议)
110POP3(邮局协议)
143IMAP(互联网邮件访问协议)
465, 993, 995SMTPS,IMAPS,POP3S(安全版本)
网络服务80HTTP(超文本传输协议)
443HTTPS(超文本传输安全协议)
8080, 8443备用 HTTP/HTTPS(用于网络应用或代理)
文件共享与传输20/21FTP(文件传输协议)
139/445服务器消息块 (SMB)
3306/5432MySQL/ PostgreSQL(数据库)
姓名和地址服务53域名系统 (DNS)
67/68DHCP(动态主机配置协议)
123网络时间协议 (NTP)
137–139NetBIOS(网络基本输入/输出系统)
监控和日志记录514系统日志 (Syslog)
161简单网络管理协议 (SNMP)

如何检查Linux系统上的开放端口

让我们更仔细地看看如何使用 ssnetstatnmap 等命令在 Linux 系统上检查开放端口。

1. 使用 ss(现代且快速)

ss命令(全称为socket statistics)是较旧的netstat命令的现代替代品。它旨在更快速、更高效地列出开放端口和网络连接。

sudo ss -tulpn

命令的解释:

  • -t: 显示 TCP 套接字。
  • -u: 显示UDP套接字。
  • -l: 仅显示监听套接字(开放且等待传入连接的端口)。
  • -p: 显示拥有该套接字的进程(即,哪个应用程序正在使用该端口)。
  • -n: 以数字形式显示端口号(避免将其解析为服务名称)。

2. 使用 netstat(较旧但仍常用)

netstat 是一个遗留命令,在 ss 流行之前被广泛使用。它仍然存在于大多数 Linux 发行版中,并且在 ss 可能不可用的情况下,或者当您使用旧系统时,仍然很有用。

sudo netstat -tulpn

命令的解释:

  • -t: 显示 TCP 套接字。
  • -u: 显示 UDP 套接字。
  • -l: 仅显示监听端口(不显示已建立的连接)。
  • -p: 显示使用该套接字的进程 ID (PID) 和程序名称。
  • -n: 输出数字地址和端口(而不是将它们解析为服务名称,例如“http”)。

3. 使用nmap进行扫描

nmap(网络映射器)是一种强大的工具,主要用于网络探索和安全审计。它可以用来扫描你自己的系统或任何远程系统,以查找开放端口。

ssnetstat 不同,nmap 通常用于更详细的网络扫描,并且可以提供有关外部系统的信息。

nmap -sT localhost

命令的解释:

  • -sT: 它尝试与每个端口建立完整连接,并检查哪些端口响应。
  • localhost: 指的是您想要扫描的本地计算机。您可以用任何IP地址替换localhost以扫描远程系统。

在这里插入图片描述

安全提示:为什么了解端口有助于保持安全

攻击者通常使用端口扫描技术来识别开放的端口并找到可能存在漏洞的服务。了解您的系统上暴露了哪些端口对于维护安全至关重要。

以下是一些与常见开放端口相关的风险示例:

  • 端口 23(Telnet): 如果此端口开放,您的系统可能会面临攻击风险,因为 Telnet 以明文形式传输数据,包括密码。
  • 445端口(SMB):该端口常常成为勒索软件和其他恶意软件的攻击目标,保持该端口开放可能会使攻击者访问您网络上的敏感文件和资源。

作为一名Linux或DevOps工程师,保护您的系统是您的责任。以下是减轻风险的关键策略:

  • 关闭未使用的端口: 仅保留必要的端口。如果某项服务未被使用,关闭该端口是更安全的选择。
  • 使用防火墙: 配置防火墙,例如 ufw(简单防火墙)或 firewalld,以限制可以访问的端口,确保只有授权流量可以到达您的系统。
  • 使用加密保护暴露的服务:对于需要访问的服务,例如SSHHTTPS,始终强制使用加密,以保护在传输过程中数据免受潜在窃听的影响。

要阻止23端口(Telnet)上的流量,请使用ufw

sudo ufw deny 23

要在端口 23(Telnet)上拒绝流量,请使用 firewalld

sudo firewall-cmd --zone=public --add-port=23/tcp --permanent --remove-port=23/tcp

通过了解端口并正确地保护它们,您可以最小化系统的攻击面,同时提高其安全性和性能。

最终想法

理解端口号不仅仅是记住它们,更重要的是了解服务在Linux和网络中的通信方式。一旦你掌握了基础知识,你将更擅长故障排除、保护系统和通过技术面试。

🔥运维干货分享

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

企鹅侠客

您的打赏是我创作旅程中的关键燃

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值