概述

frp 是一款高性能的反向代理应用,专注于内网穿透。您可以使用 frp安全、便捷地将内网服务暴露到公网,通过拥有公网 IP 的节点进行中转。SMB是用于通过网络进行高效文件共享的文件访问存储。本文是将两者结合来实现访问私域内网文件。

前提条件

· 内网运行中的SMB服务

· 具有公网IP的服务器(下面以47.66.66.47举例)

· 内网运行中的SMB服务

发现问题

搭建完frp服务后,我们发现docker应用和内网地址可以正常访问,但SMB文件共享服务从外网无法连接。经过研究发现这是因为Windows系统连接SMB只能使用445端口,但该端口已被运营商封锁。

解决方案需要两个步骤:

· 将frp外网端口修改为非445端口(推荐使用4位端口号,如4545)

· 在Windows系统上配置本地端口映射

接下来我们将详细介绍如何实现本地端口映射。

实现步骤

1. 修改frp配置

由于运营商封锁了445端口,需要将外网端口修改为非445端口

[smb]

type = tcp

local_ip = 127.0.0.1  #smb文件服务ip,内网替换成对应ip

local_port = 445

remote_port = 4545

2.配置本地端口映射

· 以管理员权限打开CMD

· 执行端口映射命令

(1)添加本地映射

netsh interface portproxy add v4tov4 listenaddress=127.0.0.1 listenport=445 connectaddress=47.66.66.47 connectport=4545

 

(2)显示映射

netsh interface portproxy show v4tov4

 

侦听 ipv4:                 连接到 ipv4:

地址            端口        地址             端口

------------- ------------ ---------------  -----------

127.0.0.1       445         47.66.66.47     4545

 

(3)删除映射(如不需要)

netsh interface portproxy delete v4tov4 listenport=445 listenaddress=127.0.0.1

· 重启电脑使配置生效(重启一些系统服务,选择重启比较方便)

3. 验证访问

· 使用 Win + R 打开运行

· 输入 \\127.0.0.1\共享文件夹 进行访问

输入用户名和密码

性能表现

文件传输速度基本可以跑满本地上传带宽 

总结

通过修改端口号和配置本地映射,可以实现内网SMB文件共享服务的外网访问,文件传输速度能够达到本地上传带宽的最大值。

提示:虽然可以通过域名访问,但由于每次重启电脑都需要重新配置,因此建议直接使用IP地址访问,操作更加便捷。

原文链接:利用frp内网穿透如何实现smb文件共享 - 少数派