zoukankan      html  css  js  c++  java
  • Fedora14下首次搭建Samba服务器遇到的一些问题

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

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

    [... ...] printing/print_cups.c:109(cups_connect)
      Unable to connect to CUPS server localhost:631 - Connection refused
      ... ...
    [... ...] smbd/server.c:501(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 = 0765

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

  • 相关阅读:
    [IOI1998] Pictures
    【C++】位操作(3)-获取某位的值
    PAT A 1013. Battle Over Cities (25)【并查集】
    hihoCoder 1391 Countries【预处理+排序+优先队列】2016北京网络赛
    PAT A 1014. Waiting in Line (30)【队列模拟】
    codeforces Round#379 div.2
    PAT A 1004. Counting Leaves (30)【vector+dfs】
    POJ 1163:The Triangle
    LeetCode39/40/22/77/17/401/78/51/46/47/79 11道回溯题(Backtracking)
    BZOJ 3680 吊打XXX
  • 原文地址:https://www.cnblogs.com/alwu007/p/4305906.html
Copyright © 2011-2022 走看看