写在前面

目前有个pc(win10)同步文件到ipad的需求,代替使用微信带来的数据空间占用问题。

初始阶段的方案是pc端共享文件夹,ipad使用“文件”app接入,每到次日这个同步就会失效ipad无法连接到共享目录。起初以为是重启导致共享延迟等,进而改变方案,在linux端搭建smb服务,pc、ipad作为客户端接入。起初不算顺利,因为在端口(445)都畅通的情况下,仅有linux互通linux是通畅的,但是与pc、ipad、android,连接不通,百思不得解。稍后猛然忆起早年间爆出过445端口漏洞问题,进而想到是否是网关屏蔽了445的原因,遂将手机连接4G网络,顺利联通;而后通过修改SMB服务端端口,顺利联通各端,在此记录下过程及遇到的问题。

linux SMB服务安装

安装命令

yum install -y samba

配置文件路径

 /etc/samba/smb.conf

配置文件设置

需要为SMB服务设置非root登录账号

创建新用户

useradd -m username

设置登录密码

passwd username

设置smb用户的密码(此密码非登录密码,smb用户与登录用户相同,但是密码不同)

smbpasswd username

设置共享目录,比如:/share,并设置权限

mkdir /share
chmod 777 /share
chown -R username:username /share

SMB服务启动

systemctl restart smb.service
systemctl restart nmb.service

状态查看

systemctl status smb.service
systemctl status nmb.service

查看服务占用端口

ss -anp|grep smb

SMB文件共享标准端口(445)接入

PC(win10)

开启SMB支持

设置网络驱动器

成功后会在此电脑,网络位置中出现图标;

如果点击确认后过一阵“输入网络凭证弹框”依然弹出或者提示“网络错误”或提示“ 找不到网络路径”,说明网络、端口不通,需要检查;
如果确认按钮上方出黄色异常信息,说明网络是通畅的,按照异常调整就好

Android

图中是三星手机演示,在我的文件-网络存储中

Apple

打开“文件”App

左上角三个点-连接服务器

输入服务地址:smb://ip/share

选择注册用户,输入用户名、密码

SMB文件共享非标准端口接入(非标端口,如:1234)

SMB服务配置文件修改

/etc/samba/smb.conf
global下增加smb ports = 1234 (注意有空格)

smb服务修改为1234
重启
    systemctl restart smb.service
    systemctl restart nmb.service
修改防火墙
修改云服务安全组
外部测试端口连通性 telnet ip 1234

PC(win10)

映射网络驱动器无法连接非标端口的SMB服务,但是可以使用端口转发达到间接访问的目的

配置端口转发

  1. 查看端口占用情况

netstat -ano | findstr 445

如果有返回信息,说明被占用

  1. 避免445端口被占用。关闭Server服务,并禁用,服务名:LanmanServer

  1. 重启

  1. 再次查看端口占用情况

若无信息返回则说明没有占用

  1. 配置端口转发

netsh interface portproxy add v4tov4 listenaddress=127.0.0.1 listenport=445 connectaddress=SMB服务地址  connectport=SMB服务端口
  1. 查看端口转发

netsh interface portproxy show all

如下图即为配置成功

  1. 其他

清除所有端口转发规则

netsh interface portproxy reset

连接SMB服务

其他配置相同,区别在地址

访问流程
本地访问\\127.0.0.1\share ——> 系统本地检索samba服务 ——> 根据端口转发将445端口的请求自动转发到设定的IP地址和端口 ——> 访问成功

Adnroid

更改端口号为1234,其他配置相同

Apple

不能使用“文件”App连接非标端口的SMB服务,需要下载“ES文件浏览器”,打开后点击左侧SMB按提示操作即可连接。注:文件变化需要手动刷新

参考连接
https://blog.csdn.net/weixin_43726881/article/details/129491719#comments_25689047
https://blog.csdn.net/zsdt345a780rfajwet/article/details/107845859

Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐