Ubuntu安装Samba(阿里云服务器、samba端口映射)Win10可访问

 


1、安装 Samba 服务

copy
sudo apt-get install samba #安装 Samba 服务器
sudo apt-get install smbclient #安装 Samba 客户端

查看samba版本

copy
samba -V

2、配置需要共享的目录

copy
# 新建目录,用于共享
mkdir /usr/local/volumes
# 更改权限信息
sudo chown nobody:nogroup /usr/local/volumes
# 给所有用户添加读写权限
sudo chmod 777 /usr/local/volumes

2、添加 Samba 用户

添加 Samba 用户,用于在访问共享目录时使用。这里添加的用户在 Linux 中必须存在。

copy
sudo smbpasswd -a Crayon #Crayon是用户名
#附添加用户
useradd -m 用户名
passwd 用户名

3、配置samba服务器

copy
vim /etc/samba/smb.conf

跳到文件末尾(命令模式按G),加入配置信息。

copy
[Volumes] #映射的共享名称
comment = Volumes #描述信息
path = /usr/local/volumes #共享文件夹路径
browseable = yes #该共享是否可以浏览
writable = yes #是否有写权限
available = yes #该共享资源是否可用
valid users = Crayon #允许访问该共享的用户,多个用户或者组中间用逗号隔开

3、重启 Samba 服务、放行端口

copy
sudo service smbd restart

查看服务状态

copy
sudo service smbd status

Ubuntu要放行端口或关闭防火墙。

copy
ufw status #查看防火墙状态:inactive是关闭,active是开启。
ufw enable #开启防火墙。
ufw disable #关闭防火墙。
ufw allow 139 #开放22端口,放行端口后需要重启防火墙
ufw reload #重启ufw防火墙

在控制面板-程序功能-启用或关闭windows功能开启客户端,关闭服务器(否则可能通过127.0.0.1访问到的是本地的samba共享目录)

image-20230926131935322

4、在Windows下访问samba服务器

方式一:Win +R 输入

copy
\\ + ip

方式二:

image-20230926125819318

方式三:

image-20230926125901118

\\ip\Volumes Volumes为smb.conf中配置的共享名。

image-20230926130117156

后面输入刚才设置的用户名和密码就可以了。

本地虚拟机安装的Samba到这就已经可以正常使用了。

5、阿里云需要配置smb端口映射

阿里云服务器:部分运营商判断端口25、135、139、444、445、5800、5900等为高危端口,并默认屏蔽。即使您添加的安全组规则放行了这些端口,在受限地区仍无法访问。建议您修改为其它非高危端口承载业务。

说白了就是你防火墙放行了这些端口,也无法通过该端口进行访问。

5.1 查看samba服务使用的端口

copy
netstat -tlnp |grep smb

image-20230926130740350

显示当前使用的是默认的139和445(win10通过ip访问时似乎都是默认走445)

Port 139 (TCP) - 文件和打印共享 ; smbd (基于SMB(Server Message Block)协议,主要在局域网中使用,文件共享协议)

Port 445 (TCP) - NetBIOS服务在windos 2000及以后版本使用此端口, (Common Internet File System,CIFS,它是SMB协议扩展到Internet后,实现Internet文件共享)

在windows客户端telnet一下看是否是端口问题:

copy
telnet SERVER_IP 139 #SERVER_IP:阿里云服务器公网IP
telnet SERVER_IP 445

telnet不通,说明是端口被禁用,需要自定义一个新的端口号

copy
vim /etc/samba/smb.conf

在samba配置文件的[global]中添加

copy
smb ports = 1399

image-20230926131114805

5.2 重启 Samba 服务

copy
service smbd restart
#查看状态
service smbd status

5.3 再次检查samba使用的端口

copy
netstat -tlnp |grep smb

image-20230926130740350

服务器的防火墙放行端口

image-20230926133312444

这时在windows下telnet是可以telnet通的

copy
telnet SERVER_IP 1399

5.4 映射该服务器的1399端口到本地455端口

由于windows访问远程文件夹时使用默认455端口,无法指定自定义端口,因此还需要在win端通过“映射该服务器的1399端口到本地455端口”的方式实现访问

copy
netsh interface portproxy add v4tov4 listenport=445 listenaddress=127.0.0.1 connectport=1399 connectaddress=SERVER_IP #SERVER_IP写自己服务器IP

删除端口转发命令:

copy
netsh interface portproxy delete v4tov4 listenaddress=<Listen Address> listenport=<Listen Port>
#<Listen Address>要删除的规则的监听地址,<Listen Port>要删除的规则的监听端口。

添加后可检查映射列表是否已存在

copy
netsh interface portproxy show all

image-20230926131727066

现在就可以使用\\127.0.0.1访问服务器的Smb了

image-20230926132142897

image-20230926134240895

posted @   Tame-complexity  阅读(1908)  评论(0编辑  收藏  举报
点击右上角即可分享
微信分享提示
🚀