• Ubuntu安装Samba(阿里云服务器、samba端口映射)


    1、安装 Samba 服务

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

    查看samba版本

    samba -V
    
    • 1

    2、配置需要共享的目录

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

    2、添加 Samba 用户

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

    sudo smbpasswd -a Crayon  #Crayon是用户名
    #附添加用户
    useradd -m 用户名 
    passwd 用户名
    
    • 1
    • 2
    • 3
    • 4

    3、配置samba服务器

    vim /etc/samba/smb.conf 
    
    • 1

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

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

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

    sudo service smbd restart
    
    • 1

    查看服务状态

    sudo service smbd status
    
    • 1

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

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

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

    在这里插入图片描述

    4、在Windows下访问samba服务器

    方式一:Win +R 输入

    \\ + ip
    
    • 1

    方式二:

    外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

    方式三:

    外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

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

    在这里插入图片描述

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

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

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

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

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

    5.1 查看samba服务使用的端口

    netstat -tlnp |grep smb
    
    • 1

    在这里插入图片描述

    显示当前使用的是默认的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一下看是否是端口问题:

    telnet SERVER_IP 139   #SERVER_IP:阿里云服务器公网IP
    telnet SERVER_IP 445
    
    • 1
    • 2

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

    vim /etc/samba/smb.conf
    
    • 1

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

    smb ports = 1399
    
    • 1

    在这里插入图片描述

    5.2 重启 Samba 服务

    service smbd restart
    #查看状态
    service smbd status
    
    • 1
    • 2
    • 3

    5.3 再次检查samba使用的端口

    netstat -tlnp |grep smb
    
    • 1

    在这里插入图片描述

    服务器的防火墙放行端口

    在这里插入图片描述

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

    telnet SERVER_IP 1399
    
    • 1

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

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

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

    删除端口转发命令:

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

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

    netsh interface portproxy show all
    
    • 1

    image-20230926131727066

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

    在这里插入图片描述

    在这里插入图片描述

  • 相关阅读:
    【golang】interface 如此动人,却被遗忘
    使用vscode操作本地git
    网工内推 | 南天软件,base北京,需持有CCIE认证,最高25k
    NTM中attr的用法
    Golang gorm manytomany 多对多 更新、删除、替换
    HTML5离线Web应用概述
    基于Unity设计的井字棋小游戏
    27. Ubuntu 20.04 开机自动挂载文件/etc/fstab
    三台机器搭建redis集群过程及问题记录
    Word处理控件Aspose.Words功能演示:在 Python 中将 PDF 转换为 JPG
  • 原文地址:https://blog.csdn.net/crayon0/article/details/133313173