背景
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 #映射到固定路径
效果: