端口检测 | 命令行整理篇

前言 使用Linux主机也有一段时间,常常会监测某一个端口是否已经开启了、或者某一个端口被哪一个程序占用了,然而今天就系统整理一下,Share~


端口类型 说点理论的的东西,额~Unix/Linux服务器的类型有哪些呢?按照端口的分段基本可以分成三大类型:

  • 公认端口(Well Known Port) 公认端口号从0到1023,它们紧密绑定与一些常见服务,例如FTP服务使用端口21、HTTP服务使用端口80
  • 注册端口(Registered Ports) 注册端口一般从1024到49151,它们松散地绑定于一些服务。
  • 动态或私有端口(Dynamic and/or Private Ports) 动态端口,即私人端口号(private port numbers),是可用于任意软件与任何其他的软件通信的端口数,使用因特网的传输控制协议,或用户传输协议。动态端口一般从49152到65535

端口与服务 无论在windows上还是Linux上,一台计算机主机都含有多种服务,比如Web服务、FTP服务、SMTP服务等。那么端口有什么用呢,我们知道,一台拥有IP地址的主机可以提供许多服务,这些服务完全可以通过1个IP地址来通讯。那么,主机是怎样区分不同的网络服务呢?显然不能只靠IP地址,因为IP 地址与网络服务的关系是一对多的关系。实际上是通过“IP地址+端口号”来区分不同的服务的。


得回到我的Title了,不然就成了标题党(o)/~ nmap

  • 简介 nmap是一款网络扫描和主机检测的工具
  • 安装
sudo apt-get install nmap
  • 语法格式
nmap [扫描类型] [选项] {目标}
  • 示例
# 查找172.16.168.200主机上的端口开放情况
➜  ~ nmap  172.16.168.200          

Starting Nmap 6.40 ( http://nmap.org ) at 2017-04-13 11:33 CST
Nmap scan report for 172.16.168.200
Host is up (0.021s latency).
Not shown: 993 closed ports
PORT      STATE SERVICE
22/tcp    open  ssh
80/tcp    open  http
443/tcp   open  https
8888/tcp  open  sun-answerbook
10001/tcp open  scp-config
10002/tcp open  documentum
10003/tcp open  documentum_s

Nmap done: 1 IP address (1 host up) scanned in 1.86 seconds

#  查找172.16.168.200主机上的端口服务的详细信息

netstat

  • 简介 用于显示各种网络相关信息,如网络连接,路由表,接口状态 等等
  • 语法格式
netstat [-acCeFghilMnNoprstuvVwx] [-A<网络类型>][--ip]
  • 示例
# 结合grep查找是否开启了3306端口
➜  ~ netstat -anlp |grep 3306
(并非所有进程都能被检测到,所有非本用户的进程信息将不会显示,如果想看到所有信息,则必须切换到 root 用户)
tcp        0      0 0.0.0.0:3306            0.0.0.0:*               LISTEN      - 

lsof

  • 简介 这个是我比较常用的端口监测的命令,它也是用于查找端口的一个命令工具。
  • 示例
# 监测3306端口是否启动了
➜  ~ sudo lsof -i:3306
COMMAND  PID  USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
mysqld  1277 mysql   11u  IPv4  16839      0t0  TCP *:mysql (LISTEN)

netcat

  • 简介 监测某一个端口是否可以连接得上的一个命令行工具。
  • 示例
# 成功
➜  ~ netcat -vv 172.16.168.1 3000
Connection to 172.16.168.1 3000 port [tcp/*] succeeded!

# 失败
➜  ~ netcat -vv 172.16.168.1 3001
netcat: connect to 172.16.168.1 port 3001 (tcp) failed: Connection refused

ps 上面的命令行的用法、参数、选项还是比较多的,还有其它的功能,如上只是简单的使用,更多自行help... ...

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏云计算教程系列

如何在Ubuntu 16.04上安装Bro

Bro是一个开源网络分析框架和安全监控应用程序。它将OSSEC和osquery的一些最佳功能集成到一个包中。

1305
来自专栏非著名程序员

环境配置:React Native 开发环境配置 For Android

React Native 是FaceBook开源的一个项目,FaceBook希望可以用写 Web App 的方式去写 Native App。它可以让我们用JS和...

2138
来自专栏编程

3分钟带你学会git向github推送!

如果你是一个程序员,你还不知道git和github的话,就说明你low了;那也没关系,赶紧戳链接去下载就行~~ git:分布式的版本管理工具,具体的我就不在这里...

1867
来自专栏吴伟祥

Linux软件包管理(四) 原

包全名:操作的包是没有安装的软件包时, 使用包全名。而且要注意路径      安装 升级 包名:操作已经安装的软件包时,使用包名。 是搜索/var/lib/r...

732
来自专栏大前端开发

如何删除微信web开发者工具中失效项目?

我日常使用微信web开发者工具来学习和开发我们的微信小程序,在这过程中,我们可能会创建很多小程序项目,总会有时候,我需要删除我们不需要的项目,通常情况下,我们可...

592
来自专栏大数据技术学习

零基础学习大数据,搭建Hadoop处理环境

由于Hadoop需要运行在Linux环境中,而且是分布式的,因此个人学习只能装虚拟机,本文都以VMware Workstation为准,安装CentOS7,具体...

2207
来自专栏编程微刊

Git安装及密钥的生成并上传本地文件到GitHub上

1574
来自专栏编程之旅

Ubuntu 16.04服务器的初始化设置

最近在服务器的安全性这个问题上吃了点亏,于是决定写几篇Linux服务器初始化相关的文章,来记录这次踩坑的成果。尽早的设置会让服务器更加的安全,提高它的可用性,为...

634
来自专栏小詹同学

Python入门(一)——windows系统下python的安装

跟着北京某理工大学的某导师学习和研究人脸识别技术已经有一段时间了,在用C++后,在考虑用另一种语言python进行人脸识别的研究。那么要做的第一件事就是在电...

3355
来自专栏从流域到海域

在CentOS 7上安装Magento

在这篇教程中,您将学习如何在CentOS 7上安装Magent。Magento Community Edition(CE,即社区版)是一个免费的开源电子商务平台...

2126

扫码关注云+社区