SMB(Server Messages Block,信息服务块)是一种在局域网上共享文件和打印机的通信协议。而Samba则是在Linux和Unix系统上实现SMB协议的一个免费软件,由服务器及客户端程序构成。我记得我只在上学的时候跟着老师搭过一次Samba服务器,后来就没有再碰过了。今天闲来无事,再来把玩一下,熟悉熟悉。

给我的内网机上已经用rpm安装了Samba服务器,这省去了我不少麻烦事。进到百度百科里,粗略浏览了一下Samba服务器的相关知识,我就迫不及待的启动了samba服务器(没有修改任何配置)。然后我查看了一下相关日志/var/log/samba/log.smbd,发现在启动过程中报出以下错误:

[... ...] printing/print_cups.c:(cups_connect)
Unable to connect to CUPS server localhost: - Connection refused
... ...
[... ...] smbd/server.c:(smbd_open_one_socket)
smbd_open_once_socket: open_socket_in: Address already in use

百度搜索了一下,找到了错误的解决方法。虽然还不是很明白,但问题真的解决了,Samba服务器启动成功了。相关问题及解决方法如下:

1. Unable to connect to CUPS server localhost:631 - Connection refused

在/etc/samba/smb.conf配置文件中添加三行配置,如下:

load printers = no

printing = bsd //修改打印系统,默认为cups
printcap name = /dev/null //设置打印机的配置文件路径
disable spoolss = yes //隐藏打印机

2. smbd_open_once_socket: open_socket_in: Address already in use

解决方法1:
# echo 1 > /proc/sys/net/ipv6/bindv6only
# echo "net.ipv6.bindv6only = 1" >> /etc/sysctl.conf
or
#sysctl -w net.ipv6.bindv6only=1 //–w 改变配置
#lsof -i:445 //查看端口

将/proc/sys/net/ipv6/bindv6only设置为0时,smbd将只监听ipv6上的端口。
将/proc/sys/net/ipv6/bindv6only设置为1时,smbd将同时监听ipv6和ipv4上的端口。

解决方法2:
编辑smb.conf文件,添加全局配置bind interfaces only = yes

通过搜索一些文档,目标似乎都集中在了bindv6only这个内核参数。

继续查看内核文档
#cat /usr/share/doc/kernel-doc-2.6.32/Documentation/networking/ip-sysctl.txt | grep bindv6only -n5
----
bindv6only - BOOLEAN
        Default value for IPV6_V6ONLY socket option,
        which restricts use of the IPv6 socket to IPv6 communication
        only.
                TRUE: disable IPv4-mapped address feature
                FALSE: enable IPv4-mapped address feature
        Default: FALSE (as specified in RFC2553bis)
内核文档里面对这个参数进行了说明,它是一个bool值开关。
设置为1时,关闭ipv4映射地址的特性
设置为0时,开启ipv4映射地址的特性
默认设置为0。详情需要参考RFC2553。

通过查看RFC2553获得了一些信息:
RFC2553描述了IPv4映射地址和IPv6通配绑定套字的特殊行为。规格允许:
通过AF_INET6通配绑定套接字接受IPv4连接。
使用特殊形式的地址 (如 ::ffff:10.1.1.1 ) 通过AF_INET6套接字传输IPv4数据包。

通过RFC2553规定的规则,将linux默认所有来自IPv4地址的访问转换为IPv6地址的格式从而处理来自于IPv4的连接。

当bindv6only这个内核参数设置为0时,对所有来自于ipv4的请求都绑定到ipv6地址。简单说就是端口可以接收ipv4的包,也可以接收ipv6的包。
      当bindv6only这个内核参数设置为1时,对于来自ipv4的请求就打开多个端口进行监听和处理。Ipv4与ipv6所监听的端口是分开的。

结论:bindv6only参数是linux内核默认开启的参数,并且不会对系统运行产生什么不良影响。应当是ipv4向ipv6过渡时,为了向下兼容所开发的两种端口的运行模式。

附:我在samba成功登陆时,确实看到了rfc2553规定的这种特殊格式的地址。
# netstat -natulp | grep smbd
tcp        0      0 :::139     :::*                        LISTEN      17364/smbd
tcp        0      0 :::445     :::*                        LISTEN      17364/smbd
tcp        0      0 ::ffff:192.168.0.250:445    ::ffff:192.168.0.249:53679  ESTABLISHED 17474/smbd

# smbstatus
Samba version 3.5.10-125.el6
PID     Username      Group         Machine                        
-------------------------------------------------------------------
17474     smbuser       smbuser       mosquito     (::ffff:192.168.0.249)

Service      pid     machine       Connected at
-------------------------------------------------------
smbuser      17474   mosquito      Thu Nov 22 22:00:55 2012

Locked files:
Pid          Uid        DenyMode   Access      R/W        Oplock           SharePath   Name   Time
--------------------------------------------------------------------------------------------------
17474        501        DENY_NONE  0x100081    RDONLY     NONE             /home/smbuser   .   Thu Nov 22 22:00:55 2012

摘自:http://bbs.hx95.com/simple/index.php?t223015.html

终于启动成功了,赶紧登陆一下看看。在Win7的资源管理器的地址栏里输入\\[Samba服务器IP地址],让输入用户名密码,试了好几次都没有成功。于是又在网上搜索了一下,找到一个配置,如下:

#修改
security = share
... ...
#添加
[myshare]
comment = Raymond's Files Share
path = /data/share
public = yes
writable = yes
printable = no
create mask =

再次输入地址,回车,这次不用输入用户名密码就进去了。

Fedora14下首次搭建Samba服务器遇到的一些问题的更多相关文章

  1. Android源码浅析(三)——Android AOSP 5.1.1源码的同步sync和编译make,搭建Samba服务器进行更便捷的烧录刷机

    Android源码浅析(三)--Android AOSP 5.1.1源码的同步sync和编译make,搭建Samba服务器进行更便捷的烧录刷机 最近比较忙,而且又要维护自己的博客,视频和公众号,也就没 ...

  2. CentOS 6.5下快速搭建ftp服务器[转]

    CentOS 6.5下快速搭建ftp服务器 1.用root 进入系统 2.使用命令 rpm -qa|grep vsftpd 查看系统是否安装了ftp,若安装了vsftp,使用这个命令会在屏幕上显示vs ...

  3. Windows下IIS搭建Ftp服务器

    第一步:启用Windows IIS Web服务器 1.1 控制面板中找到"程序"并打开 1.2 程序界面找到"启用或关闭Windows功能"并打开 1.3 上面 ...

  4. CentOS 6.5下快速搭建ftp服务器

    来源:Linux社区 作者:Linux CentOS 6.5下快速搭建ftp服务器 1.用root 进入系统 2.使用命令 rpm -qa|grep vsftpd 查看系统是否安装了ftp,若安装了v ...

  5. ubuntu 搭建samba服务器&挂载(mount)代码到本地

    一.搭建samba服务器 1.下载: sudo apt-get install samba samba-common 2.创建共享文件夹MyShare: mkdir /home/user/MyShar ...

  6. Ubuntu 上搭建 Samba 服务器

    由于经常要接收同事发送的一些文件,U盘拷来拷去的很麻烦. 在本机Ubuntu上搭了各Samba服务器,过程中遇到点小问题,记录一下 sudo apt-get install samba 创建一个共享目 ...

  7. linux系统下本地搭建git服务器

    linux系统下如何搭建本地git服务器,用于存放团队的开发代码,如下步骤: 1.先用一台服务器来安装git,安装好linux以后,在这里选用的是Ubuntu 14.04.然后配置静态IP:172.1 ...

  8. 在ubuntu12.0.4上搭建samba服务器以实现文件共享

    在安装之前samba服务器之前,先进行以下配置和测试. <壹> 准备工作 一.NAT联网方式 (1)硬件连接 无需网线,无需路由器 (2)虚拟机选择NAT连接方式 (3)测试网络通不通 在 ...

  9. CentOS 6.5搭建Samba服务器

    目标需求:在Windows7下访问CentOS 6.5 root用户桌面/ZS文件夹 0.准备工作 关闭防火墙并开启不起动 service iptables stop chkconfig iptabl ...

随机推荐

  1. javascript原型模式理解

    传统的面向对象语言中,创建一个对象是通过使用类来创建一个对象的,比如通过类飞行器来创建一个对象,飞机. 而js这种没有类概念的动态设计语言中,创建对象是通过函数来创建的,所以通常也把js称为函数式语言 ...

  2. 基于BitNami for XAMPP进行Drupal7安装的教程(Win7平台)

    BitNami是一个开源项目,该项目产生的开源软件包可用于安装Web应用程序和解决方案堆栈,以及虚拟设备.BitNami 提供wordpress.joomla.drupal.bbpress等开源程序的 ...

  3. IOS 命令行安装备忘

    1. 首先要越狱 2. 新增BIGBOSS或者苹果核的源 3. 安装MobileTerminal和MobileTerm Backgrounder (用于后台运行命令),最好r520以上版本,R530还 ...

  4. Why your Games are Unfinished, and What To Do About It (转)

    So, you've got a new game idea, and it's going to change what everyone knows about the genre! Great! ...

  5. C语言学习笔记(二):指针的用法

    与其说指针是一种工具,不如先说指针是一种数据类型. -------------------------------------------------------------华丽的分割线------- ...

  6. Linux学习2

    第三讲Linux常用命令04 压缩:gzip: 1.只能压缩文件,不能压缩目录 2.不保留源文件 解压缩:gunzip   gzip -d ------------------------------ ...

  7. 《C++程序设计》上半部读书笔记

    目录   前言     第一章 C++的初步知识         1 C语言的优点         2 C++产生的背景         3 C++对C的增强         4 如何体会C++的优点 ...

  8. 转:理解 PHP 中的 Streams

    本文转自:开源中国社区 [http://www.oschina.net]本文标题:理解 PHP 中的 Streams 本文地址:http://www.oschina.net/translate/und ...

  9. GNU FORK PTHREAD SIGNALS

    Linux程序设计入门 - fork, pthread, and signals 在UNIX程序设计中,学会fork及signal的运用,算是相当基本的功夫. fork()及signal经常运用在da ...

  10. 【HDOJ】3085 Nightmare Ⅱ

    双向BFS.注意,任何一个点出队后,首先需要考虑ghost. /* 3085 */ #include <iostream> #include <queue> #include ...