页面

2011年9月28日

我的Home Server(第三部分)

文件服务器

文件服务器我是使用Samba来实现。

安装:

# aptitude install samba

编辑配置文件:

# mv /etc/samba/smb.conf /etc/samba/smb.conf.backup
# vi /etc/samba/smb.conf
#====== Global Settings ======
[global]
#设置工作组名字、主机名、最大连接数
   workgroup = WORKGROUP
   server string = %h server
   dns proxy = no
   max connections = 10

#只监听来自eth0网卡的请求
   interfaces = eth0
   bind interfaces only = yes

#日志文件位置和大小
   log file = /var/log/samba/log.%m
   max log size = 500

#采用输入用户密码才能访问共享的方式
   security = user
   encrypt passwords = true
   passdb backend = tdbsam
   obey pam restrictions = yes

#设置用户Samba密码和系统密码同步,同步的方向是改变Samba密码,系统密码跟着改变(没有做测试,猜得)
   unix password sync = yes
   passwd program = /usr/bin/passwd %u
   passwd chat = *Enter\snew\s*\spassword:* %n\n *Retype\snew\s*\spassword:* %n\n *password\supdated\ssuccessfully* .
   pam password change = yes


#====== Share Definitions ======
[homes]
   comment = Home Directories
   browseable = no
   read only = no
   create mask = 0644
   directory mask = 0755
   valid users = %S

[download]
   comment = Download Directories
   path = /media/download
   browseable = yes
   read only = no
   create mask = 0644
   directory mask = 0755
   valid users = kaysiness

解析一下 Share Definitions 部分的含义:(更多的含义可以查看 man smb.conf 手册)

  • comment = Home Directories
    设置共享的注释说明
  • path = /media/download
    共享的路径
  • browseable = yes
    设置是否让该共享可见
  • read only = no
    设置共享目录是否只读
  • create mask = 0644
    创建文件时的默认权限
  • directory mask = 0755
    创建文件夹时的默认权限
  • valid users = kaysiness
    允许访问该共享目录的用户名,如果在前面加@这个符号,例如@kaysiness,即表示kaysiness这个组

设置kaysiness用户的Samba密码,以普通用户运行:

$ smbpasswd

如果出现下面的错误提示,尝试把密码的长度加到6位以上

machine 127.0.0.1 rejected the password change: Error was : Password restriction.
Failed to change password for kaysiness

或者用root运行:

# smbpasswd -a kaysiness

重启Samba服务:

# /etc/init.d/samba restart

现在可以到其他机器上输入 \\HOMESERVER\download 来访问共享了。


UPnP

UPnP协议能实现的功能很多,不过我只是用来做内网机器的自动端口映射而已,而在Linux下做这件事的正是linux-igd。

安装:

# aptitude install linux-igd

设置外网端口和内网端口:

# vi /etc/default/linux-igd
EXTIFACE=ppp0
INTIFACE=eth0
ALLOW_MULTICAST="yes"

解析一下含义:

  • EXTIFACE=ppp0
    连接外网的端口
  • INTIFACE=eth0
    连接内网的端口
  • ALLOW_MULTICAST="yes"
    打开多播

启动linux-igd服务:

# /etc/init.d/linux-igd start

把linux-igd添加到启动列表里:

# update-rc.d linux-igd defaults

下图是内网一台机器上的eMule使用UPnP协议实现的自动端口映射。


第三部分完


相关文章

没有评论:

发表评论