检测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地址
我好像也就掌握这么多袄,你们都学会了吗?
检测Linux服务器端口是否开通的更多相关文章
- Golang检测Linux服务器端口占用
代码实现 func CheckPort(port int) error { checkStatement := fmt.Sprintf(`netstat -anp | grep -q %d ; ech ...
- linux telnet检测与某个端口是否开通
转自:http://blog.51cto.com/meiling/1982402 一:telnet此法常被用来检测是个远端端口是否通畅. 测试域名: # telnet baidu.com 80 Try ...
- [Mongodb] 借mongodb被入侵勒索事件,谈下Linux服务器端口安全问题
一.缘由: 最近几天Mongodb勒索事件甚嚣尘上:由于对外网开放访问并且没有开启授权机制被删库.远程拖库.勒索.接着又曝出Elasticsearch被勒索事件,缘由一样,Elasticsearch服 ...
- linux服务器端口netstat
netstat命令各个参数说明如下: -t : 指明显示TCP端口 -u : 指明显示UDP端口 -l : 仅显示监听套接字(所谓套接字就是使应用程序能够读写与收发通讯协议(protocol)与资料的 ...
- 使用jconsole检测linux服务器
在Jboss中运行run.sh的脚本下添加如下信息: #add by step #start JAVA_OPTS="$JAVA_OPTS -Dcom.sun.management.jmxre ...
- Linux服务器端口access改为trunk all
1.确认可用网卡及vlan id eth5可用 vlan25:10.118.25.0/24 2.编辑网卡配置文件 vim /etc/sysconfig/network-scripts/ifcfg-et ...
- linux服务器性能分析只需1分钟
背景: 现在的互联网公司,大多数时候应用服务都是部署在linux服务器上,那么当你的服务运行过程中出现了一些响应慢,资源瓶颈等疑似性能问题时,给你60秒,如何快速完成初步检测? 肯定有人会说用工具,公 ...
- Linux服务器的弱口令检测及端口扫描
一.弱口令检测--John the Ripper John the Ripper工具可以帮助我们扫描出系统中密码安全性较低的用户,并将扫描后的结果显示出来. 1.安装John the Ripper: ...
- linux 检测服务器端口工具
#nmp# nmap 127.0.0.1 #netstat# netstat -anlp | grep 22 #telnet# 服务器端口即使处于监听状态,但是防火墙iptables屏蔽了该端口,是无 ...
随机推荐
- java并发:CAS算法和ABA问题
CAS算法是硬件对于并发的支持,针对多处理器操作而设计的处理器中的一种特殊指令. CAS用于管理对共享数据的并发访问. java的并发包中,AQS.原子操作类等都是基于CAS实现的. CAS 是一种 ...
- dfs小练 【dfs】
1.前n个自然数的所有排列: #include <iostream> #include <cstdio> #include <cstring> using name ...
- Python int() 函数
Python int() 函数 Python 内置函数 描述 int() 函数用于将一个字符串或数字转换为整型. 语法 以下是 int() 方法的语法: class int(x, base=10) ...
- 运行 命令框不记录打过的命令,重启后CMD里面是空的.上次打过的命令消失了.
问题: 常要用到PING命令.在cmd中输入ping 202.103.44.150 /t (这是当地的电信DNS) 用这个查看网络是不是正常.正常情况下次点开始运行的时候,运行命令框中应该 会有上次打 ...
- 乱序字符串anagrams
[抄题]: 给出一个字符串数组S,找到其中所有的乱序字符串(Anagram).如果一个字符串是乱序字符串,那么他存在一个字母集合相同,但顺序不同的字符串也在S中. 对于字符串数组 ["lin ...
- 5-分西瓜差最小(背包 || dfs)
/* zb立刻下定决心买了一堆西瓜.当他准备把西瓜送给C小加和never的时候,遇到了一个难题,never和C小加不在一块住,只能把西瓜分成两堆给他们,为了对每个人都公平,他想让两堆的重量之差最小 ...
- (一)ROS的安装与环境配置
1.设置教程 1.1 打开system setting(系统设置)->Software&Updates(软件与更新) 1.2点击上方Other software(其他软件),点击左下角a ...
- Codeforces 670D1. Magic Powder - 1 暴力
D1. Magic Powder - 1 time limit per test: 1 second memory limit per test: 256 megabytes input: stand ...
- Debian9开机运行Python脚本
吾星喵 关注 2018.04.14 15:30 字数 214 阅读 202评论 0喜欢 1 Debian9开机运行Python脚本 Debian 9.x "stretch" 解决 ...
- Laravel框架中实现supervisor执行异步进程
问题描述:在使用Laravel框架实现动态网页时,若有些操作计算量较大,为了不影响用户体验,往往需要使用异步方式去处理.这里使用supervisor和laravel自带的queues实现. Super ...