Samba:基于公网 IP 的服务访问

时间:2024-02-19 10:43:43

写在前面的话

 

由于使用过程中,发现如果 Samba 只用于内网访问,同事在外面甚至其它不是一个网段的同事就无法访问了。这显然不符合我们最终的需求,最后没法,只能把访问部署到云服务器上面去,此时问题来了,不知道你还是否记得某个表情包:

没错,之前的勒索病毒攻击,就是利用 445 端口,所以公网目前是封了这个端口的,哦豁~

所以我们得想办法绕开这个 445,换成其它端口,但是问题同样出来了,windows 使用 smb 默认就是 445 端口!

那还能怎么办,本地端口转发呗~

不知道 Samba 怎么搭建得查看我上一篇文档:

https://www.cnblogs.com/Dy1an/p/11265676.html

 

 

配置 Samba

 

既然要使用其它端口,意味着我们服务的端口就不能再是 445,所以我们修改 Samba 主配置文件:/etc/samba/smb.conf

##############################################################################
# 全局配置
##############################################################################
[global]
        workgroup = WORKGROUP
        server string = Samba Server Version %v
        netbios name = Samba
        log file = /var/log/samba/samba_log.%m
        max log size = 50
        security = user
        passdb backend = tdbsam
        smb ports = 6727
        include = /etc/samba/user/%U.smb.conf

通过 smb ports 将 Samba 的端口更改为:6727,然后重启服务即可!

 

 

配置 Windows

 

Windows 比较麻烦,因为 smb 服务本身就是主要针对 Windows 的,所以 445 端口被安排的明明白白。

1. 以管理员身份运行 cmd 控制台:这里以 Windows 10 为例,Windows 7 一个意思

 

2. 执行如下命令:

sc config LanmanServer start= disabled
net stop LanmanServer
sc config iphlpsvc start= auto
netsh interface portproxy add v4tov4 listenport=445 connectaddress=公网IP connectport=6727

我们先停止 445 端口的访问,启动本机的端口转发,配置转发规则。注意命令 = 后面需要空格。

 

3. 重启电脑,据说不重启不生效,我反正重启了。

 

4. 访问测试:

\\127.0.0.1

现在地址变成了这个:

输入用户名密码访问即可!

 

 

配置 Mac book

 

Mac 就更简单了,因为它方式本身就和 Windows 不一样,也不存在默认一定使用 445 的情况,所以可以直接访问:

1. 打开 Finder:

 

2. 输入访问地址:

smb://用户名:密码@公网IP:6727

这样直接就行,我这里把账户密码写到这里是为了方便切换用户,如果你用户是固定的,可以直接去掉:用户名:密码@ 

 

 

小结

 

至于 Linux 版本这里就不做描述了,说实话,那个没啥需求,网上也很多。