win10实现非标(非445)端口访问samba服务_smb服务能使用其他端口吗-CSDN博客


难度 中等

糖果墙 于 2023-11-14 01:58:11 发布

win10实现非标(非445)端口访问samba服务

背景:

  • 由于公司有需求,在某个高性能宿主机节点上起了N多个Docker容器,而每个容器内的/usr1下都挂载了独立的数据卷,这个数据卷还不是宿主机的数据卷,因此需要在每个服务中安装独立的samba服务。

  • samba服务的标准是占用445139端口。容器中可以默认使用445139端口,然后映射到宿主机的随机端口上,实现每个容器都能启动独立的samba服务而不冲突。

  • 那么问题就抛给windows用户了,windows上面想访问某个samba服务,就需要在资源管理器地址中输入\\ip\共享目录,然后就能访问到这个ip对应的445端口上启动的samba服务了,可是一旦服务器上的samba服务没有启动在445端口,通过默认的ip和端口就访问不到samba服务了,因为windows上面访问samba服务是不能指定端口的,只能是445端口。

  • 那如何通过\\ip\共享目录连接到非445端口启动的samba服务呢?

解决办法如下:

1. 启用SMB 1.0协议和Telnet功能

在控制面板>程序>启用或关闭Windows功能中启用SMB 1.0协议和Telnet功能,启用后提示,需要重启电脑才能生效,这里先不重启,等设置好端口转发以后再重启。

image-20231114010123380

image-20231114010322636

  • 启用SMB 1.0协议了后面才能修改通过端口转发访问到samba服务

  • 启用Telnet功能是为了确认你的samba服务是否正常工作,输入如下命令进行确认

    telnet ip 端口

    如果没有报无法访问的错误,就表示samba服务工作正常

2. 禁用445端口的默认服务

win+r输入services.msc,在服务列表中停止并禁用Server服务

image-20231114011412905

3. 启动IP端口转发服务

win+r输入services.msc,在服务列表中启动IP Helper服务,并把启动类型设置成自动。

image-20231114011539069

4. 设置IP端口转发规则

netsh interface portproxy add v4tov4 listenport=445 listenaddress=localhost connectport=目标端口 connectaddress=目标IP

例如我要把访问127.0.0.1:445的请求都转发到192.168.3.116:446,命令如下

netsh interface portproxy add v4tov4 listenport=445 listenaddress=localhost connectport=446 connectaddress=192.168.3.11

查看是否设置成功

netsh interface portproxy show all

image-20231114012339209

到此就设置完了,重启下电脑,让SMB 1.0协议和端口转发服务生效

5. 验证IP端口转发规则是否生效

查看端口转发监听是否生效:

netstat -ano|findstr 445

只要显示不是4就是代表成功的意思,否则就是不成功。

image-20231114012534117

这里的6180是进程号,在任务管理器的服务一栏下可以看到这是ip端口转发服务对应的进程号

image-20231114012617958

6. 连接共享服务

如果显示正确,资源管理器的地址栏输入\\localhost,就可以访问到samba服务器的共享目录了。

image-20231114013005906

7. 映射网络驱动器

如果能通过\\localhost访问到samba服务的文件了,那么可以进一步把这个地址映射网络驱动器,效果就是跟C盘、D盘这种系统盘一样方便地访问了,按照截图的步骤操作即可

image-20231114013456006

image-20231114013758059

image-20231114013945884

8. 参考wiki

https://zhizhuo.blog.csdn.net/article/details/129491719


  目录
分类导航
随笔2 AI27 算法1 计算机基础13 博客搭建7 ChatGPT2 集群63 计算机通信1 数据库34 数据库深入80 DPDK26 Docker11 Elasticsearch4 编辑工具4 FAQ1 Go Web1 hometown2 编程语言16 网络9 OPC1 Linux38 openGauss4 页面12 PostgreSQL54 程序员自我修养1 协议11 成长之路1 stock1 存储5 工具20 VPP18 视频作品1 Vue13 Web1 代码示例11 数据库15 BenchmarkSQL1 PostgreSQL 源码修炼之路14
最热文章
1
13 逻辑复制深入
数据库深入🔥 1570
2
0 Postgresql存储、索引及系统优化、主备切换
PostgreSQL🔥 1495
3
一文读懂openguass dcf网络模块
集群🔥 1420
4
逻辑复制源码分析
数据库深入🔥 1327
5
PostgreSQL 分区表:从一行 `PARTITION BY` 到路由热路径的全链路拆解
数据库🔥 1094
6
applyparallelworker.c 之 LA 端源码深度解析:Leader Apply Worker 的指挥中枢
数据库深入🔥 1082
7
PostgreSQL Background Worker 全解:从 `RegisterBackgroundWorker` 到逻辑复制 4 类 worker 的全生命周期
数据库🔥 1078
8
PostgreSQL的后台进程walsender分析 - 关系型数据库 - 亿速云
PostgreSQL🔥 1033
9
PostgreSQL 逻辑复制的监控:六张视图 + 一组可执行 SQL,把 publisher/subscriber 的速率与健康度彻底看透
数据库🔥 1032
10
PostgreSQL 逻辑复制支持 DDL 之后:DDL 与 DML 的时序难题(重点:分区表)
数据库🔥 999
11
reorderbuffer.c 源码深度解析:PostgreSQL 逻辑复制的"事务重组引擎
数据库深入🔥 953
12
PostgreSQL 内核开发:读取一张表的 9 步标准流程与缓存全景
数据库🔥 938
13
从 `postgres` 二进制到生产级守护 —— PostgreSQL 最外层模块与启动全流程拆解
数据库🔥 936
14
支持逻辑复制同步 DDL 适配 SQL Server 方案
数据库深入🔥 934
15
PostgreSQL 逻辑复制的 ReorderBuffer 与事务机制:从一行 WAL 到一致性变更流的全链路绑定
数据库🔥 913
16
DDL同步架构(美化版)
数据库深入🔥 908
17
PostgreSQL Latch 机制详解:从一行 SetLatch 到 epoll 的内核之旅
数据库🔥 871
18
pgbench 源码全解:一个 C 文件如何撑起 PostgreSQL 官方压测工具
数据库🔥 860
19
PostgreSQL libpq 机制与缓冲区详解
数据库🔥 850
20
PostgreSQL 逻辑复制 spill 文件深度剖析:从 `xid-*.spill` 到 TPC-C 的增长方程
数据库🔥 845