检测Linux服务器端口是否开通

  现如今云服务器已经是大势所趋,国内比较著名的云服务器厂商有阿里、腾讯,国外有aws,尽管有的公司目前为止还是使用的物理机,但是无论你是使用的云服务器还是物理机,在运行服务时都必不可少的需要监听到指定的端口,而且已经有很多的服务需要监听的端口需要可以通过公网访问,如果想要保证服务正常必须确定端口可以正常访问,例如nginx服务呦,默认的80端口如果在安全组没有开通的话,是一定不能访问的呦。

  接下来,我们就来学习下都有那些命令可以用来确定服务器的端口是否已经成功开通吧。

一、nc命令

  nc命令也经常被用于代替nmap进行端口扫描,当然这只是nc命令功能的冰山一角。

(1)、使用nc命令检查指定服务器的指定端口是否被监听

选项:

-w:超时秒数设置等待连接的时间

-z:使用0输入/输出模式,只在扫描通讯端口时使用

-v:显示指令执行过程

以上测试结果为,已经被监听的80端口使用nc测试后返回succeeded,而未被监听的端口81返回failed

如果要扫描一个范围内的端口,语法如下:

(2)、测试指定端口是否可以正常通讯

  更多时候我们都不是为了测试一个端口是否已经被监听,这大多是黑客要做的事情,我们更多的关心的是一个端口是否正常通讯,例如我们公司使用的音视频服务,音视频服务只要包含两项服务,一项用于拨通音视频另一项用于打通端口隧道,让使用音视频服务的客户可以直接连接,采用这种方式的好处是用户之间可以更快的连接因为不必通过服务器进行转发,不会影响用户体验,这就要求我们在部署音视频服务之前先检查指定端口是否可用,用到的方法如下:

服务器端:

nc -l port

客户端:

nc ip port

  服务器端使用nc命令监听在1234端口上,客户端同样使用nc命令向服务器端发送数据,查看服务器端有没有正常接收到数据。

示例:

客户端

服务端

注释:公网ip不方便透露呦。这样我们就已经接收到了来自客户端的数据信息,那么如何监听在udp相应端口呢?下面就来介绍下哈

nc命令默认情况下是检测/监听tcp协议的,如果我们需要处理udp协议的话,请按照以下操作:

服务器端:

nc -u -l port

客户端:

nc -u ip port

示例:

客户端

服务端

选项

-l:类似于长连接,一直监听在指定port不会断开,可以发送数据信息

-u:指定使用udp协议,nc命令默认情况下是使用tcp协议的

加量环节:

能够实现此功能的其他命令介绍

  当然能够实现上述功能的不光只有nc命令了,我们也可以使用tcpdump命令,下面介绍下tcpdump抓包命令的冰山一角。

服务器端:

tcpdump port 1234

客户端:

nc -u ip port

示例:

客户端

服务端

不好意思呦,公司的公网ip也不方便透露呦,没错使用tcpdump抓包时会抓取到发送信息到服务器的公网ip地址呦,不过其实这个地址没有服务器的公网ip地址重要。

(3)、使用nc命令进行文件传输

  刚知道这个命令的时候我也吓一跳,没想到这个命令可以这么强大,真的是以后遇到文本文件剩的用scp命令了,接下来就来见识下吧。

客户端:

nc ip port > test.txt

服务端:

cat test.txt | nc ip port

注意哟,我们是要将本地文件上传至服务器呦。

我这里就在本地随便找几行数据了,上述所有操作都是先执行服务器端操作,然后执行客户端操作

服务器端

要先创建空文件,在执行客户端操作

这个命令有点妙,客户端执行完成后,服务端自动结束nc命令。快去看看服务器端的文件吧。

出现了,这就是我们想要的。而且有一个现象就是,执行此命令是当客户端断开或执行完成后,服务端也会立即退出,如果不需要退出的话,需要以下参数哦。

选项

-k:控制服务器端不会因为客户端的退出而退出

-n:指定使用ip地址

我好像也就掌握这么多袄,你们都学会了吗?

时间: 2024-09-30 04:42:03

检测Linux服务器端口是否开通的相关文章

Golang检测Linux服务器端口占用

代码实现 func CheckPort(port int) error { checkStatement := fmt.Sprintf(`netstat -anp | grep -q %d ; echo $?`, port) output, err := exec.Command("sh", "-c", checkStatement).CombinedOutput() if err != nil { return err } // log.Println(outpu

[Mongodb] 借mongodb被入侵勒索事件,谈下Linux服务器端口安全问题

一.缘由: 最近几天Mongodb勒索事件甚嚣尘上:由于对外网开放访问并且没有开启授权机制被删库.远程拖库.勒索.接着又曝出Elasticsearch被勒索事件,缘由一样,Elasticsearch服务暴露在公网上并且 Elasticsearch是没有账号安全体系的.再者联想到前些日子,Redis未授权访问漏洞,同样是因为Redis没有暴露在公网.没有设置授权认证,而引起的. 做为专职运维人员来说,这些漏洞和勒索事件,只要有一件发生就必须引起警觉和漏洞扫描防治措施的启动. 入侵了数据库,会把数据

linux服务器端口netstat

netstat命令各个参数说明如下: -t : 指明显示TCP端口 -u : 指明显示UDP端口 -l : 仅显示监听套接字(所谓套接字就是使应用程序能够读写与收发通讯协议(protocol)与资料的程序) -p : 显示进程标识符和程序名称,每一个套接字/端口都属于一个程序. -n : 不进行DNS轮询,显示IP(可以加速操作) 即可显示当前服务器上所有端口及进程服务,于grep结合可查看某个具体端口及服务情况·· netstat -ntlp   //查看当前所有tcp端口· netstat

python3写的一个检测远程服务器端口脚本

分两部分:1 python脚本2 一个config.txt文件有机会在共享一下编译成exe的文件. 1.脚本#!/usr/bin/env pythonimport osimport sysimport socketimport msvcrt b = sys.platformarr=[]if 'win*' == b:config = sys.path[0] + '\config.txt'else:config = sys.path[0] + '/config.txt'file = open(con

如何传输文件到linux服务器?

我们知道,云主机文件传输是一件相对复杂的事情,经常需要搭建FTP服务器或者是借助其他工具来完成.下面为大家介绍一种简单易操作的传输文件到Linux服务器的方法. 对于行云管家来说,Linux文件传输同Windows文件传输一样,我们为每一台Linux主机配置了一个1G的网盘作为中间介质来实现客户端和主机之间的文件传输. 那么如何传输文件到Linux服务器? 一.什么是主机网盘? 为了实现用户更快.更安全.更省钱的文件传输需求,我们在用户将主机导入行云管家平台时,自动为每台主机分配了一个主机网盘,

怎样上传文件到linux服务器?

我们知道,云主机文件传输是一件相对复杂的事情,经常需要搭建FTP服务器或者是借助其他工具来完成.下面为大家介绍一种简单易操作的传输文件到Linux服务器的方法.对于行云管家来说,Linux文件传输同Windows文件传输一样,我们为每一台Linux主机配置了一个1G的网盘作为中间介质来实现客户端和主机之间的文件传输.那么如何传输文件到Linux服务器?一.什么是主机网盘?为了实现用户更快.更安全.更省钱的文件传输需求,我们在用户将主机导入行云管家平台时,自动为每台主机分配了一个主机网盘,该网盘将

Linux服务器的弱口令检测及端口扫描

一.弱口令检测--John the Ripper John the Ripper工具可以帮助我们扫描出系统中密码安全性较低的用户,并将扫描后的结果显示出来. 1.安装John the Ripper:John the Ripper的源码包提取地址:https://pan.baidu.com/s/117J0GZ9moOHfUr-JAuOmug 提取码:n76p 也可从官网直接下载:https://www.openwall.com/john/ [[email protected] media]# ta

Linux服务器入侵检测基础

最近遇到了很多服务器被入侵的例子,为了方便日后入侵检测以及排查取证,我查询了一些linux服务器入侵取证的相关资料,并在此总结分享,以便日后查询. 一般服务器被入侵的迹象,包括但不局限于:由内向外发送大量数据包(DDOS肉鸡).服务器资源被耗尽(挖矿程序).不正常的端口连接(反向shell等).服务器日志被恶意删除等.那么既然是入侵检测,首先要判断的是服务器是否被入侵,必须排除是管理员操作不当导致的问题,因此入侵检测的第一项工作就是询问管理员服务器的异常现象,这对之后入侵类型的判断非常重要. 在

python的socket连接端口:代替telnet检测服务器端口

场景: 在使用linux过程中,我们常用telnet来测试对方服务器某个端口是否开通,但linux默认没有安装telnet客户端,很多时候临时安装telnet会比较麻烦,这时候就可以使用python来做简单测试了. python import socket s=socket.socket() s.connect(("IP",port)) s.close 注:其实就是调用的socket模块,和telnet一样只能来测试tcp端口. 脚本:  1 #!/usr/bin/python   2