公网Samba实现 在ISP封锁了445端口之后

445被封原因就不多说了。

这个想法最初是阿里云上面的Windows Server磁盘空间太小了,文件存着存着就满了,但是看了一下文件,里面存过的文件实际上程序之后运行是用不到的,所以我就打算每隔一定时间之后,对某个目录下面的文件进行转储,放到我家里跑的一个树莓派上面,在插一个移动硬盘。

存放方法可以使用网盘的API、发送超大邮件到邮箱、公网SMB进行转储、公网FTP、公网WebDAV。

我选择了公网SMB转储。

2021.03修改:最终在使用的过程中,由于smb直接走explorer,而且阿里云的小水管太慢,smb用起来实际上特别卡,一不小心就把explorer搞死了。最终决定还是使用FTP with TLS。使用Wings FTP,阿里云用FileZella 开启主动模式。最朴素的FTP没有文件完整性校验,FileZella有没有还尚未研究,可以稍微看一下,如果没有的话,手动写一个传输之后给目录tree和文件checksum进行校验的方法。可以使用树结构优化。


首先就是在树莓派搭建smb服务,插上移动硬盘。进行挂载、配置自动挂载。

树莓派smb配置教程:https://www.ncnynl.com/archives/201608/738.html

关于Windows连接Smb容易出现的问题解决方法:https://blog.csdn.net/hao134838/article/details/50663359

局域网测试通过之后进入下面的主要部分:


问题的起源主要是Windows直接将445端口硬编码在了程序里面,导致Windows访问smb不能切换端口。

为了解决这个问题,我们请出MultiPort Forwarder:

http://www.verigio.com/

软件有30days试用,试用过期后官方可以申请免费版本的注册码,只有基本功能,但是已经足够使用了,我这个现在就是过期之后用的免费版(免费版key: 1G0C3-7PBP0-1M9VF-F4625-NGC31)。(如果有大佬手里有破解版欢迎在下面给我评论哦!)

按照图示配置端口转发规则:

 

注意分清tcp, udp。

 配置好之后,在访问远程445端口的话,在实际传输过程中,会变成访问远程的1455端口。

Windows配置好端口转发后,在树莓派上使用frp把SMB端口转发到公网服务器上面。(关于frp:https://github.com/fatedier/frp

注意分清tcp,udp。

之后运行

./frpc

查看log,转发成功即可。


实战测试:

开始-运行-\\[公网ip]\

右键里面的共享文件夹,映射为网络驱动器。

Enjoy!


附录:(来源于前面注明的转载网页)

 搭建SAMBA服务器

安装samba

sudo apt-get update
sudo apt-get install samba samba-common-bin

配置文件smb.conf

nano /etc/samba/smb.conf

修改其配置文件 /etc/samba/smb.conf, 在文件最后面添加以下内容

# ======================
[share]           #共享文件的名称, 将在网络上以此名称显示
path = /share         #共享文件的路径
valid users = pi        #允许访问的用户
browseable = yes        #允许浏览
public = yes        #共享开放
writable = yes        #可写

修改完成后,保存。然后重新启动 samba服务, 并添加共享用户:

重启samba

pi@raspberrypi ~ $ sudo /etc/init.d/samba restart
[ ok ] Stopping NetBIOS name server: nmbd.
[ ok ] Starting NetBIOS name server: nmbd.
[ ok ] Stopping SMB/CIFS daemon: smbd.
[ ok ] Starting SMB/CIFS daemon: smbd.
[ ok ] Stopping Samba AD DC daemon: samba.

添加samba共享用户

pi@raspberrypi ~ $ sudo smbpasswd -a pi
New SMB password:

Retype new SMB password:
Added user pi.

 网络文件夹目前是以其他用户名和密码进行映射的——映射盘更换登录用户名问题

引言

   最近在使用局域网内的映射盘来共享文件,这样比通过外网来上传和下载文件的速度快很多,但是对于安全问

题我们不得不去考虑权限问题,就是我们需要分配不同的用户名和密码来区分权限,有的用户名只能读,有的可以读

写。但是小编最近在使用的时候遇到了一个问题,原来我的是记录的只读的用户名,但是现在我需要登录另外一个用

户名来上传文件,这时候遇到了这么一个问题。

   问题重现

           

   顺便给大家说一下我们应该怎样更换我们登录映射盘用户名和密码的:如下图:

   1、点击ip位置回到此目录下

   

   2、右击资料共享,点击映射网络驱动器

  

   3、选择使用其他凭据连接

         

   4、选择使用其他账户登录,然后输入新的用户名和密码就可以了

             

   当我们输入新的密码以后就出现了上面的错误。这是因为:被映射的网络共享文件夹所在的机器给不同的共享

文件夹设置了不同的用户访问权限,而目前连接的机器与被映射的机器已经用另一个用户建立了连接,从而导致了此

错误。

   解决方法:

 首先在我dos窗口输入命令:net use 即可看到当前已建立的连接:

        

 然后我们输入命令:net use * /delete 来结束所有的当前所有的连接。然后再输入命令: Y 来结束所有连接;

      

然后在按照更换登录映射盘密码的方法来重新登录就完美解决了。

   小结

  当时自己遇到这个问题的时候没有想怎样去解决这个问题,而是想直接放开所有的权限。这样我们就不论用那个

账号登录我们都可以直接上传下载了。但是这样会给我们带来很多的问题。可能造成资料误删或者资料冗余等问题,

所以说我们不论是在敲代码还是平常学习的时候遇到了问题我们应该多查一些资料来解决。这样不仅解决我们的问题

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值