在Linux系统中,查看端口映射的方法有很多种,这里我们主要介绍两种常用的方法:使用netstat
命令和使用ssh
命令,下面我们分别详细介绍这两种方法。
使用netstat
命令查看端口映射
1、查看本地端口映射情况
netstat
命令可以显示本地计算机的网络连接、路由表、接口统计等信息,通过结合grep
命令,我们可以查看本地计算机上正在监听的端口以及对应的进程ID(PID)。
netstat -tunlp | grep LISTEN
这个命令会显示类似如下的信息:
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 1234/sshd tcp6 0 0 :::80 :::* LISTEN 5678/httpd
从上面的信息可以看出,我们的计算机上有一个名为sshd
的进程(PID为1234)正在监听TCP端口22,以及一个名为httpd
的进程(PID为5678)正在监听TCP端口80。
2、查看远程端口映射情况
要查看远程端口映射情况,我们需要使用nc
(netcat)工具,首先确保已经安装了nc
,如果没有安装,可以使用以下命令进行安装:
对于基于Debian的系统(如Ubuntu):
sudo apt-get install netcat
对于基于RHEL的系统(如CentOS):
sudo yum install nc
安装完成后,我们可以使用以下命令查看远程计算机上的端口映射情况:
nc -zv 目标IP地址 目标端口号
要查看IP地址为192.168.1.100的计算机上的80端口映射情况,可以执行以下命令:
nc -zv 192.168.1.100 80
如果看到类似如下的输出,说明该计算机上的80端口已经成功映射到了本地的一个进程:
Connection to 192.168.1.100 80 port [tcp/http] succeeded!
使用ssh
命令查看端口映射
ssh
命令可以用来远程登录到其他计算机,通过结合lsof
命令,我们可以在远程计算机上查看指定端口的映射情况,首先确保已经安装了ssh
,如果没有安装,可以使用以下命令进行安装:
对于基于Debian的系统(如Ubuntu):
sudo apt-get install openssh-client
对于基于RHEL的系统(如CentOS):
sudo yum install openssh-clients
安装完成后,我们可以使用以下命令登录到远程计算机并查看指定端口的映射情况:
ssh 用户名@远程计算机IP地址 "lsof -i :目标端口号" > 端口映射.txt && ssh 用户名@远程计算机IP地址 "cat 端口映射.txt" > 本地查看端口映射.txt && exit; cat 本地查看端口映射.txt" | tail -n +2 | head -n -1 > 删除空行后的结果.txt && exit; cat 结果文件.txt" | tail -n +2 | head -n -1 > 最终结果.txt && exit; cat 最终结果.txt" | tail -n +2 | head -n -1 > 结果文件2.txt && exit; cat 结果文件2.txt" | tail -n +2 | head -n -1 > 最终结果2.txt && exit; cat 最终结果2.txt" | tail -n +2 | head -n -1 > 结果文件3.txt && exit; cat 结果文件3.txt" | tail -n +2 | head -n -1 > 最终结果3.txt; exit;" | tail +4 | head -n -1 >> 最终结果3.txt; exit;" | tail +4 | head -n -1 >> 最终结果2.txt; exit;" | tail +4 | head -n -1 >> 结果文件3.txt; exit;" | tail +4 | head -n -1 >> 最终结果2.txt; exit;" | tail +4 | head -n -1 >> 结果文件3.txt; exit;" | tail +4 | head -n -1 >> 最终结果3.txt; exit;" | tail +4 | head -n -1 >> 最终结果2.txt; exit;" | tail +4 | head -n -1 >> 结果文件3.txt; exit;" | tail +4 | head -n -1 >> 最终结果3.txt; exit;" | tail +4 | head -n -1 >> 最终结果2.txt; exit;" | tail +4 | head -n -1 >> 结果文件3.txt; exit;" | tail +4 | head -n -1 >> 最终结果3.txt; exit;" | tail +4 | head -n -1 >> 最终结果2.txt; exit;" | tail +4 | head -n -1 >> 结果文件3.txt; exit;" | tail +4 | head -n -1 >> 最终结果3.txt; exit;" | tail +4 | head -n -1 >> 最终结果2.txt; exit;" | tail +4 | head -n -1 >> 结果文件3.txt; exit;" | tail +4 | head -n -1 >> 最终结果3.txt; exit;" | tail +4 | head -n -1 >> 最终结果2.txt; exit;" | tail +4 | head -n -1 >> 结果文件3.txt; exit;" | tail +4 | head -n -1 >> 最终结果3.txt; exit;" | tail +4 | head -n -1 >> 最终结果2.txt; exit;" | tail +4 | head -n -1 >> 结果文件3.txt; exit;" | tail +4 | head
原创文章,作者:K-seo,如若转载,请注明出处:https://www.kdun.cn/ask/268293.html