NetBios, NetBios over TCP/IP, SMB 之间的关系
首先提到的是NetBios,NetBios是Network Basic Input/Output System的缩写,提供了一种允许局域网内不同电脑能够通信的功能。严格来说,NetBios是一套API,而并不是一个网络协议。
如今,我们使用的网络协议栈是TCP/IP协议栈,在Windows操作系统上,NetBios运行在NetBios over TCP/IP的协议上,NetBios over TCP/IP(简称NBT或者NetBT)是一个网络协议,允许以前使用NetBios API的应用程序能够在现代的TCP/IP网络中。如下图:
再说SMB,SMB是Server Message Block的缩写,作为一个应用层的协议,主要提供一个网络中文件共享、文件打印和进程间通信等功能,如今SMB的使用主要存在于Windows系统中。
SMB协议是运行在会话层之上的网络层协议,有两种运行方式,第一种通过NetBios API,如下图:
使用的是UDP的137和138端口以及TCP的137和139的端口。
第二种是直接运行在TCP和UDP协议之上,使用的是445端口,可以称为"Direct hosting of SMB over TCP/IP"。
总结一下,Windows主机上文件打印、文件共享等都通过SMB协议来实现,而SMB通过两种方式运行在139和445端口之上。我们可以通过手段使得SMB只通过第二种方式运行,而不通过NetBios API。本地连接属性àInternet协议版本4属性à高级àWINSà禁用TCP/IP上的NetBios.这样的话SMB就只运行在445端口之上了。
禁用前:
禁用后:
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek 解答了困扰我五年的技术问题
· 为什么说在企业级应用开发中,后端往往是效率杀手?
· 用 C# 插值字符串处理器写一个 sscanf
· Java 中堆内存和栈内存上的数据分布和特点
· 开发中对象命名的一点思考
· PPT革命!DeepSeek+Kimi=N小时工作5分钟完成?
· What?废柴, 还在本地部署DeepSeek吗?Are you kidding?
· DeepSeek企业级部署实战指南:从服务器选型到Dify私有化落地
· 程序员转型AI:行业分析
· 重磅发布!DeepSeek 微调秘籍揭秘,一键解锁升级版全家桶,AI 玩家必备神器!
2017-12-19 设置Linux系统的空闲等待时间TMOUT