在linux或类unix系统下如何确定端口是否正在使用?如何验证 linux 服务器上正在侦听哪些端口?如何使用 cli 检查 linux 操作系统上的端口是否正在使用?
验证哪些端口正在服务器网络接口上侦听非常重要。您需要注意开放端口以检测入侵。除了入侵之外,出于故障排除的目的,可能有必要检查端口是否已被服务器上的其他应用程序使用。
例如,您可以在同一系统上安装 apache 和 nginx 服务器。因此有必要知道 apache 或 nginx 是否正在使用 tcp 端口#80/443。本快速教程提供了使用 netstat、nmap 和 lsof 命令检查正在使用的端口并查看正在使用该端口的应用程序的步骤。
如何检查端口是否被使用查看linux上的监听端口和应用程序:
1.打开终端应用程序,即 shell 提示符。
2.在 linux 上运行以下任一命令来查看开放端口:
3.对于最新版本的 linux,请使用 ss 命令。例如,ss -tulw
让我们详细看看命令及其输出。
选项#1:lsof 命令语法为: 示例输出:
考虑上面输出的最后一行:
sshd 85379 root 3u ipv4 0xffff80000039e000 0t0 tcp 10.86.128.138:22(监听)sshd是应用程序的名称。10.86.128.138是 sshd 应用程序绑定到的 ip 地址(监听)22是正在使用的 tcp 端口 (listen)85379是sshd进程的进程id查看 internet 网络服务列表/ etc/services是互联网服务的友好文本名称与其底层分配的端口号和协议类型之间的文本文件映射。使用cat命令或者more命令/ less命令查看:
$less /etc/services
选项#2:netstat 或 ss 命令您可以使用netstat检查监听端口和应用程序,如下所示。
linux netstat 语法运行 netstat 命令和grep 命令来过滤掉处于 listen 状态的端口: 或过滤掉特定的 tcp 端口,例如 443: 其中 netstat 命令选项为:
-t :选择所有tcp端口-u :选择所有udp端口-l :显示监听服务器套接字(在列表状态下打开tcp和udp端口)-p :显示套接字的 pid/程序名称。换句话说,该选项告诉谁打开了 tcp 或 udp 端口。例如,在我的系统上,nginx 打开了 tcp 端口 80/443,因此我将 /usr/sbin/nginx 或其 pid。-n :不解析名称(避免 dns 查找,这可以加快繁忙的 linux/unix 服务器上的 netstat 速度)linux 上的netstat 命令已弃用一段时间。因此,需要使用ss命令,如下:
其中,ss命令选项如下:
-t :在 linux 上仅显示 tcp 套接字-u :在linux上仅显示udp套接字-l :显示监听套接字。例如,sshd 服务器打开 tcp 端口 22。-p :列出打开套接字的进程名称-n :不解析服务名称,即不使用 dnsfreebsd/macos (os x) netstat 语法语法如下: 您也可以在 macos 或 freebsd 上使用 sockstat 命令来显示打开的 tcp 或 udp 端口。例如:我的freebsd 服务器版本13.xx 的输出:
openbsd netstat 语法
选项#3:nmap 命令语法是:
誓言要和小米拉开高端机差距,华为要将P10再创售价之最!
vivoX9plus星空灰和红米Note4X同一天发布,谁才最佳是情人节礼物?
OPPO R15火爆创下新高 京东、天猫、苏宁拿下销量/销售额双料冠军
Banana Pi 开源社区发布BPI-M6开源硬件开发板,支持6.75TOPs算力
Verilog中关于文件操作的系统任务
在Linux或类Unix系统下如何确定端口是否正在使用?
开关模式降压充电器MAX77860解决方案
华为P10开始预热?淘宝开售钢化膜
采用PID控制器实现四旋翼无人机的四元数控制律设计
正式应用还要数年 但这次CES我们为何要关注5G
大数据技术在个应用领域面临哪些挑战
1000MW机组高加退出对机组的影响
NetSpeed Systems推出SoC芯片内部互连解决方案Orion AI
第二代多处理器SoC,实现最佳低成本电源解决方案
智能音箱背后的技术原理是什么
基于VCSEL的神经形态光子脉冲处理器
机器人在钢结构的广泛应用场景
明星企业齐聚PEC电力电子,共讨行业发展新趋势
FPGA数字图像处理基础:色彩空间转换(Verilog)
岚豹扫地机器人完全无人工 彻底解放妈妈的双手