【微知】Linux服务器如何开启samba服务?如何映射固定路径?sourceinsight如何结合samba编辑远程文件?

背景

sourceinsight前后用了十几年了,但是在四五年前开始用的少一些,主要原因是需要在很多云服务器上编辑,sourceinsight这方面支持没有vscode做得好。虽然sourceinsight结合samba比较常用,但是vscode配合sftp或者ssh remote非常方便。但是sourceinsight在看代码方面,目前来看还是无敌的存在,尤其是配合各种快捷方式以及si的代码阅读模式。该部分以后介绍。本文主要介绍服务器如何开启samba服务器,sourceinsight如何结合samba如何编辑和阅读代码?

SMB(Server Message Block)
功能:负责文件共享、打印服务等实际数据传输功能
端口:使用 TCP 445 端口(较新版本)或 TCP 139 端口(配合 NetBIOS)
协议:直接通过 IP 进行通信,是现代 Samba 的主要通信方式

快速回忆命令

## 安装samba软件
yum install samba samba-common

## 配置samba的config
vim /etc/samba/smb.conf #添加修改HOME下面的信息
	[homes]
	        comment = Home Directories
	        browseable = no
	        read only = no
	        create mask = 0700
	        directory mask = 0700
	        valid users = %S
	        inherit acls = yes
testparm  # 检查smb.conf语法
## 启动samba服务,包括smb和nmb nmb主要用来浏览
systemctl start smb nmb #如果要持久打开需要enable
systemctl enable smb nmb #如果要持久打开需要enable
systemctl status smb nmb #查看是否启动成功
tail -f /var/log/samba/log.smbd #查看日志

## 添加samba用户
smbpasswd -a beiming #然后输入samba的密码,相当于在samba创建独立的用户
smbpasswd -a root 	 #这里添加一个root用户的
pdbedit -L  # 列出所有Samba用户,验证账户创建是否成功


## 配置防火墙
nc -zv 192.168.101.168 445  #查看是否可以联通端口,成功会打印success
telnet 192.168.101.168 445  # 测试SMB端口连通性
chcon -t samba_share_t /home/beiming  # 设置SELinux上下文
chcon -t samba_share_t /root # 设置SELinux上下文
sudo firewall-cmd --list-all # 查看防火墙samba是否开启
sudo firewall-cmd --permanent --add-service=samba #添加samba到防火墙中
sudo firewall-cmd --reload #重新启动防火墙
netstat -tuln | grep -E "139|445" #查看端口是否打开
telnet 192.168.101.168 445  # 测试SMB端口连通性

## 登录访问控制
smb://192.168.101.168/root ## mac上finder访问输入
#mac上用命令行指定映射
mkdir -p ~/workspace/smb_mount
mount_smbfs //root:0@192.168.101.168/root ~/workspace/smb_mount #映射到固定路径

## 查看
smbutil statshares -a #查看samba连接状态

操作方式

sourceinsight要支持编辑,目前只能曲线救国。使用samba服务器,将远程服务器映射到本地。

安装samba服务

yum install samba samba-common
systemctl start smb nmb #如果要持久打开需要enable

在这里插入图片描述

配置samba

vim /etc/samba/smb.conf #添加修改HOME下面的信息

	[homes]
	        comment = Home Directories
	        browseable = no
	        read only = no
	        create mask = 0700
	        directory mask = 0700
	        valid users = %S
	        inherit acls = yes

testparm # 检查smb.conf语法

systemctl start smb nmb #如果要持久打开需要enable
systemctl enable smb nmb #如果要持久打开需要enable
systemctl status smb nmb #查看是否启动成功
tail -f /var/log/samba/log.smbd #查看日志

在这里插入图片描述
在这里插入图片描述

添加samba用户

smbpasswd -a beiming #然后输入samba的密码,相当于在samba创建独立的用户
smbpasswd -a root #这里添加一个root用户的
pdbedit -L # 列出所有Samba用户,验证账户创建是否成功

在这里插入图片描述

配置防火墙

nc -zv 192.168.101.168 445 #查看是否可以联通端口,成功会打印success
telnet 192.168.101.168 445 # 测试SMB端口连通性,mac上执行
chcon -t samba_share_t /home/beiming # 设置SELinux上下文
chcon -t samba_share_t /root # 设置SELinux上下文
sudo firewall-cmd --list-all #查看防火墙samba是否开启
sudo firewall-cmd --permanent --add-service=samba #添加samba到防火墙中
sudo firewall-cmd --reload #重新启动防火墙
netstat -tuln | grep -E “139|445” #查看端口是否打开
telnet 192.168.101.168 445 # 测试SMB端口连通性

在这里插入图片描述

nc -zv 192.168.101.168 445 #查看是否可以联通端口,成功会打印success
在这里插入图片描述

登录访问控制

smb://192.168.101.168/root ## mac上finder访问输入
#mac上用命令行指定映射
mkdir -p ~/workspace/smb_mount
mount_smbfs //root:0@192.168.101.168/root ~/workspace/smb_mount #映射到固定路径
smbutil statshares -a #查看samba状态

查看samba状态:
在这里插入图片描述

MAC上如何打开samba

  • 点击连接服务器
    在这里插入图片描述
  • 连接成功(如果不成功参考后面的解决端口问题)
    在这里插入图片描述
  • 输入用户名和密码
    在这里插入图片描述
    登录成功:
    在这里插入图片描述
    打开root目录效果:
    在这里插入图片描述

或者使用命令行指定映射到指定目录,不过需要将原来的finder映射断开:

mkdir -p ~/workspace/smb_mount
mount_smbfs //root:0@192.168.101.168/root ~/workspace/smb_mount #映射到固定路径

在这里插入图片描述
然后sourceinsight就可以当做本地文件直接访问该目录了。

sourceinsight 访问samba映射的目录

在这里插入图片描述
在这里插入图片描述
然后添加:初次选择目录会比较慢,samba需要远程同步过来。
在这里插入图片描述
初次因为缓存问题比较慢同步
在这里插入图片描述
在这里插入图片描述

问题解决

samba服务器无法连接

无法连接的问题不是用户不对,因为还没到用户章节。而是直接连接都连接不上。此时需要吸纳判断网络正确性,然后看端口是否打开,然后看端口是否被防火墙限制。一步步分析

先确认smaba的smb和nmb是否开启

确认服务器启动:
在这里插入图片描述

确认服务器是否可达

在这里插入图片描述

确认端口是否打开telnet 192.168.101.168 445

可以看到端口不可达:
在这里插入图片描述
查看服务器端口处于监听状态:看到服务器已经子啊监听该端口了
在这里插入图片描述
进一步查看防火墙是否打开了:有两种方式确认,一个是用端口确认,一个是用samba服务整体方式注册。

samba服务整体是否被防火墙允许

查看所有的防火墙信息:sudo firewall-cmd --list-all
在这里插入图片描述
可以看到samba并不在里面。
添加samba到防火墙:sudo firewall-cmd --permanent --add-service=samba
在这里插入图片描述
再次查看samba是否在里面:结果是没有
在这里插入图片描述
查看是否添加失败,再次添加说已经存在说明已经添加
在这里插入图片描述
可能是并未生效,这里是添加permanent,持久化的,查看是否添加到持久化下面:sudo cat /etc/firewalld/zones/public.xml
在这里插入图片描述
可以看到添加成功了。 firewall的后端服务器配置文件有了,但是没有生效,需要重启启动下sudo firewall-cmd --reload
重启后查看已经生效。
在这里插入图片描述
然后用telnet测试端口可以访问了:
在这里插入图片描述

如何不用finder来映射,用命令行指定映射

mkdir -p ~/workspace/smb_mount
mount_smbfs //root:0@192.168.101.168/root ~/workspace/smb_mount #映射到固定路径

效果:
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值