在Linux系统的网络管理范畴内,检查远程服务器端口是否开放是一项极为重要的操作。这一工作对于系统管理员而言意义重大,同时也是安全审计的关键构成部分。确保必要端口对外开放,并且封锁不必要的端口,能够切实提升系统的安全性,有效规避潜在的攻击威胁。
在正式展开操作之前,我们有必要先了解一些基础概念:
- 端口:在计算机网络里,端口是用于标识特定进程的通信入口,每个应用程序均会借助某个端口来开展通信。常见的端口号有HTTP的80端口、HTTPS的443端口、SSH的22端口等。
- 开放端口:意味着服务器上特定端口处于监听状态,并且允许来自外部的连接。对于远程系统的管理或者服务的访问而言,确认端口是否开放极为关键。
- 远程系统:也就是通过网络连接的另一台计算机或者服务器,其可能位于内网,也可能处于互联网中。检查远程系统端口是否开放,主要是借助网络协议来进行探测。
常用方法一:运用 telnet
命令检查端口
telnet
命令是最为直接、简便的检查远程系统端口是否开放的方式。它能够助力你迅速验证特定端口是否作出响应。
telnet
命令使用步骤
打开终端,输入如下命令:
telnet <远程IP地址> <端口号>
举例来说,若你想要检查远程服务器
192.168.3.110
上的80端口是否开放,可输入:telnet 192.168.3.110 80
倘若端口开放,
telnet
会显示连接成功的消息,并且返回类似如下的提示:
要是端口未开放,命令将会显示连接失败的消息:
Trying 192.168.3.110... telnet: Unable to connect to remote host: Connection refused
- 优点:操作简单直接,能够快速检查某个端口是否响应。
- 缺点:在众多Linux发行版中,
telnet
已被弃用,而且其功能相对基础,不支持复杂的网络分析。
telnet
常见用法
1. 远程登录到服务器
如果你想远程登录到一台服务器,可以使用 telnet
命令指定服务器的 IP 地址或域名。例如,要登录到 IP 地址为 192.168.1.100
的服务器:
telnet 192.168.1.100
如果服务器开启了 Telnet 服务,并且允许你登录,你会看到登录提示,然后输入用户名和密码进行登录。
2. 检查远程服务器端口是否开放
这是 telnet
命令一个非常实用的功能。通过指定服务器的 IP 地址和端口号,你可以快速判断该端口是否开放。例如,检查 192.168.1.100
服务器的 80 端口是否开放:
telnet 192.168.1.100 80
- 端口开放:如果端口开放,
telnet
会尝试建立连接,并显示连接成功的消息,此时可能会进入一个交互式界面,或者显示一些服务器返回的信息。 - 端口关闭:如果端口关闭,命令会显示连接失败的消息,如
telnet: Unable to connect to remote host: Connection refused
。
3. 连接到特定服务
你可以使用 telnet
连接到特定的网络服务。例如,连接到 SMTP 服务器(通常使用 25 端口)来测试邮件发送功能:
telnet smtp.example.com 25
连接成功后,你可以按照 SMTP 协议的规范输入命令来模拟邮件发送过程。
4、其他常用参数
-E
该参数用于禁止转义字符。在
telnet
会话中,默认情况下某些字符可能会被解释为特殊的控制命令,使用-E
参数可以禁用这种功能。例如:telnet -E 192.168.1.100
-l
指定登录远程主机时使用的用户名。例如,要以
user
用户名登录到192.168.1.100
服务器:telnet -l user 192.168.1.100
-r
使用类似
rlogin
的操作环境。rlogin
是另一种远程登录协议,使用-r
参数可以让telnet
模拟rlogin
的一些操作方式:telnet -r 192.168.1.100
退出
telnet
会话在
telnet
会话中,你可以通过以下方式退出:- 输入
Ctrl + ]
进入telnet
的命令模式。 - 在命令模式下,输入
quit
或exit
并按回车键,即可退出telnet
会话。
- 输入
由于
telnet
协议以明文形式传输数据,包括用户名、密码等敏感信息,存在严重的安全风险。在实际应用中,建议使用更安全的替代方案,如 SSH(Secure Shell)来进行远程登录,使用其他安全的工具来检查端口开放情况。
常用方法二:运用nc
(Netcat)命令
nc
(即Netcat)堪称一款功能强大的网络工具,在网络调试与端口扫描领域应用广泛。它不但能够检查端口是否开放,还能提供更为丰富的网络信息。
nc
命令使用步骤
输入以下命令用于检查远程端口:
nc -zv <远程IP地址> <端口号>
举例来讲,若要检查远程地址
192.168.3.110
的80端口,可输入:nc -zv 192.168.3.110 80
若端口开放,其输出内容如下:
若端口未开放,则会输出:
nc: connect to 192.168.3.110 port 80 (tcp) failed: Connection refused
- 优点:
nc
灵活性极高,支持多种网络协议,适用于扫描多个端口,可作为telnet
的理想替代工具。 - 缺点:尽管功能强劲,但命令使用方式相对复杂,对于初学者而言,存在一定的学习门槛。
nc
命令常见用法
1. 端口扫描
扫描单个端口:使用
-zv
选项可以快速检查目标主机的指定端口是否开放。-z
表示只进行端口扫描,不发送任何数据;-v
表示显示详细的执行过程。nc -zv target_host 80
如果端口开放,会显示类似
Connection to target_host 80 port [tcp/http] succeeded!
的信息;如果端口关闭,则会显示连接失败的信息。扫描多个端口:可以使用
-p
选项指定要扫描的端口范围。nc -zv target_host 20-30
这个命令会扫描目标主机从 20 到 30 的所有端口。
2. 建立 TCP 连接
作为客户端连接到服务器:可以使用
nc
作为客户端连接到运行在指定端口的服务器。nc target_host 80
连接成功后,你可以与服务器进行交互,例如输入 HTTP 请求来获取网页内容。
作为服务器监听端口:使用
-l
选项可以让nc
作为服务器监听指定的端口。nc -l 8080
这个命令会在本地监听 8080 端口,等待客户端的连接。当有客户端连接时,你可以与客户端进行交互。
3. 建立 UDP 连接
UDP 客户端:使用
-u
选项可以指定使用 UDP 协议进行通信。nc -u target_host 53
这个命令会作为 UDP 客户端连接到目标主机的 53 端口(通常是 DNS 服务端口)。
UDP 服务器:同样使用
-l
和-u
选项可以让nc
作为 UDP 服务器监听指定端口。nc -lu 5353
这个命令会在本地监听 5353 端口的 UDP 连接。
4. 文件传输
发送文件:可以使用
nc
在两台主机之间传输文件。在发送端,将文件内容通过标准输入传递给nc
。nc target_host 1234 < file.txt
这个命令会把
file.txt
文件的内容发送到目标主机的 1234 端口。接收文件:在接收端,使用
nc
监听指定端口,并将接收到的数据保存到文件中。nc -l 1234 > received_file.txt
这样,接收端就会将从发送端接收到的数据保存到
received_file.txt
文件中。
5. 远程命令执行
可以通过 nc
建立的连接在远程主机上执行命令。在服务器端监听端口并执行命令:
nc -l 9999 -e /bin/bash
在客户端连接到服务器并发送命令:
nc target_host 9999
连接成功后,客户端输入的命令将在服务器端执行,并将结果返回给客户端。
nc
命令常用选项
-4
:强制使用 IPv4 地址。-6
:强制使用 IPv6 地址。-n
:不进行 DNS 解析,直接使用 IP 地址。-w
:设置连接超时时间。例如,-w 5
表示设置超时时间为 5 秒。-q
:在传输结束后等待指定的秒数再退出。例如,-q 2
表示等待 2 秒后退出。
注意事项
- 在使用
nc
进行远程命令执行时,要确保服务器端的安全性,避免被恶意利用。 - 由于
nc
传输的数据是明文的,在传输敏感信息时要谨慎使用,建议使用加密的传输方式。
常用方法三:借助nmap
开展端口扫描
nmap
是一款极为强大的网络扫描工具,可用于扫描远程Linux系统的开放端口,检测安全漏洞等。它支持TCP、UDP协议扫描,并且能够执行操作系统识别等高级功能。
nmap
命令使用步骤
安装
nmap
:在大多数Linux系统中,可通过以下命令进行安装:
sudo apt-get install nmap # Debian/Ubuntu系统 sudo yum install nmap # CentOS/RHEL系统
使用
nmap
进行端口扫描:nmap <远程IP地址>
例如,要检查
192.168.3.110
的开放端口,输入:nmap 192.168.3.110
扫描结果可能会呈现如下形式:
倘若你仅关注某些特定端口,也能指定端口范围进行扫描:
nmap -p 22,80,443 192.168.3.110
扫描结果如下:
高级用法:操作系统探测
nmap
具备强大的操作系统识别功能,能够助力用户精准判断远程主机的操作系统版本。具体执行命令如下:
nmap -O 192.168.3.110
执行上述命令后,输出结果大致如下所示:
- 优点:其功能极其强劲,支持诸如操作系统检测、版本识别等丰富多样的高级功能。能够对多个端口进行扫描作业,在网络管理员执行网络架构梳理、排查网络故障,以及安全审计人员开展安全漏洞检测、风险评估等工作场景中,发挥着关键作用,高度契合他们的实际工作需求 。
- 缺点:鉴于其功能的复杂性,对于初次接触的新手而言,相关命令的理解与运用存在一定难度。并且,当扫描范围设定得过大时,会显著增加网络数据传输量,极有可能给网络带宽带来沉重压力,影响网络的正常运行与其他业务的流畅开展 。
常用方法四:运用ss
命令查看本地端口
当用户拥有远程Linux主机的访问权限时,可借助ss
命令便捷地查看本机的开放端口。ss
作为一款替代netstat
的工具,具备显著优势,其运行速度通常更快,并且能够提供更为精准、详尽的端口信息。
ss
命令使用步骤
通过SSH成功登录远程系统后,输入以下命令来查看开放端口:
ss -tuln
上述命令中各参数含义如下:
- -t:用于指定显示TCP连接相关信息。
- -u:表示显示UDP连接的情况。
- -l:作用是仅显示处于监听状态的端口。
- -n:意味着不进行域名解析,直接以IP地址形式展示结果 。
命令执行后,输出内容大致呈现如下样式:
- 优点:无需额外安装其他工具,在大多数Linux发行版中均为内置命令。执行速度极快,能够高效、迅速地完成本机开放端口的检查工作,为用户提供及时、有效的端口状态信息 。
- 缺点:该命令仅适用于对本机端口状态的检查操作,无法应用于远程系统端口的探测与查看 。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件举报,一经查实,本站将立刻删除。
文章由技术书栈整理,本文链接:https://study.disign.me/article/202511/15.linux-remote-port-probe.md
发布时间: 2025-03-13