端口22及其与SSH协议的关系

端口22是什么?SSH使用的是22端口还是其他端口?如何检查端口22是否打开?我们可以增加问题,但在本教程中,我们将深入了解TCP端口号22的详细信息,它是默认的实际SSH(安全Shell)端口。

null

SSH(安全壳)

Secure Shell或其著名名称SSH是一种创建于1995年的安全远程访问协议。在它发明之前,Telnet和Ftp是用于远程访问和文件传输的流行协议。Telnet端口使用TCP 23,FTP使用TCP端口21。端口22是免费的,因为它非常适合SSH协议的简单性和含义。

SSH端口号22

SSH协议是由tatuylonen在1995年创建的,为了从internetassignmentnumbersauthority(IANA)获得端口号22,他写了一封关于1-255之间的端口请求的电子邮件。但是他还补充说,他正在使用端口号22进行beta测试,如果SSH服务可以使用TCP 22,那就太好了。

IANA SSH Port Assignment Request
IANA SSH端口分配请求

第二天,来自IANA的乔伊斯迅速回复,并给出了一个简单的确认答案,如下所示。

IANA SSH Port Assignment Answer
IANA SSH端口分配应答

使用SSH命令指定SSH端口号

ssh 命令用于连接远程SSH服务器以进行远程访问。默认情况下,它假设远程SSH服务在端口号22上运行,但在某些情况下,它不是。我们可以显式指定要连接的端口号 -p 选项如下。

$ ssh -p 22 192.168.142.150
Specify SSH Port Number with SSH Command
使用SSH命令指定SSH端口号

用Netstat检查本地TCP端口22是否打开

我们可以检查TCP端口22是否打开并监听连接。在本例中,我们将使用 netstat 提供一些选项。这将列出本地系统的所有侦听端口及其端口号。

$ netstat -tln
Check If Local TCP Port 22 Is Open with Netstat
用Netstat检查本地TCP端口22是否打开

我们还可以根据监听端口的服务名称列出它们。端口22是SSH服务,它将被命名为 ssh .

$ netstat -tl
Check If Local TCP Port 22 Is Open with Netstat
用Netstat检查本地TCP端口22是否打开

检查是否  本地或远程TCP端口22通过Telnet打开

telnet 是一种通过telnet终端访问远程系统的工具。Telnet与端口号23一起使用。但是我们也可以使用Telnet检查远程或本地端口状态。如果港口是开放的,我们会看到港口是开放的。我们将用端口号提供远程系统的IP地址。

$ telnet 192.168.142.150 22
Check If  Local or Remote TCP Port 22 Is Open with Telnet
检查是否  本地或远程TCP端口22通过Telnet打开

检查/扫描本地或远程TCP端口22是否使用Nmap打开

nmap 是一种网络扫描工具,用于扫描网络、IP地址和端口。我们将提供端口号以加快扫描速度。

$ nmap -sV -sC -p 22 192.168.142.150
Check/Scan If Local or Remote TCP Port 22 Is Open with Nmap
检查/扫描本地或远程TCP端口22是否使用Nmap打开

从扫描输出中,我们可以看到提供了关于SSH服务和端口22的以下信息。

  • SSH Service Software 名字是 OpenSSH
  • SSH服务的版本是 7.7p1
  • 运行该服务的操作系统是 Ubuntu .
  • 还提供了RSA、ECDSA和EdDSA等SSH主机密钥。

相关文章: MySQL的默认端口号是什么?

TCP端口22或UDP端口22

端口22通常称为TCP端口22。但是也有一个名为UDP的传输协议,它的行为与TCP不同。SSH需要可靠的连接,而这种连接仅由TCP协议提供,因此UDP端口22不是一个流行的端口。

更改服务器中的SSH端口

默认情况下,SSH在TCP端口22上运行。但是我们可以灵活地更改SSH端口。SSH服务或服务配置存储在 sshd_config 位于 /etc/ssh/sshd_config 对于大多数Linux发行版。我们将通过使用 # 并为 Port 使用我们要使用的新端口号进行配置。在这种情况下,我们将SSH端口设置为 2345 .

Change SSH Port In the Server
更改服务器中的SSH端口

为了使新的端口配置有效,我们必须重新启动SSH服务,这将重新加载配置。我们将使用 systemctl 命令如下。

$ systemctl restart ssh

为Linux防火墙Iptables启用SSH端口22

iptables 是大多数Linux发行版的标准防火墙管理工具。我们可以使用iptables命令接受或阻止到本地SSH端口22的连接。

我们将运行以下命令以接受到本地SSH服务器的SSH端口22连接。我们将提供 --dport 选项。

$ sudo iptables -A INPUT -p tcp --dport 22 -m conntrack --ctstate NEW,ESTABLISHED -j ACCEPT$ sudo iptables -A OUTPUT -p tcp --sport 22 -m conntrack --ctstate ESTABLISHED -j ACCEPT

© 版权声明
THE END
喜欢就支持一下吧
点赞0 分享