前言

出发点:由于计算机视觉相关模型都是在远程服务器上训练以及推理,大量可视化结果需要观察比较。
为了避免先将图片传输到本地,于是准备利用samba将远程linux服务器上的文件进行共享,在本地win上可以像打开本地文件一样浏览。

实际情况:由于远程服务器不在局域网内,需要通过端口映射进行访问。


一、Linux端(Centos)

1.1 安装samba服务

yum install -y samba

1.2 配置samba

1.2.1 修改配置文件

vim /etc/samba/smb.conf


[global]
        workgroup = SAMBA
        security = user

        passdb backend = tdbsam

        printing = cups
        printcap name = cups
        load printers = yes
        cups options = raw

        smb ports = 33666   重点!端口设置为本地可访问到服务器的端口

[share]     设置共享文件夹  
        comment = my sharedata   说明
        path = /share            重点!分享的文件夹
        browseable = yes         下面为开启一些权限
        writable = yes
        read only = no
        guest ok = no
        available = yes

文件内容如下:
在这里插入图片描述

1.2.2 创建共享文件夹

创建文件夹
mkdir -p /share/test
开启权限
chmod -R 777 /share

1.2.3 配置samba用户

创建用户名为samshare的用户
useradd samshare
为该用户设置密码
smbpasswd -a samshare
【注意】创建samba用户应该使用已存在的用户,系统用户和samba用户名可以一样,但密码可以设置成不一样

若设置的用户名不在系统用户中,如下方式添加至系统用户
groupadd samshare -g 6000
useradd samshare -u 6000 -g 6000 -s /sbin/nologin -d /dev/null
上述方法添加的用户无法使用账号密码直接登录系统而已,并不是说这个账号就无法使用系统资源

1.2.4 关闭防火墙

关闭防火墙:
systemctl stop firewalld.service
关闭开机启动:
systemctl disable firewalld.service

确保setlinux关闭(临时)
setenforce 0
or 彻底禁用
在 /etc/sysconfig/selinux 或者 /etc/grub.conf 中添加
selinux=0

1.2.5 重启服务

service smb restart

查看端口使用情况
netstat -tunpl | grep smb
在这里插入图片描述
服务已经转发到设置的端口

二、Windows端(Win10)

2.1 配置端口映射

【重点】需要管理员身份运行cmd

netsh interface portproxy add v4tov4 listenport=445 listenaddress=127.0.0.1 connectport=33666 connectaddress=服务器ip
其中33666 需要与之前的配置端口一致,服务器ip需要自己修改

查看端口映射情况

netsh interface portproxy show all
在这里插入图片描述

2.2 控制面板开启samba功能

控制面板–程序–启用或关闭Windows功能–勾选SMB客户端
在这里插入图片描述

2.3 重启win10完成配置

三、使用samba访问远程服务器

使用文件资源管理器[我的电脑]
访问127.0.0.1
输入配置的账号密码
在这里插入图片描述
在这里插入图片描述

四、遇到的问题

4.1 win配置完成导致无法访问网页

这个问题应该是ip冲突导致的
控制面板–网络和Internet–Internet选项–局域网设置–取消勾选代理服务器
在这里插入图片描述

4.2 能够访问远程服务器,但是里面的文件夹提示没有权限

解决方案①:samba配置文件中共享的文件夹的权限是否开启

chmod -R 777 [需要共享的文件夹]

解决方案②:samba配置的用户对于需要共享的文件夹是没有权限的
例子: /root/share 中的share权限虽然开了777 但是对于配置的samshare用户是没权限的
所以可以共享 /share 这个文件夹,这个对于samshare用户是有权限的,前提可是需要开启777权限的。
参考https://blog.csdn.net/hm315/article/details/126910907


Logo

更多推荐