前段时间买了个服务器,想着这下可以有个免费的网盘了,但不知道什么原因samba 配置好怎么都不能访问,后来查了资料才发现所以公网目前是封了445这个端口,所以我们得想办法绕开这个 445,换成其它端口。

由于windows 使用 smb 默认就是 445 端口,而且无法修改

微软是老大,没办法啊,所以我们只能走本地端口转发,

配置 Samba

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

##############################################################################
# 全局配置修改samba默认端口
##############################################################################
[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

############################################################################## 
# 共享文件夹配置  
############################################################################## 
[share]
        comment = Shared directories
        path = /share/
        public = on
        admin users = user
        valid users = @user
        browseable = yes
        writable = yes
        create mask =0755
        directory mask =0755
        force directory mode = 0755
        force create mode =0755

admin users,valid users 修改成要访问的用户名,然后执行smbpasswd -a user 添加用户访问密码,然后重启服务

systemctl restart smb   #重启samba服务

systemctl stop smb   #关闭samba服务

systemctl start smb   #开启samba服务

systemctl status smb   #查看samba服务状态

配置 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

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