|
此文章由 kylenix 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 kylenix 所有!转贴必须注明作者、出处和本声明,并保持内容完整
自从弄了个chinahdtv的账户,决定开始nas折腾之路。
之前想买synology的ds212j的,最后被js耍了,order了1个月都没货,实在受不了了,cancel order,refund还在进行时,顺便提一句,这家js叫penta group, penta.com.au
正好上周i-tech有个$10 off,前天就从那里弄了台N40L,$219-10=$209, 价格没的说。付款第二天就pick up了,赞一个。付款前还有点担心会不会遇到第二个penta,因为他们也要求先付全款,再提货,不能pay when pick up。看来是我小人了。
拿回家突然醒悟,没有鼠标键盘显示器,如何工作?于是昨天借齐这三件,晚上开工。
看了老妖版主的折腾帖,直接就上ubuntu server 10.04 LTS了。
本以为1个小时就能搞定的,结果从10pm弄到2am,哎
=====================
安装ubuntu server 10.04 LTS
没有光驱,这年月借都借不到了,怪不得apple要淘汰它了。所以决定用u盘安装。之前用u盘安过ubuntu desktop,很顺利,所以信心满满。结果就翻船了。
用macbook下了ubuntu-10.04.4-server-amd64.iso,根据http://www.ubuntu.com/download/server/download 的instruction,转成img,dd到u盘,插入microserver,根本无法启动。换了2个u盘都不行。浪费了1个多小时(dd到u盘真的很慢),突然觉悟了,这样弄的u盘只能在mac上引导。sb了不是。
赶紧把淘汰2年的dell拿出来,还是按照官方步骤,用那个什么universal usb installer把iso写入u盘(nnd没有ubuntu server 10.04的选项,根据instruction选了desktop edition),写入花了15分钟。开机,这回终于出菜单选项了,try ubuntu, install to hdd ... 可是不管选哪个,enter都没反应。omg
记得之前装ubuntu的时候用的是unetbootin写iso到u盘的,所以怀疑这个universal usb installer是不是有问题。于是又用unetbootin一试,这个写入u盘更慢大半小时,开机,终于进入install,结果好戏不长,在设置完语言、键盘后,detect cdrom报错,没有找到cdrom,废话,有cdrom我还用折腾这么久啊。
我放狗,原来这还是个普遍问题,解决方案很多,最简单的在boot的时候加上- cdrom-detect/try-usb=true
复制代码 具体是启动-》选择安装菜单出现以后,光标移到install,按tab,在出现的命令行 == 后面加入cdrom-detect/try-usb=true,回车就ok
之后按提示一步步来就好了。
在安装grub的时候,问是不是装到第一个hdd,当然yes了,结果又sb了。
安装结束,拔掉u盘,重启,结果黑屏,就一个光标在闪巴闪吧。晕死。
我再放狗,发现问题,就在grub,肯定是装在了u盘的mbr里了,它把u盘当第一个hdd了,哎
于是把u又插上,本想进入recovery模式修复grub,结果嘿嘿直接就启动进入ubuntu server了,证明真是装到了u盘mbr
ok至少有了一个可以启动的系统,log in,然后sudo grub-install /dev/sda回车,出了个error,不知道是不是我没有umount /dev/sda?
不管他,试着重启,了不起从头来吧,居然成功了。装ssh,2pm赶紧睡了。
=======
终于有了sshd,可以归还借来的鼠标键盘。也不用再盯着那个大lcd屏,眼花。
一切都从macbook上ssh过去,爽。
接下来最重要的装transmission,这也是当初长草nas的根本原因。
安装太简单了,sudo apt-get install transmission-daemon
然后配置settings.json,有两个看似一样的settings.json,一个在/etc/transmission-daemon/,另一个在/var/lib/transmission-daemon/info/,应该是改/var下面的,/etc下的会在damon重启后被overwrite。
settings.json里面主要改:把dht禁用;download-dir改到/home/username/Downloads/;开启port-forwarding-enabled;rpc-enabled; 设置rpc-username/password;rpc-whitelist加入macbook的ip
配置文件改好后,sudo service transmission-daemon reload
打开chrome,输入microserver-ip:9091,搞定(我以为)
加入torrent,开始下载...窃喜...3秒钟,然后发现download stop了,error:permission denied
查看/home/username/Downloads的属性,似乎没问题,chmod 777再试,问题依旧。傻眼了。
试着把download-dir改回到缺省的/var/lib/transmission-daemon/downloads,居然又没问题了。
又是google一番,终于发现问题了,在安装的时候我选了encrypted home directory,所以/home/username是加密的,只有在我login之后才会mount进来,自然daemon无法access了。看来只能把下载目录选在非加密的地方。暂且就缺省的/var/lib里吧,等我把raid整好了再换了。
这个加密home还有好些副作用,比如ssh的public key放在.ssh/是没用的,因为ssh登陆进去之前.ssh还不accessible.
不管怎样,pt暂且养着没问题了。
=====================================
下一步,折腾samba
更新samba file/printer server; ffmpeg
----------------------------------
经过一个周末的折腾,终于弄完以上三个东东,同时更认识到自己linux的水平实在有限
samba安装很简单,sudo apt-get install samba libpam-smbpass (libpam-smbpass 是用于同步系统和samba的用户数据库的,这样就不用单独设置samba的用户名和密码了,直接用ubuntu系统的用户进行authentication
然后编辑 /etc/samba/smb.conf
主要改几个地方- [global]
- workgroup = WORKGROUP
- security = user
复制代码 然后建立share folder- [pt]
- comment = PT Downloads Share
- path = /var/lib/transmission-daemon/downloads
- browsable = yes
- guest ok = no
- read only = no
- create mask = 0775
复制代码 最后重启samba 服务- sudo restart smbd
- sudo restart nmbd
复制代码 不知道什么原因,开始我的macbook一直连不上,总说用户名密码错误,当我带儿子上街玩回来,居然就一切正常了。不解。
这之后是CUPS,打印机brother HL-2040
安装也简单sudo apt-get install cups
然后配置,修改/etc/cups/cups.conf
主要改了以下- Listen 127.0.0.1:631
- Listen /var/run/cups/cups.sock
- Port 631
复制代码 然后重启cups- sudo /etc/init.d/cups restart
复制代码 然后用lpinfo -v发现“direct usb://Brother/HL-2040%20series”说明打印机已经检测到了。
接下来要添加打印机,有2种方式,web interface或者cli
不知道为什么我用浏览器http://192.168.1.2:631/admin总是连不上,想用command line interface可是发现文档似乎很不全面,放弃。
最后在server装了个lynx然后在ssh里面lynx localhost:631/admin搞定。
web配置比较直观,不多说了。配置好之后,试用lp -d HL2040 /etc/motd打印出message of the day, 没问题。
然后配置samba打印共享。
还是修改/etc/samba/smb.conf- [global]
- load printers = yes
- printing = cups
- printcap name = cups
- [printers]
- comment = All Printers
- browsable = yes
- path = /var/spool/samba
- printable = yes
- guest ok = no
- read only = yes
- create mask = 0700
复制代码 接下来重启samba 服务- sudo restart smbd
- sudo restart nmbd
复制代码 最后在macbook system preferences里Print & Fax, 添加windows打印机,选择HL-2040的driver.
和folder share类似,开始我的macbook一直都看不到共享的printer,然后重启macbook,搞定。
感觉samba这个东东好像不是那么robust或者反应迟钝。
---------- FFMPEG x264 libfaac ------------
chinahdtv上下的片基本都是1080p和720p,大家的追求都越来越高啊。但我有不少时间用ipad或者android tab看,直接播放基本都不流畅,所以还得convert。
既然是linux,自然用ffmpeg,放狗发现ipad2支持H.264 video up to 720p, 30 frames per second, Main Profile level 3.1 with AAC-LC audio up to 160 Kbps, 48kHz, stereo audio in .m4v, .mp4, and .mov file formats.
下下来的片都是h264 high profile+ac3/dts等,直接用ipad/tab放都是软解码,肯定不流畅。
要转换成h264 main profile level 3.1 + aac,ffmpeg需要用x264和libfaac codec,可惜在ubuntu上ffmpeg这两个codec都没有(ubuntu认为这两个codec都不是free software),所以需要自己compile ffmpeg,具体过程在
http://ubuntuforums.org/showpost.php?p=9868359&postcount=1289
编译过程比较花时间,n40l的cpu实在太弱了。
之后比较折腾的是使用ffmpeg转化mkv成mp4的参数。放狗加trial&error,最后确定如下- ffmpeg -i input.mkv -vcodec libx264 -vprofile main -preset slow -x264opts level=31 -threads 0 -acodec libfaac -ab 128k -ar 48000 -ac 2 output.mp4
复制代码 转化一个720p昨晚用了4个多小时
是不是可以装个什么硬件卡可以加速??求大大们指教
================= OpenVPN ========================
安装非常简单,不多说了。
ubuntu官方guide https://help.ubuntu.com/10.04/serverguide/openvpn.html
openvpn howto http://openvpn.net/index.php/open-source/documentation/howto.html
最折腾的是configuration。openvpn有2中模式routing和bridging,howto里面有说明。routing的话配置很简单,但client只能访问openvpn服务器,bridging就强大得多,client连上以后就相当于物理连到openvpn服务器所在的子网,想做什么都行啦。我主要弄vpn的目的就是回国以后还可以访问很多被墙的网站,比如足迹?所以必须用bridging模式。
首先要更改网卡eth0的配置,增加一个br0虚拟interface,eth0作为br0的一个port。这个ubuntu的guide有说明,但不是很清楚。
https://help.ubuntu.com/10.04/se ... ation.html#bridging
注意,这个改动如果不当可能会使得网络瘫痪,所以headless server的同学请准备好monitor和keyboard,备用。
首先安装bridge-utils包- sudo apt-get install bridge-utils
复制代码 然后编辑/etc/network/interfaces以配置br0- auto lo
- iface lo inet loopback
- auto br0
- iface br0 inet static
- address 192.168.33.2
- netmask 255.255.255.0
- gateway 192.168.33.1
- bridge_ports eth0
- bridge_stp off
复制代码 以上假设192.168.33.2是server的ip,192.168.33.1是我的modem router。在装openvpn之前我用的是192.168.1.0/24子网,但这个子网用的太普遍了,如果client连入vpn之前也用的这个子网地址,连vpn的时候就会出现地址冲突了。所以,我把家里的网段都改成了192.168.33.0/24
注意原始的interfaces应该有iface eth0那一段,必须删除。ip地址是要配置在br0上,而不是在eth0上,因为现在的eth0只是一个port而已,br0可以看做是一个switch
然后sudo /etc/init.d/networking restart就生效了。
可以用brctl show验证。应该会出现类似这样的一段- bridge name bridge id STP enabled interfaces
- br0 nnnn.xxxxxxxxxxxx no eth0
复制代码 这就说明br0已经配置ok,eth0已经作为br0的一个port了。
关于各种key的生成,ubuntu的server guide已经很详细了,不重复。
下面配置server.conf文件
sample config file只需作如下改动- dev tap0
- up "/etc/openvpn/up.sh br0"
- down "/etc/openvpn/down.sh br0"
- server-bridge 192.168.33.2 255.255.255.0 192.168.33.101 192.168.33.200
- push "route 192.168.33.1 255.255.255.0"
- push "redirect-gateway def1 bypass-dhcp"
- push "dhcp-option DNS 192.168.33.1"
复制代码 openvpn会给连入的client分配ip地址,以上配置这个ip地址池是192.168.33.101-200
在根据ubuntu server guide添加/etc/openvpn/sh/down.sh两个文件,就ok了。
sudo /etc/init.d/openvpn restart重启openvpn
客户端,我是在macbook上作,用的TunnelBlick,配置也非常简单,要把在server生成的几个key拷到client上
然后TunnelBlick生成一个sample conf,修改- dev tap
- remote openvpn.server.ip.address 1194
- cert client-name.crt
- key client-name.key
复制代码 一切就绪,connect
这时候客户端机器ifconfig会显示一个新的tap0,ip地址应该就是192.168.33.101-200中的一个。ping 192.168.33.2或者server子网内任何一台机器都应该能成功。
大功告成!
但是,这时候在客户端用浏览器访问whatismyip.com或者其他可以显示ip地址的网站,仍然会显示客户端原始的ip地址。这个问题困扰我老半天。
仔细阅读openvpn的howto才发现问题。
缺省情况下,只有访问vpn内网的数据流会走vpn,其他的数据包还是bypass vpn走老路的。
http://openvpn.net/index.php/ope ... howto.html#redirect
所以要在server.conf中加入push "redirect-gateway def1"以及push DNS设置
push "dhcp-option DNS 192.168.33.1"
还要配置防火墙firewall的nat rule:
iptables -t nat -A POSTROUTING -s 192.168.33.0/24 -o eth0 -j MASQUERADE
(这样加入的rule是临时的,server重启以后就没有了,可以在/etc/rc.local里面加上面这句话,每次重启就会自动执行了)
restart openvpn搞定
在用客户端访问whatismyip.com就显示家里adsl的public ip了。
===========================================================
今天折腾AFP和time machine
家里有macbook,之前一直是用移动硬盘做time machine备份,现在既然有了server,没道理不backup到server上的。放狗,ubuntu+time machine,比较详细的是这个
http://kremalicious.com/ubuntu-a ... ime-machine-volume/
不过是2008年写的,Leopard + Ubuntu8. 自然有些过时的东东。
分三步走
1)安装netatalk。这是apple filing protocol (AFP)的开源实现。上面那篇文章说是要自己编译netatalk因为ubuntu自带的netatalk没有加密。事实证明ubuntu10.04包含的netatalk完全没有问题,所以安装就只是简单的- sudo apt-get install netatalk
复制代码 然后配置netatalk. 先找到/etc/default/netatalk中如下段落并修改- ATALKD_RUN=no
- PAPD_RUN=no
- CNID_METAD_RUN=yes
- AFPD_RUN=yes
- TIMELORD_RUN=no
- A2BOOT_RUN=no
复制代码 然后编辑/etc/netatalk/afpd.conf最后一行改为- - -transall -uamlist uams_randnum.so,uams_dhx.so,uams_dhx2.so -nosavepassword -advertise_ssh
复制代码 接下来修改/etc/netatalk/AppleVolumes.default,这是告诉apfd共享哪些目录。
在这个文件的最后是share directory的定义。
缺省情况,用户自己的home directory是被共享出来的,也就是有如下一行注意一点,如果你和我一样用了加密的home directory的话,这个缺省的共享项会造成afpd的连接错误。也就是说你不能共享home directory及其下的任何内容。这又是encrypted home dir造的孽,所以,没有特殊需要的话,还是不要encrypt home为好。
我的TimeMachine分区mount在/srv/TimeMach/, 也就对应下面这一行- /srv/TimeMach/ "Time Machine" allow:kylenix options:usedots,upriv
复制代码 Time Machine是client看到的共享名
allow:后面跟允许访问者的用户名,两个options:usedots是允许隐藏文件(以dot打头),upriv是afp3 unix privileges支持。除非mac是用很老的tiger,否则都可以加这个选项。
现在可以重启netatalk了- sudo /etc/init.d/netatalk restart
复制代码 这时,用macbook的connect to server, 应该可以连入,并看到共享的目录了。
如果只是为了文件共享,那就可以到此为止了。为了time machine还得继续往下。
第二步是安装avahi+mdns,使得mac可以自动发现允许afpd的ubuntu server,apple把这个叫做Bonjour服务
安装同样简单- sudo apt-get install avahi-daemon libnss-mdns
复制代码 编辑/etc/nsswitch.conf,找到hosts:一行修改如下- hosts: files mdns4_minimal [NOTFOUND=return] dns mdns4 mdns
复制代码 然后在/etc/avahi/services/下建立一个新文件afpd.service- <?xml version="1.0" standalone='no'?><!--*-nxml-*-->
- <!DOCTYPE service-group SYSTEM "avahi-service.dtd">
- <service-group>
- <name replace-wildcards="yes">%h</name>
- <service>
- <type>_afpovertcp._tcp</type>
- <port>548</port>
- </service>
- <service>
- <type>_device-info._tcp</type>
- <port>0</port>
- <txt-record>model=Xserve</txt-record>
- </service>
- </service-group>
复制代码 不多解释了,主要目的是告诉avahi哪些服务可以被mac discover, 这里就是apfd服务
然后重启avahi- sudo /etc/init.d/avahi-daemon restart
复制代码 这时在mac的sidebar就应该出现ubuntu server的名字,点击它就可以login并访问到共享的目录了。
最后一步,配置Time Machine,默认情况,time machine不接受除了直接连接的移动硬盘和time capsule之外其他的备份空间,在terminal里输入如下命令将开启对非apple网络硬盘的支持- defaults write com.apple.systempreferences TMShowUnsupportedNetworkVolumes 1
复制代码 现在就快大功告成了。
打开Time Machine Preferences, Select Disk,看看ubuntu上共享的备份空间有没有出现?如果没有的话,很可能是没有mount,只要在Finder sidebar找到ubuntu server,点开,login,打开共享目录,应该Time Machine Preferences里面就可以看到选项了。选择正确的Volume,之后就开心的等待吧,第一次backup最好用gigabit ethernet网线直连吧,否则initial backup要死人的。第一次backup完成以后就可以wifi了。
完工!
[ 本帖最后由 kylenix 于 2012-5-2 23:17 编辑 ] |
评分
-
查看全部评分
|