当前位置: 首页 > news >正文

linux 如何查看服务和端口

问:我该如何发现哪种服务正在某个特定端口上监听呢?我如何发现哪一个程序正在一个特定端口上监听呢?

  答:在*NIX系统中,你可以使用下面的任何一个命令来得到在一个特定TCP端口上监听的列表。

  Lsof:其功能是列示打开的文件,包括监听端口。

  netstat :此命令象征性地展示各种与网络有关的数据和信息的内容。

  Lsof命令示例

  你可以输入下面的命令来查看IPv4端口:

  # lsof -Pnl +M -i4

  你可以输入下面的命令来查看IPv6协议下的端口列示:

  # lsof -Pnl +M -i6

  此例输出:

   

1


    
    这里我们不妨解释一 下。第一栏是command,它给出了程序名称的有关信息。请注意标题的细节。例如,第二行的gweather* 命令从美国 NWS服务器(140.90.128.70)获取天气的报告信息,包括交互天气信息网络和其它的天气服务。在这里,我们解释一下命令各个参数。

  1. -P :这个选项约束着网络文件的端口号到端口名称的转换。约束转换可以使lsof运行得更快一些。在端口名称的查找不能奏效时,这是很有用的。

  2. -n : 这个选项约束着网络文件的端口号到主机名称的转换。约束转换可以使lsof的运行更快一些。在主机名称的查找不能奏效时,它非常有用。

  3. -l :这个选项约束着用户ID号到登录名的转换。在登录名的查找不正确或很慢时,这个选项就很有用。

  4. +M :此选项支持本地TCP和UDP端口映射程序的注册报告。

  5. -i4 :仅列示IPv4协议下的端口。

  6. -i6 : 仅列示IPv6协议下的端口。

  Netstaty命令举例

  请输入下面的命令:

  # netstat -tulpn

  或者是

  # netstat -npl

  请看输出结果::

  

 Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name

tcp 0 0 0.0.0.0:6881 0.0.0.0:* LISTEN 6908/python

tcp 0 0 127.0.0.1:631 0.0.0.0:* LISTEN 5562/cupsd

tcp 0 0 127.0.0.1:3128 0.0.0.0:* LISTEN 6278/(squid)

tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN 5854/exim4

udp 0 0 0.0.0.0:32769 0.0.0.0:* 6278/(squid)

udp 0 0 0.0.0.0:3130 0.0.0.0:* 6278/(squid)

udp 0 0 0.0.0.0:68 0.0.0.0:* 4583/dhclient3

udp 0 0 0.0.0.0:6881 0.0.0.0:* 6908/python

  请注意,最后一栏给出了关于程序名称和端口的信息。在这里,我们解释一下各参数的含义:

  -t : 指明显示TCP端口

  -u : 指明显示UDP端口

  -l : 仅显示监听套接字(所谓套接字就是使应用程序能够读写与收发通讯协议(protocol)与资料的程序)

  -p : 显示进程标识符和程序名称,每一个套接字/端口都属于一个程序。

  -n : 不进行DNS轮询(可以加速操作)

  关于/etc/services文件

  /etc/services是一个纯ASCII文件,它可以提供互联网服务的友好文本名称,还有其默认分配的端口号和协议类型。每一个网络程序都要进入这个文件得其服务的端口号(和协议)。你可以借助于cat命令或less命令等来查看这个文件:

  

 $ cat /etc/services

$ grep 110 /etc/services

$ less /etc/services

相关文章:

  • phpmailer发送excell
  • struts2.0的json操作
  • 用C++封装了一个简单的“按钮”类
  • 3dMAX如何发送网络渲染
  • 怎么给Guest 账户设置密码
  • 【开源】北大团队大规模稀疏数据机器学习库xLearn,c++ trending 已超TensorFlow
  • iphone 如何查看代码的总行数
  • windows server之AD(1)
  • 游客须知
  • fpm打包zabbix-agent
  • 让虚拟机支持USB HDD 启动
  • Unity导航 (寻路系统Nav Mesh Agent)
  • SaltStack实战之SaltStack快速入门
  • System.Diagnostics.Debug和System.Diagnostics.Trace
  • 系统管理员不得不知的 10 个基本准则
  • 分享的文章《人生如棋》
  • 【402天】跃迁之路——程序员高效学习方法论探索系列(实验阶段159-2018.03.14)...
  • CAP 一致性协议及应用解析
  • Electron入门介绍
  • IE报vuex requires a Promise polyfill in this browser问题解决
  • Java 最常见的 200+ 面试题:面试必备
  • js算法-归并排序(merge_sort)
  • LeetCode18.四数之和 JavaScript
  • Meteor的表单提交:Form
  • orm2 中文文档 3.1 模型属性
  • python3 使用 asyncio 代替线程
  • Python打包系统简单入门
  • Vue 动态创建 component
  • Vue官网教程学习过程中值得记录的一些事情
  • 世界编程语言排行榜2008年06月(ActionScript 挺进20强)
  • 思否第一天
  • 算法系列——算法入门之递归分而治之思想的实现
  • 一天一个设计模式之JS实现——适配器模式
  • 移动端高清、多屏适配方案
  • ​configparser --- 配置文件解析器​
  • #NOIP 2014#Day.2 T3 解方程
  • (3)选择元素——(17)练习(Exercises)
  • (solr系列:一)使用tomcat部署solr服务
  • (二)JAVA使用POI操作excel
  • (十三)Maven插件解析运行机制
  • ***通过什么方式***网吧
  • .NET 8.0 中有哪些新的变化?
  • .NET Compact Framework 3.5 支持 WCF 的子集
  • .net framework profiles /.net framework 配置
  • .net php 通信,flash与asp/php/asp.net通信的方法
  • .NET 同步与异步 之 原子操作和自旋锁(Interlocked、SpinLock)(九)
  • .NET高级面试指南专题十一【 设计模式介绍,为什么要用设计模式】
  • .NET命令行(CLI)常用命令
  • .NET项目中存在多个web.config文件时的加载顺序
  • .Net转Java自学之路—SpringMVC框架篇六(异常处理)
  • .pub是什么文件_Rust 模块和文件 - 「译」
  • /dev/sda2 is mounted; will not make a filesystem here!
  • [1]-基于图搜索的路径规划基础
  • [Android]一个简单使用Handler做Timer的例子
  • [BZOJ 3531][Sdoi2014]旅行(树链剖分+线段树)