温馨提示:本文最后更新于2022年11月14日,已超过 30 天没有更新,某些文章具有时效性,若有错误或已失效,请在下方留言!

介绍


通过Window11系统上的映射网络驱动器,将阿里云服务器中Centos系统开发目录映射到本地系统上,这样就可以随时在本地上进行查看和编写内容,从而就不用通过服务器远程控制或者进入宝塔面板,极大的提高编写代码的方便性!

准备内容


首先需要远程ssh连接服务器,这里通过Xshell进行连接到阿里服务器,具体连接方法网上有很多资料,这里就不在赘述了,这里主要讲如何通过samba服务映射阿里服务器为网络驱动器。

笔者的系统环境:

阿里云:CentOS 7.6
本地: Win11 64位

操作方法

1. 服务器安装samba服务

首先在终端输入安装指令,安装完成后查看是否安装成功

服务器安装指令:yum install -y samba*
查看是否安装成功:rpm -qa samba

img

2. 修改配置文件

编辑smb.conf配置文件,在末尾添加以下内容,在global中放行端口号

vim /etc/samba/smb.conf
[share]
        comment = share web site code
        path = /www/wwwroot
        browseable = yes
        writeable = yes
        public = yes
        guest ok = yes

[global]
   smb ports = 4455

img

img

3. 创建sam用户

sudo useradd sam
sudo smbpasswd -a sam
输入“sudo smbpasswd -a sam”   命令后会提示配置密码,自行配置
阿里服务器sam配置
用户名 sam
密码 123456

img

创建完成后可以使用pdbedit命令查看是否创建成功

[root@VM-4-6-centos ~]# pdbedit -L
test1:1003:

其他相关命令

修改samba用户的密码
$sudo smbpasswd 用户名
禁用samba用户
$sudo smbpasswd -d 用户名
启用samba用户
sudo smbpasswd -e 用户名
删除samba用户
$sudo smbpasswd -x 用户名

4. 关闭setlinux

setenforce 0
[root@VM-4-6-centos ~]# cat /etc/selinux/config 

# This file controls the state of SELinux on the system.
# SELINUX= can take one of these three values:
#     enforcing - SELinux security policy is enforced.
#     permissive - SELinux prints warnings instead of enforcing.
#     disabled - No SELinux policy is loaded.
# SELINUX=enforcing
SELINUX=disabled
# SELINUXTYPE= can take one of three two values:
#     targeted - Targeted processes are protected,
#     minimum - Modification of targeted policy. Only selected processes are protected. 
#     mls - Multi Level Security protection.
SELINUXTYPE=targeted

5. 阿里云服务器放行端口

我们进入到阿里云服务器控制台进行配置防火墙,配置如下所示即可。139和445是默认的端口,但是似乎被运营商屏蔽了,所以我在这里添加了修改后的端口号4455

image-20221202225618997

6. 开放防火墙端口

centos开放samba需要用到的端口,逐条复制命令,别全部一起复制输入进去

systemctl start firewalld.service
firewall-cmd --zone=public --add-port=139/tcp --permanent
firewall-cmd --zone=public --add-port=445/tcp --permanent
firewall-cmd --zone=public --add-port=137/udp --permanent
firewall-cmd --zone=public --add-port=138/udp --permanent
firewall-cmd --zone=public --add-port=4455/udp --permanent

firewall-cmd --reload
systemctl restart firewalld.service

img

img

验证新增加端口是否生效(实际测试中4455并没开)

[root@ann ~]# firewall-cmd --zone=public --query-port=139/tcp
yes
[root@ann ~]# firewall-cmd --zone=public --query-port=445/tcp
yes
[root@ann ~]# firewall-cmd --zone=public --query-port=4455/tcp
no

img

7. 重启sam服务

重启sam服务,然后再次验证4455端口是否生效

systemctl restart smb.service      //重启Samba服务
firewall-cmd --zone=public --query-port=4455/tcp

img

这里看到端口是已经生效的了,这样就算配置成功了

拓展:其他samba服务指令

systemctl start smb.service        //启动Samba服务
systemctl stop smb.service         //停止Samba服务
systemctl restart smb.service      //重启Samba服务
systemctl reload smb.service       //重新加载Samba服务
systemctl status smb.service       //查看Samba服务的状态
systemctl enable  smb nmb          //加入开机自启动

8. 修改文件权限、重启samba服务

修改共享文件权限

mkdir /home/sam
mkdir /home/sam/share
cd /home/sam
chmod 777 -R share

重启服务

sudo service smbd restart

9. 本地Windows端修改端口号

通过第三方工具divertTCPconn,进行端口映射

下载链接:(https://github.com/Arno0x/DivertTCPconn

下载完成后,利用管理员权限运行cmd,cd至文件夹目录下,运行命令

divertTCPconn.exe 445 4455

如图,则运行成功。注意:需要一直运行着,关掉映射就不成功了,这里可以通过将divertTCPconn设置为windows服务

由于本次文章篇幅太长了,关于如何将exe设为windows服务,将在之后的文章中讲解。

img

10. 映射网络驱动器

右键“此电脑” --> “映射网络驱动器” --> 输入“\你的服务器ip\share” --> 点击完成

image-20221202231451282

image-20221202231551080

一般情况下,输入正确用户名和密码后就能够添加成功了

避坑

若出现连接不成功,一般都是由于防火墙引起的,关闭本地电脑的防火墙即可。

本地安装SMB服务
找到window功能,勾选上如下内容即可

image-20221202232108997