解决阿里云无法正常使用samba的问题

2023-11-01

昨天在阿里云上申请了一个云服务器,系统用的是ubuntu14.04,由于是免费的(初次使用),配置较低(单核1G内存,40G硬盘),所以在服务器上不方便安装图形界面(默认的系统镜像是没有桌面系统的,毕竟只是服务器),没有图形界面总觉得不是很方便,就想着用samba把远程目录挂载到本地来访问更方便一些,但是其中却遇到了不少问题,记录一下。

(1)我起初的操作

首先在用ssh远程登录到服务器(开始以root账户登录):

创建账户warren:

adduser warren

将warren添加为sudoers:

vim /etc/sudoers

在root    ALL=(ALL:ALL) ALL下面一行添加:

warren  ALL=(ALL:ALL) ALL

保存并退出,则warren账户有了sudo的权限

su warren

sudo apt-get update

sudo apt-get install samba

sudo vim /etc/samba/smb.conf

配置自己的共享目录

[warren]
   comment = warren
   path = /home/warren
   browseable = yes
   read only = yes
   guest ok = no

这样配置好了,执行:

sudo smbpasswd -a warren

输入密码将warren加入samba账户,用于安全登录

sudo service smdb restart

这样samba服务器基本配置完成,本以为大功告成了,谁知道后面却遇到了一大堆问题。

(2)遇到的问题

1.windows下无法挂载

在本地的windows(win7)上试着链接:

打开任何一个文件夹,在地址栏输入

\\公网ip地址\共享目录,却是死活连不上,

以为是本地防火墙的原因,试着打开了防火墙中关于smb服务的规则,仍然不行

后来有看了网上说开启什么Serser,workstation等服务,还是不行。

后来我开始怀疑是服务器端的配置有问题,为了确定是服务器问题还是客户端问题,我就试着在本地Ubuntu下挂载。

2.Ubuntu下无法挂载

试着挂载命令:
sudo mount -t cifs //公网ip地址/共享目录 /本地挂载目录 -o username=warren,passwd=前面设置的密码
(注意共享目录是warren,而不是路径/home/warren)
结果:
mount error(115): Operation now in progress
Refer to the mount.cifs(8) manual page (e.g. man mount.cifs)
为了查找原因我决定深入了解一下samba
samba使用了两个服务:
(1)nmbd:端口号137/UDP(Netbios Name Service),138/UDP(Netbios Datagram Service)
(2)smbd:端口号139/TCP(Netbios Session service),445/TCP(Microsoft Naked CIFS)
首先确定服务器上的端口已经开启:
sudo service smbd stop
sudo netstat -ln > netstat-ln-smbd.before
sudo service smbd start
sudo netstat -ln > netstat-ln-smbd.after
diff netstat-ln-smbd.before netstat-ln-smbd.after
可以看到smbd的端口确实是开放的
为了确定服务器端口是正常的,在服务器上执行:
nc -z -w 1 公网ip地址 smbd端口号
发现是正常的,但是在本地Ubuntu上执行:
nc -z -w 1 公网ip地址 smbd端口号
却发现超时了,用wireshark抓包看到
看到tcp一直在链接请求,但是服务器却没有回应!可见smbd的两个端口都是不通的。试试nmbd的端口
nc -v -zu -w 2 公网ip 137
Connection to 112.126.80.71 137 port [udp/netbios-ns] succeeded!
nc -v -zu -w 2 公网ip 138
Connection to 112.126.80.71 138 port [udp/netbios-ns] succeeded!
可见nmbd服务是可以正常连通的。
后来又查了下,发现有人说可能是samba对网卡的绑定可能有问题,这里说一下,我申请的阿里云服务器有两块网卡eth0,eth1
其中eth0是云服务器的内网网卡,对应内网ip,而eth1是云服务器的外网网卡,对应外网ip,但是不知samba默认是所有网卡都监听还是只监听某些网卡,为了确保我修改了smb.conf文件,在interfaces的配置里添加了:
interfaces = eth0 eth1
重启了smbd服务在本地Ubuntu上仍然挂载不上! 看来是路由出了问题!

(3)问题定位

确定了是路由问题,就要定位是哪一个环节出了问题,首先整个网络的框架应该是这样的:
可见双方要想通信,数据包至少要通过两层防火墙,还有 Internet与阿里云端的管控中心,其中有一个环节被限制都会导致通信失败。一般Internet是不会出问题的,问题应该出在防火墙与阿里云端上。

1.配置iptables

Ubuntu下的防火墙就是iptables了,在服务器端:
sudo  iptables -A INPUT -p tcp -m multiport --dports 139,445 -j ACCEPT
sudo iptables -A INPUT -p udp -m multiport --dports 137,138 -j ACCEPT
sudo iptables -A OUTPUT -p tcp -m multiport --sports 139,445 -j ACCEPT
sudo iptables -A OUTPUT -p udp -m multiport --sports 137,138 -j ACCEPT
而在客户端:(源端口与目的端口交换)
sudo  iptables -A INPUT -p tcp -m multiport --sports 139,445 -j ACCEPT
sudo iptables -A INPUT -p udp -m multiport --sports 137,138 -j ACCEPT
sudo iptables -A OUTPUT -p tcp -m multiport --dports 139,445 -j ACCEPT
sudo iptables -A OUTPUT -p udp -m multiport --dports 137,138 -j ACCEPT

这样双方的防火墙就都已经开放了端口,但是在本地挂载仍是挂载不上,还是TCP链接不上。

2.配置云服务器

在云服务器管理页面设置安全规则:

再次尝试在本地挂载,仍然如故。。。。。。看来应该是阿里云端做了端口限制。

后来打了客户电话咨询,他们说阿里云不会做限制,那就奇怪了,到底是哪里出了问题?突然想到要是能追踪tcp数据包就好了,traceroute可以追踪ip包的路径,但是却不能追踪tcp包,这里明显是端口被限制了,因此traceroute是一直通的,并不能查找问题,于是上网搜了一下可以追踪tcp包(端口)的工具,还真有,就是tcptraceroute,于是就用它试了一下结果发现追踪

tcptraceroute 公网ip地址 22 -n -q 1

22端口是ssh,肯定能通的,事实结果也是如此,但是试了smbd的端口445

tcptraceroute 公网ip地址 445 -n -q 1

结果从第一跳到第三十跳都不通,这样问题就确定了,这应该是我的上层路由器把端口封了,因此数据包第一跳就没通过!想想也应该是,我们是在学校的实验室内部,可能为了保密就把端口限制了!(后来让其他朋友试着挂载,结果他们却能连上,这也更加确定这一点了)

(4)解决办法

1.Ubuntu

既然封了端口,那就只能更换端口了。打开smb.conf,在[global]section中添加:
smb ports = 1315 1314
注意点1.确定指定的两个端口未被使用,2.前面的端口号要大于后面的端口号,我之前试的把小的写前面发现没有生效,用的还是默认的端口。
用前面的方法确认打开的是否是指定的端口。
sudo mount -t cifs //公网ip地址/warren 本地目录 -o username=warren,passwd=密码,port=1315
终于挂载上了。

2.win7

网上搜索了一下,还没找到win7直接访问非标准samba共享的办法,但是有一个思路就是在本地做端口转发,像我这种情况只能在本地将445端口直接转发至1315,具体好像netsh命令可以,但是没有仔细研究,现在做论文忙死了,等以后有时间了好好研究一下。

(5)遗留问题

1.在smb.conf中指定了smbd的两个端口1315 1314,在命令行中只是指定了1315端口,那1314端口号客户端是如何知道的?
虽然折腾了这多久,结果还是自己这边的问题,但或多或少还是学到了点东西,不虚此行。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

解决阿里云无法正常使用samba的问题 的相关文章

  • 【Docker】初识Docker以及Docker安装与阿里云镜像配置

    目录 一 初识Docker 二 安装Docker 三 Docker架构 四 配置Docker镜像加速器 一 初识Docker Docker是一个开源的应用容器引擎 诞生于2013年 基于Go语言实现 dotCloud公司出品 Docker开
  • MES管理系统的哪些优势对企业帮助比较大

    随着全球制造业的快速发展 MES制造执行系统已成为企业生产管理的重要工具 MES管理系统解决方案集成了企业生产流程中的各个环节 包括计划 调度 质量 设备等 为企业提供了全面的生产管理解决方案 制造企业MES系统的优势颇多 其中对企业帮助比
  • Jenkins打包部署gitee项目至阿里云ECS服务器

    原文地址 Jenkins打包部署gitee项目至阿里云ECS服务器 BIGTREE whwtree com 所需插件 Git Parameter Plug In插件 Publish Over SSH插件 Gitee Plugin插件 Nod
  • 简单的matlab分布式计算

    matlab的分布式计算可以理解为一台机器作为client 主控机 其他的机器分别作为计算的结点 要由client进行控制和操作 如果把单机上的 m文件直接放到client运行 是不会产生分布式计算的效果的 只相当于在主控机进行了计算 而其
  • 阿里云配置MINIO图床

    阿里云 ECS服务器 CENTOS7系统部署MINIO图床 1 下载MINIO的二进制文件 注 阿里云ECS网速过慢 但可以接受 wget https dl minio io server minio release linux amd64
  • 关于宝塔面板无法访问的解决方法

    前言 本篇文章主要介绍宝塔面板无法访问的几种情况以及如何解决 正文 1 没有开放相应端口 这种情况比较常见 服务商默认情况下会将所有的端口关闭 你需要使用哪个端口就得手动去打开这个端口 例如 http 47 8888 adminuser 中
  • 聊聊技术专家谈阿里云史诗级故障

    序言 什么是技术专家 其实也是很懂 是做的时间足够长呢 还是说经历的厂比较多 还是说纸上谈兵比较牛逼 专家嘛 大家都懂的 只会弹别人 喔 是谈别人 原来不是弹 有本事技术专家谈谈自己呗 风言风语 阿里云出现史诗级故障 处理的时间足够长 然后
  • 如何将个人 NAS 里的 Stable Diffusion 模型库挂载到 PAI-EAS

    通过在线迁移服务 您已经将SD公共模型库的模型文件转存到了自己的NAS文件目录中 该存储空间中的模型可以被用于SDWebUI 另外也可以将未来训练和推理的结果保存到该NAS目录中 您可以通过如下文件挂载方式来实现 1 前往文件存储NAS控制
  • KubeVela 正式开源:一个高可扩展的云原生应用平台与核心引擎

    来源 阿里巴巴云原生公众号 美国西部时间 2020 年 11 月 18 日 在云原生技术 最高盛宴 的 KubeCon 北美峰会 2020 上 CNCF 应用交付领域小组 CNCF SIG App Delivery 与 Open Appli
  • uniapp集成unipush2.0

    unipush3 0集成 unipush推出2 0服务 之前一直用的1 0 现在项目推荐使用2 0 最近也是对2 0这个推送做了测试 下面就主要对华为这个来总结一下 其余的厂商大同小异 1 push1 0和2 0对比 个人理解 2 0比1
  • 阿里云 linux 的nginx 配置uni-app的H5前端项目vue,后端接口阿里云。

    背景 vue项目调用接口是阿里云的 H5网站也要部署到阿里云 2个不同的服务器 需要做nginx部署与api代理 1 端口配置 首先当然是买个阿里云服务器 这里是配置是linux系统 配置访问的域名 再接着 给网站配置需要的端口 如下 配置
  • 阿里云CDN架构接入WAF应用防火墙案例实践

    文章目录 1 网站架构变化 2 配置WAF应用防火墙 2 1 配置网站接入WAF防火墙 2 2 WAF防火墙生成CNAME地址 2 3 配置WAF防火墙HTTPS证书 2 4 WAF防火墙开启HTTP回源SLB 3 配置CDN加速器回源WA
  • Vista/7 UAC:如何降低进程权限

    进程是否可以将自身从提升的 UAC 权限降低回标准用户 如果不是 提升的进程是否可以使用标准用户令牌启动其副本 然后自行终止 有代码示例吗 C 优先 Details 问题 用户安装我的产品 用 C 编写 安装程序将其 UAC 权限提升为管理
  • Cumulus Encrypted Storage System(CESS)激励测试网 v0.7.5 于11月29日正式上线

    Cumulus Encrypted Storage System CESS 是基于区块链的去中心化云存储网络和 CDN 网络 支持数据在线存储和实时共享 为 Web3 高频动态数据的存储和检索提供全栈解决方案 CESS 数据价值网络是以 D
  • 阿里云添加二级域名

    阿里云添加二级域名 1 申请配置域名 1 1 购买域名 1 2 登录到阿里云服务器控制台 进入云解析DNS页面 1 3 点击 域名解析 1 4 点击 添加记录 1 5 进行txt校验 1 6 添加记录
  • 利用阿里云的尖端数据库解决方案增强游戏数据管理

    在快节奏和动态的游戏世界中 对于努力为玩家提供无缝体验的公司来说 管理大量数据是一项关键挑战 阿里云是亚太地区的主要参与者 也是全球公认的运营数据库管理系统领导者 提供量身定制的创新解决方案 以应对游戏公司面临的独特数据管理挑战 这篇博客探
  • 与平台无关的文件锁定?

    我正在进行一项计算量非常大的科学工作 时不时地会得出结果 这项工作基本上就是多次模拟同一件事 因此它被分配到使用不同操作系统的多台计算机上 我想将所有这些实例的输出定向到同一个文件 因为所有计算机都可以通过 NFS Samba 查看相同的文
  • 阿里云服务器地域怎么选择?哪个地域好?

    阿里云服务器地域和可用区怎么选择 地域是指云服务器所在物理数据中心的位置 地域选择就近选择 访客距离地域所在城市越近网络延迟越低 速度就越快 可用区是指同一个地域下 网络和电力相互独立的区域 可用区之间可以做到故障隔离 将应用部署到不同可用
  • 服务器3M固定带宽什么意思?够用吗?

    云服务器3M固定带宽是什么意思 速度快吗 3M固定带宽是指云服务器的公网带宽 用于在外网提供服务的 3M带宽的下载速度是384KB 秒 上传速度是1280KB 秒 对于个人博客或流量不多的企业官网速度还是挺快的 阿里云服务器网aliyunf
  • Kerberos:UPN 和 SPN 之间的区别

    我现在正在使用 GSSAPI 对跨平台应用程序进行 Kerberized 虽然我不清楚 UPN 和 SPN 之间的区别 开发环境是 CentOS 6 4 上的 Samba4 AD DC 服务器 带有 Windows Server 2008

随机推荐

  • windows系统怎么用注册表修改桌面文件路径

    方法 步骤 1 调出运行窗口 输入regedit命令后回车打开注册表 2 在打开的注册表界面中依次展开以下路径 如图所示 HKEY CURRENT USER Software Microsoft Windows CurrentVersion
  • 【模型压缩】网络层与算子融合

    由于深度学习网络层数深 结构复杂 生成的算子数量众多 带了巨大的计算资源在和时间的消耗 业界对于加速算子的计算展开了一定研究 比较经典的方法是将多个算子重新组合成一个新的算子 同时对生成的代码进行底层的性能优化 融合成新算子后计算相对于多个
  • 字节的测试面试题,你觉得很难吗?不是有手就行....

    年前的时候 我的一个粉丝跟我说 他在面试美团的自动化测试岗的时候 不幸挂掉了 越想越可惜 回想面试经过 好好总结了几个点 发现面试没过的主要原因是在几个关键的问题没有给到面试官想要的答案 字节的面试会问些什么问题呢 他给我的留言是这样的 根
  • QT调用第三方dll (Lib方式)

    在项目的 pro文件中 增加一句 LIBS L D qtsrc myproject lmydll 在 cpp文件中 声明mydll dll里面导出的函数 extern C int add int a int b int subtract i
  • PYTHON实现自动发送邮件(QQ,163,139三种邮箱演示)

    测试文件与代码结构 一 QQ邮箱发送邮件 大致步骤 1 登录qq邮箱 选择设置 2 点击账户 进入设置界面 3 授权 生成授权码 4 编写发送代码 密码使用的是授权生成的代码 保证发送邮箱的SMTP功能是开启的 5 效果展示 发送代码 1
  • jupyter中图片显示

    文章目录 jupyter notebook中图片显示 1 html方式 2 PIL图片显示 3 opencv图片显示 4 Ipython 方式 jupyter notebook中图片显示 以下用多种方式 其中第一种和第四种方便查看图片 代码
  • chmod命令原理及用法详解

    Chmod命令主要用于修改 设置文件权限 chmod 修改文件权限主要有两种方式 字母法与数字法 虽然数字法相对字母法简单 但是数字法是基于字母法 所以这里先介绍字母法 1 字母法 chmod u g o a r w x 文件名 以上是ch
  • Linux-应用编程-学习总结(3):进程间通信(上)

    Linux 应用编程 学习总结 3 进程间通信 上 前言 进程间通信相关概念 管道 管道的概念 管道的原理 管道的局限性 创建匿名管道 fifo 有名管道 特点 使用场景 创建方式 内存映射区 前言 这次对进程间通信进行总结 上一篇文章以及
  • 微信开放平台【第三方平台】java开发总结:预授权码(pre_auth_code)(三)

    微信第三方平台预授权码 pre auth code 开发说明 全网最详细的微信第三方平台预授权码开发说明 预授权码 预授权码 pre auth code 是第三方平台方实现授权托管的必备信息 每个预授权码有效期为 10 分钟 需要先获取令牌
  • XMPP客户端库Smack 4.1.4版官方开发文档之二

    本文转载自 博客主页 http blog csdn net chszs 三 Smack库的组成 Smack库可以内嵌到任意的Java应用程序中 Smack库有数个JAR文件组成 非常具有灵活性 1 smack core jar 提供了核心X
  • 这是mybatis最简单的入门

    这里有一个demo 这是mybatis最简单的入门 使用的IDE为idea 是maven的哦 这篇只是很简单的一个查询demo 目标是ssm 先来pom文件 这个不知道在网上哪里找的 lt gt
  • 自定义限制接口访问次数(ExpiringMap)

    ExpiringMap简介 它具有高性能 低开销 零依赖 线程安全 使用ConcurrentMa的实现过期entries等优点 主要特点包括 过期策略 可变有效期 最大尺寸 侦听器过期 延迟输入加载 过期自省 可设置Map中的Entry在一
  • python opencv旋转,Python OpenCV cv2.rotate()用法及代码示例

    OpenCV Python是旨在解决计算机视觉问题的Python绑定库 cv2 rotate 方法用于将2D数组旋转90度的倍数 函数cv rotate以三种不同的方式旋转数组 用法 cv2 cv rotate src rotateCode
  • Pandas 三大对象

    1 pandas的Series对象 pandas的Series对象是一个带索引数据构成的一维数组 可以用一个数组创建Series对象 import pandas as pd data pd Series 0 25 0 5 0 75 1 0
  • 为你的嵌入式设计选择合适的低功耗处理器

    在早期 获得低功耗的CPU通常意味着牺牲功能 以降低的时钟速度运行或等待新的低功耗处理技术以降低待机 和有功功耗 无论如何 情况已不再如此 并且处理器领域已经发生了戏剧性的变化 随着处理技术的进步以及创新的芯片设计和高粒度电源管理软件 带来
  • Python2.7.16安装(Ubuntu16.04)

    Python2 7 16安装 Ubuntu16 04 前面的文章已经介绍了在Windows上安装Python2和Python3了 现在介绍Linux系统上的安装 Ubuntu16 04上默认安装了Python2 7和Python3 5 Re
  • HTML 文件中引入高德地图

    准备工作 1 在高德开放平台 注册开发者账号 2 登陆之后 进入 应用管理 点击 我的应用 选择右上角 创建新应用 3 为应用添加 Key 在 服务平台 一项选择 Web 端 JSAPI 页面实现 1 创建一个div 作为地图的容器 2 设
  • Week2:包含 min 函数的栈

    1 题目描述 定义栈的数据结构 请在该类型中实现一个能够得到栈的最小元素的 min 函数在该栈中 调用 min push 及 pop 的时间复杂度都是 O 1 示例 MinStack minStack new MinStack minSta
  • Vue下OpenLayers中Style-Icon的图片路径

    OpenLayers加载图片的方式 1 使用 require 方式加载图片 图片路径 根目录 src assets let styles icon new Style image new Icon anchor 0 5 1 src requ
  • 解决阿里云无法正常使用samba的问题

    昨天在阿里云上申请了一个云服务器 系统用的是ubuntu14 04 由于是免费的 初次使用 配置较低 单核1G内存 40G硬盘 所以在服务器上不方便安装图形界面 默认的系统镜像是没有桌面系统的 毕竟只是服务器 没有图形界面总觉得不是很方便