使用Ubuntu创建家庭媒体和文件服务器
在过去两年中,我使用FreeNAS 7.x作为文件服务器。 收购发展后,家庭设计的服务落后。 不幸的是,我的所有数据都存储在没有Windows或Linux内核本机支持的UFS GPT分区上。 我决定的解决方案是购买另一个2TB硬盘驱动器作为存储缓冲区,使用Ubuntu 11.10的终端使用mount命令将UFS数据和重新分区复制到EXT4中。
之后的打嗝,我开始为我的需要设置最好的服务器选项。
这个HOWTO将以便宜(免费)的成本给你最好的家庭媒体和文件服务器。 它包括SSH2,远程桌面,UPNP / DLNA服务器,SAMBA共享(Windows文件共享),VPN服务器和Transmission bit-torrent服务器。 模式的最后一块是一个新玩具:Subsonic。 这使您可以通过网络浏览器将基于网络的媒体流播放到任何地方。
虽然Ubuntu可能安装在各种硬件规格上,但我建议您拥有不少于1GHZ的双核机器(旧AMD的功能非常棒),2GB内存(我有4GB),40GB专用硬盘空间用于Ubuntu,和互联网连接体面的速度(没有老拨号!)。 我有一个AMD双核x64,4GB内存,专用于Ubuntu的40GB硬盘驱动器,两个2TB硬盘驱动器和一个500GB硬盘驱动器,仅在空间不足的情况下出现紧急情况。
假设:本指南假定您至少有一些次要的,新手的Ubuntu或Linux经验。 如果没有,请安装Ubuntu并玩耍,探索生态系统10到20分钟,然后再继续。
假设:您不将此服务器用作路由器,并且在此服务器上未使用防火墙,因为它位于家庭LAN网络后面。 如果将其用作路由器,请注意要使用防火墙脚本打开的端口以及远程桌面部分中使用的防火墙规则。
开始吧!
安装Ubuntu 11.10。 我推荐这是自己的硬盘驱动器。 我使用了一个40GB的硬盘驱动器,分区EXT4在/
32GB的空间。 剩下的8GB被划分为SWAP空间。
一旦安装了Ubuntu,重新启动进入系统并运行软件更新来安装所有最新的软件包。 重新启动一次,以便我们正在从最新的内核和软件套件进行工作。
SSH2:
设置SSH非常简单。 如果您无法通过远程桌面到达机器或像在终端窗口中播放一样,这将给您控制台访问!
- 打开终端
- 类型
sudo su
使我们有根控制。 您在设置Ubuntu用户帐户时使用的密码将适用于此。 - 要安装软件包类型:
sudo apt-get install ssh
如果您不担心安全性,这是一个停止点,因为SSH很好。 - 让我们通过编辑配置来保护守护进程。 类型:
gedit /etc/ssh/sshd_config
打开配置文件。 - 找到
PermitRootLogin
并将其设置为no
- 在该变量下方添加一行,并键入
AllowUsers(username)
,其中(username)
表示您的Ubuntu帐户的用户名。 - 类型
restart ssh
远程桌面
这是一个简单的GUI来启用。 缺点是您必须使用TightVNC或Windows的其他VNC查看器,如果您的操作系统是Remote的选择。 但是如果您希望运行RDP兼容的服务器(意味着要使用Windows本机远程桌面客户端连接到服务器),请完成以下步骤。
- 打开终端
- 类型
sudo su
使我们有根控制。 您在设置Ubuntu用户帐户时使用的密码将适用于此。 - 要安装软件包类型:
sudo apt-get install xrdp
- 将外部WAN端口3389转发到服务器的LAN IP地址。
对于RDP:确保将任何端口转发到服务器的内部端口3389.我使用3401外部端口转发到服务器的LAN IP端口3389。
对于Ubuntu的内置VNC:确保将端口5900转发到机器。 如果要使用JAVA查看器访问远程桌面,还必须转发5800。
SAMBA服务器
安装和配置使用Windows文件共享功能的数据共享。 我们将建立一个共享系统,所有LAN计算机都可以导航,访问和修改股份。 如果您的LAN环境不是“家”使用,您可能希望进一步确保SAMBA的安全。
- 打开终端
- 类型
sudo su
使我们有根控制。 您在设置Ubuntu用户帐户时使用的密码将适用于此。 - 要安装软件包类型:
sudo apt-get install samba smbfs
- 编辑配置。 第一,
mv /etc/samba/smb.conf /etc/samba/smb.conf.orig
接着gedit /etc/samba/smb.conf
[global] workgroup = HOME #(Set this to your Windows workgroup) netbios = HOME #(Set this to your Windows workgroup) security = share [Shared Drive] #(Set this to the name you want the shared folder to have) comment = entire shared drive #(Comments about the shared folder) path = /mnt/storage2/ #(Path to the shared folder or mount-point of harddrive) read only = no guest ok = yes writable = yes
或者,您可能希望将其作为共享系统,其中使用用户名和密码或其他形式的安全性。 这不是很难做,许多教程可用,但不会是这个“家”指南的一部分。
VPN:设置Microsoft和Android支持的PPTP VPN
- 打开终端
- 类型
sudo su
使我们有根控制。 您在设置Ubuntu用户帐户时使用的密码将适用于此。 - 要安装软件包类型:
apt-get install pptpd
gedit /etc/pptpd.conf
# TAG: ppp # Path to the pppd program, default '/usr/sbin/pppd' on Linux # #ppp /usr/sbin/pppd # TAG: option # Specifies the location of the PPP options file. # By default PPP looks in '/etc/ppp/options' # option /etc/ppp/pptpd-options # TAG: debug # Turns on (more) debugging to syslog # #debug # TAG: stimeout # Specifies timeout (in seconds) on starting ctrl connection # # stimeout 10 # TAG: noipparam # Suppress the passing of the client's IP address to PPP, which is # done by default otherwise. # # noipparam # TAG: logwtmp # Use wtmp(5) to record client connections and disconnections. # logwtmp # TAG: bcrelay <if> # Turns on broadcast relay to clients from interface <if> # bcrelay eth0 # TAG: localip # TAG: remoteip # Specifies the local and remote IP address ranges. # # Any addresses work as long as the local machine takes care of the # routing. But if you want to use MS-Windows networking, you should # use IP addresses out of the LAN address space and use the proxyarp # option in the pppd options file, or run bcrelay. # # You can specify single IP addresses seperated by commas or you can # specify ranges, or both. For example: # # 192.168.0.234,192.168.0.245-249,192.168.0.254 # # IMPORTANT RESTRICTIONS: # # 1. No spaces are permitted between commas or within addresses. # # 2. If you give more IP addresses than MAX_CONNECTIONS, it will # start at the beginning of the list and go until it gets # MAX_CONNECTIONS IPs. Others will be ignored. # # 3. No shortcuts in ranges! ie. 234-8 does not mean 234 to 238, # you must type 234-238 if you mean this. # # 4. If you give a single localIP, that's ok - all local IPs will # be set to the given one. You MUST still give at least one remote # IP for each simultaneous client. # # (Recommended) localip 192.168.1.49 remoteip 192.168.0.1-255 # or #localip 192.168.0.234-238,192.168.0.245 #remoteip 192.168.1.234-238,192.168.1.245
gedit /etc/ppp/chap-secrets
# Secrets for authentication using CHAP # client server secret IP addresses username pptpd password *
/etc/init.d/pptpd restart
- 在
/etc/init.d/
中创建一个新的文档touch /etc/init.d/ipv4pptpd
- 用...编辑文档
gedit /etc/init.d/ipv4pptpd
并插入以下文本:#!/bin/sh ### BEGIN INIT INFO # Provides: IPV4PPTPD # Required-Start: $remote_fs $syslog # Required-Stop: $remote_fs $syslog # Default-Start: 2 3 4 5 # Default-Stop: 0 1 6 # Short-Description: Start daemon at boot time # Description: Enable service provided by daemon. ### END INIT INFO #From debiantutorials.com/installing-and-configuring-pptp-vpn-server-on-lenny/ echo 1 > /proc/sys/net/ipv4/ip_forward iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
- 类型
update-rc.d ipv4pptpd defaults
- 重新引导机器,以便使用新的路由表,或键入
sh /etc/init.d/ipv4pptpd
启动这些表。
uPNP DLNA媒体服务器:Mediatomb
- 打开终端
- 类型
sudo su
使我们有根控制。 您在设置Ubuntu用户帐户时使用的密码将适用于此。 - 要安装软件包类型:
sudo apt-get install mediatomb
- http:// localhost:49152 /
- 编辑
config.xml
以设置您自己的用户名,禁用用户名要求,添加代码转换器,并启用Playstation3播放要求。 这可以通过以下方式完成:gedit /etc/mediatomb/config.xml
Bittorrent服务器:传输
- 打开终端
- 类型
sudo su
使我们有根控制。 您在设置Ubuntu用户帐户时使用的密码将适用于此。 - 要安装软件包类型:
sudo apt-get install transmission-daemon
- 我们无法通过此进程运行来修改设置。 类型
/etc/initi.d/transmission-daemon stop
- 修改
settings.json
的设置以满足您的需要。 确保使用CORRECT路径进行安装。 我的矿物在/ mnt / torrents /
的混合状态。 我的自定义选择是:{ "alt-speed-down": 950, "alt-speed-enabled": false, "alt-speed-time-begin": 1, "alt-speed-time-day": 127, "alt-speed-time-enabled": true, "alt-speed-time-end": 585, "alt-speed-up": 1, "bind-address-ipv4": "0.0.0.0", "bind-address-ipv6": "::", "blocklist-enabled": true, "blocklist-url": "http://www.bluetack.co.uk/config/level1.gz", "cache-size-mb": 2, "dht-enabled": true, "download-dir": "/mnt/torrents/Downloads/", "download-queue-enabled": true, "download-queue-size": 5, "encryption": 2, "idle-seeding-limit": 5, "idle-seeding-limit-enabled": true, "incomplete-dir": "/mnt/torrents/Incomplete/", "incomplete-dir-enabled": true, "lazy-bitfield-enabled": true, "lpd-enabled": false, "message-level": 2, "open-file-limit": 4, "peer-congestion-algorithm": "", "peer-limit-global": 240, "peer-limit-per-torrent": 60, "peer-port": 51413, "peer-port-random-high": 65535, "peer-port-random-low": 49152, "peer-port-random-on-start": false, "peer-socket-tos": "default", "pex-enabled": true, "port-forwarding-enabled": true, "preallocation": 1, "prefetch-enabled": 1, "proxy": "", "proxy-auth-enabled": false, "proxy-auth-password": "", "proxy-auth-username": "", "proxy-enabled": false, "proxy-port": 80, "proxy-type": 0, "queue-stalled-enabled": true, "queue-stalled-minutes": 30, "ratio-limit": 0.1000, "ratio-limit-enabled": true, "rename-partial-files": true, "rpc-authentication-required": true, "rpc-bind-address": "0.0.0.0", "rpc-enabled": true, "rpc-password": "password", "rpc-port": 9091, "rpc-url": "/transmission/", "rpc-username": "admin", "rpc-whitelist": "*.*.*.*", "rpc-whitelist-enabled": true, "scrape-paused-torrents-enabled": true, "script-torrent-done-enabled": false, "script-torrent-done-filename": "", "seed-queue-enabled": false, "seed-queue-size": 10, "speed-limit-down": 500, "speed-limit-down-enabled": true, "speed-limit-up": 1, "speed-limit-up-enabled": true, "start-added-torrents": true, "trash-original-torrent-files": true, "umask": 2, "upload-slots-per-torrent": 14, "utp-enabled": true, "watch-dir": "/mnt/torrents/Autoload/", "watch-dir-enabled": true }
- 如果您对设置感到满意,则没有理由继续向前。 如果你想设置一个脚本来自动更新blocklists文件,让我们继续吧。 重要的是要注意,即使
settings.json
有其位置,传输也不会自动更新和处理阻止列表文件。 让我们创建一个脚本来做到这一点。 这是我的 请记住修改路径结构以适应您的操作。#!/bin/sh # 2012-02-27 Rewrote for Ubuntu # Orignial for FreeNAS 7.5 # By Derek Gordon (crypted or derekcentrico depending on forums) PATH=/bin:/sbin:/usr/bin:/usr/local/bin; export PATH; URL=http://www.bluetack.co.uk/config/level1.gz cd /var/lib/transmission-daemon/info/ wget http://www.bluetack.co.uk/config/level1.gz gzip -dfq level1.gz mv /var/lib/transmission-daemon/info/level1 /var/lib/transmission-daemon/info/blocklists/ rm -rf level1.gz echo "Blocklist update RAN on `date`" >> "/var/lib/transmission-daemon/info/update-blocklists.log"
- 将上述文件设置为
chmod + x
,并在终端中执行sh filename
更新阻止列表。 如果你愿意,你可以将它设置为每天运行一个cronjob。 - 一旦完成,重新启动传输。
- 访问
http
GUI:http:// localhost:9091
基于Web的媒体服务器
亚音速流几乎所有的视频和音频文件通过网络界面上的闪存播放器。 向开发人员的小额捐赠可让您访问Android和iProducts的应用程序。 这意味着本机也可以传输给他们。
- 打开终端
- 类型
sudo su
使我们有根控制。 您在设置Ubuntu用户帐户时使用的密码将适用于此。 - 要安装必备软件包,请键入:
sudo apt-get install openjdk-6-jre lame flac faad vorbis-tools ffmpeg
- Subsonic不是Ubuntu存储库的一部分。 我们必须从http://www.subsonic.org/pages/download.jsp下载最新版本。 下载Ubuntu / Debian版本。 将此文件放在
/ home / username /
目录中。 转到终端中的该目录。 - 类型
dpkg -i filename
在这篇文章中,我的文件名被命名为subsonic4.6.deb
,所以我键入dpkg -i subsonic4.6.deb
- 现在,转到
http:// localhost:4040
,登录并通过Web界面完成设置。 在RED中指示它。 单击链接以保护管理员帐户。 - 之后,转到
“设置”
并根据您的喜好自定义系统。 确保将媒体目录添加到播放器。
如果您喜欢准系统媒体服务器,建议您查看VLC。 起步和运行需要更多的工作,其网络界面不是很漂亮。