總網頁瀏覽量

2013年2月20日

[Ubuntu] 安裝 DLNA Server


[Ubuntu] 安裝 DLNA Server

最近家裡換了一台新電視,支援 DLNA(數位生活網路聯盟 Digital Living Network Alliance) 多媒體共用。上網查了一下,原來是家中的其他數位設備(如 電腦/智慧手機/..),可透過區域網路 or WiFi,將多媒體檔案以DLNA服務的方式,分享到區域網路上,電視機便可藉由區域網路上的DLNA服務,播放分享的影音檔案。
原來是電視可以透過網路直接播放儲存在電腦裡面的照片/音樂/影片,這麼方便的功能,一定要試試看。因為我的Notebook作業系統是Ubuntu,上網查了一下,比較常用的有 ushare 與 minidlna 兩種方式。
實作:
在我的電腦上安裝了這兩種服務,覺得minidlna簡單又好用,安裝方式如下:
1.安裝:
sudo apt-get install minidlna
2.設定:
vi /etc/minidlna.conf
#friendly_name=My DLNA Server
#network_interface=eth0
media_dir=/opt
我的筆記型電腦用無線網路上網,且我要分享三個目錄分別為 /d/photo,/d/music,/d/video
設定可改成:
friendly_name=Ubuntu DLNA Server
network_interface=wlan0
media_dir=A,/d/music
media_dir=P,/d/photo
media_dir=V,/d/video
存檔。
3.更新分享內容,若分享資料夾內的檔案有異動,也需要重新更新
sudo minidlna -f /etc/minidlna.conf -R -d
4.重起DLNA服務
sudo service minidlna restart
5.使用:
打開電視,搜索DLNA,找到 [Ubuntu DLNA Server] 這個分享設備,如此就可以開始在電視上播放電腦中的多媒體檔案了。
6.DLNA支援格式:
影像:JPEG, PNG
聲音:LPCM, MP3, AAC, WMA
影片:MPEG2, MPEG-4, WMV

2013年2月18日

Profptd 自行編譯研究


這幾天又開始研究linux上的ftp server
都不知道到底花了多少時間在這上面了 = =

有些人下載東西時連線會斷斷續續的,尤其是Hinet ADSL的人
搞得連線記錄裡好幾面都是同一個人
但是他們連Windows下的G6 FTP server就沒有問題
裝了另一個Linux下的FTP server軟體 glftpd 來試試看,好像還是一樣...
反正Linux就是跟Hinet不合嗎 囧

◎ 設定 ProFTPD,使 FileZilla 連線時的「自動偵測字碼集」生效

雖然這個問題沒解決,但是看到了這篇文章 使 ProFTPD 支援 UTF-8
原來加點設定後,就可以讓 FileZilla 的「自動偵測字碼集」生效
也就是不用再加上「強制使用UTF-8」的設定了

而且設定後,也可以使用下面這兩個支援 unicode 的 ftp client 軟體了
SmartFTP、FTPRush
用不慣FileZilla的話也可以換這兩個試試,不過這兩個不是免費軟體 
                                           FTP Rush變成免費軟體了

設定方法: 重新編譯 ProFTPD 時加上參數: ./configure --enable-nls
           如此就能加上 mod_lang 模組
           接著在 proftpd.conf 中加上 LangEngine on 即可

這樣連線時,FileZilla會送出「指令: FEAT」,而 ProFTPD 會回應下面的features訊息
    回應: 211-Features:
    ....
    回應: UTF8
    ....
    回應: 211 End
features 的種類會依據 server 打開的功能而有所不同,重點是會顯示 UTF8
接著 FileZilla 就會送出「指令: OPTS UTF8 ON」,ProFTPD會「回應: 200 UTF8 set to on」
這樣 FileZilla 就會自動將字碼集設定為 UTF8 了

不過原本安裝 ProFTPD 時是使用 apt-get 來安裝的
現在改成自行要自行編譯安裝時又吃了不少苦頭 = =

◎ 自行編譯安裝 ProFTPD

先安裝 build-essential
$ sudo apt-get install build-essential

在安裝
$ sudo sudo aptitude install gettext



到官網 http://www.proftpd.org/ 抓最新的 proftpd-1.3.2rc4.tar.gz
解壓縮後進入 proftpd-1.3.2rc4 目錄
$ sudo ./configure --prefix=/usr/local/proftpd --enable-autoshadow --enable-auth-pam 
-enable-dso --enable-nls --enable-shadow
其中 --prefix=/usr/local/proftpd 代表proftpd的安裝路徑
     --enable-nls 代表使用 mod_lang 模組
$sudo make
$sudo make install 

因為安裝好並沒有在 /etc/init.d/ 下面建立一個可以啟動、關閉的檔案,需要自己建立一個,內容是:
(參考: http://www.castaglia.org/proftpd/doc/contrib/ProFTPD-mini-HOWTO-Stopping.html )
#!/bin/sh
# chkconfig: 345 85 15
# description: ProFTPD

# ProFTPD files
FTPD_BIN=/usr/local/proftpd/sbin/proftpd
FTPD_CONF=/usr/local/proftpd/etc/proftpd.conf
PIDFILE=/usr/local/proftpd/var/proftpd.pid

# If PIDFILE exists, does it point to a proftpd process?

if [ -f $PIDFILE ]; then
  pid=`cat $PIDFILE`
fi

if [ ! -x $FTPD_BIN ]; then
  echo "$0: $FTPD_BIN: cannot execute"
  exit 1
fi

case $1 in

  start)
    if [ -n "$pid" ]; then
      echo "$0: proftpd [PID $pid] already running"
      exit
    fi

    if [ -r $FTPD_CONF ]; then
      echo "Starting proftpd..."
      $FTPD_BIN -c $FTPD_CONF

    else
      echo "$0: cannot start proftpd -- $FTPD_CONF missing"
    fi
    ;;

  stop)
    if [ -n "$pid" ]; then
      echo "Stopping proftpd..."
      kill -TERM $pid

    else
      echo "$0: proftpd not running"
      exit 1
    fi
    ;;

  restart)
    if [ -n "$pid" ]; then
      echo "Rehashing proftpd configuration"
      kill -HUP $pid

    else
      echo "$0: proftpd not running"
      exit 1
    fi
    ;;

  *)
    echo "usage: $0 {start|stop|restart}"
    exit 1
    ;;

esac

exit 0


存為 /etc/init.d/proftpd,記得要加上執行的權限 #sudo chmod 755 /etc/init.d/proftpd
就可以使用 /etc/init.d/proftpd start、/etc/init.d/proftpd stop、/etc/init.d/proftpd restart 
來開啟、關閉、重新開啟 ProFTPD

執行下面這行,使開機時會自動執行 proftpd
$ chkconfig --add proftpd

可是用這個方法,如果不正常關機的話,會沒有執行到 /etc/init.d/proftpd stop
導致 /usr/local/proftpd/var/proftpd.pid 沒有被刪掉
使得開機時 /etc/init.d/proftpd start 會以為 proftpd 已經在執行了而沒有啟動
必需手動刪除那個pid檔後再手動執行
$sudo rm /usr/local/proftpd/var/proftpd.pid
$sudo /etc/init.d/proftpd start

◎ 我的proftpd設定檔 /usr/local/proftpd/etc/proftpd.conf

ServerName "My FTP"
ServerType standalone
DefaultServer on
MultilineRFC2228 on
ShowSymlinks on

# Port 21 is the standard FTP port.
Port 21

# Don't use IPv6 support by default.
UseIPv6 off

# Umask 022 is a good standard umask to prevent new dirs and files
# from being group and world writable.
Umask 022

TimeoutNoTransfer 600
TimeoutStalled 600
TimeoutIdle 300

#使ProFTPD的時間為本地時間而不是GMT(格林威治時間)
SetEnv TZ :/etc/localtime
TimesGMT off

#Don't show welcome message until user has authenticated
DeferWelcome off
DisplayLogin                    /var/ftp/welcome.msg
DisplayChdir               .message true
ListOptions                 "-l"

DenyFilter *.*/

# 禁止root帳號登入
RootLogin off
RequireValidShell off

# To prevent DoS attacks, set the maximum number of child processes
# to 30.  If you need to allow more than 30 concurrent connections
# at once, simply increase this value.  Note that this ONLY works
# in standalone mode, in inetd mode you should use an inetd server
# that allows you to limit maximum number of processes per service
# (such as xinetd).
MaxInstances 30
MaxClients 30 "上線人數已滿"
MaxClientsPerUser 9
MaxClientsPerHost 3

# Set the user and group under which the server will run.
User nobody
Group nogroup

# 設定直接覆蓋、支援續傳、支援FXP
AllowOverwrite on
AllowStoreRestart on
AllowForeignAddress on

SystemLog   /var/log/proftpd/proftpd.log
#TransferLog /var/log/proftpd/xferlog

#log一些自定義格式,根據需要調整或者用默認
LogFormat myxfer "%t %u "%m %f" %a %b bytes %T sec"
LogFormat myauth  "%t %u "%r" %S %a"

ExtendedLog /var/log/proftpd/transfer.log read,write myxfer
ExtendedLog /var/log/proftpd/login.log auth myauth

#關閉 ProFTPD IP 反查功能 
UseReverseDNS off
IdentLookups off

#參觀帳號
TransferRate RETR 0.001 user ftp_guest
TransferRate STOR 0.001 user ftp_guest

#一般的使用者加入ftp群組,家目錄都設在 /home/ftp
#進階的使用者加入ftp-adv與ftp群組,有各自的家目錄,且可以存取 /home/ftp
#所以要限制ftp群組的使用者在/home/ftp下,
#而ftp-adv的使用者只限制在 /home 之下
DefaultRoot ~ ftp,!lab,!ftp-adv
DefaultRoot /home


# Bar use of SITE CHMOD by default

  DenyAll


#使用 mod_lang 模組使 ftp client 可使用指令 FEAT 得知 server 的字碼集為何
LangEngine on

2013年2月16日

Ubuntu DNS設定


安装好Ubuntu之后设置了静态IP地址,再重启后就无法解析域名。想重新设置一下DNS,打开/etc/resolv.conf
cat /etc/resolv.conf
# Dynamic resolv.conf(5) file for glibc resolver(3) generated by resolvconf(8)
#     DO NOT EDIT THIS FILE BY HAND -- YOUR CHANGES WILL BE OVERWRITTEN
内容是一段警告:说这个文件是resolvconf程序动态创建的,不要直接手动编辑,修改将被覆盖。
果不其然,修改后重启就失效了,搜索了Ubuntu下设置DNS的相关资料,总结出两个办法:
方法一 通过/etc/network/interfaces,在它的最后增加一句:
dns-nameservers 8.8.8.8
8.8.8.8是Google提供的DNS服务,这里只是举一个例子,你也可以改成电信运营商的DNS。重启后DNS就生效了,这时候再看/etc/resolv.conf,最下面就多了一行:
# Dynamic resolv.conf(5) file for glibc resolver(3) generated by resolvconf(8)
#     DO NOT EDIT THIS FILE BY HAND -- YOUR CHANGES WILL BE OVERWRITTEN
nameserver 8.8.8.8
方法二 通过修改:
/etc/resolvconf/resolv.conf.d/base(这个文件默认是空的)
在里面插入:
nameserver 8.8.8.8
nameserver 8.8.4.4
如果有多个DNS就一行一个
修改好保存,然后执行
resolvconf -u
再看/etc/resolv.conf,最下面就多了2行:
cat /etc/resolv.conf
# Dynamic resolv.conf(5) file for glibc resolver(3) generated by resolvconf(8)
#     DO NOT EDIT THIS FILE BY HAND -- YOUR CHANGES WILL BE OVERWRITTEN
nameserver 8.8.8.8
nameserver 8.8.4.4
可以看到我们的设置已经加上了,然后再ping一个域名,当时就可以解析了,无需重启。
附:CentOS下修改DNS则容易的多了,直接修改/etc/resolv.conf,内容是:
nameserver 8.8.8.8
nameserver 8.8.4.4
保存就生效了,重启也没问题。

2013年2月15日

Ubuntu 如何設定固定 IP


Ubuntu 如何設定固定 IP ( 設定網路 ) ?

阿舍後來才發現,要給 Ubuntu 的網卡指定固定 IP 的作法,除了要去修改 /etc/network/interfaces 這個檔案之外,其實,還有幾個步驟要做哩 ! 阿舍把它整理如下:

1.修改 /etc/network/interfaces
這是第一件要做的事,就是把 DHCP 的設定給註解掉,然後加入下面的 IP 設定。

#iface eth0 inet dhcp
iface eth0 inet static
address 192.168.1.8
netmask 255.255.255.0

2. 新增或修改 /etc/resolv.conf ( 不是 resolve.conf )
再來是要設定 DNS Server,不過,如果只是要讓兩台電互通,這裡是可以不用設定的,如果需要加入 DNS Server 就要把 DNS 的 IP 填入如下:( 以中華電信的 DNS Server 為例 )

nameserver 168.95.1.1
nameserver 168.95.192.1

3.修改 /etc/NetworkManager/nm-system-settings.conf
如果有在使用 NetworkManager 來管理網路連線的話,就要取消 NetworkManager 對網路連線的控管,所以,要打開 /etc/NetworkManager/nm-system-settings.conf 這個檔案,把下面這個參數設為 False。

managed=false

4.重新啟動網卡
上面的步驟都設定好之後,就可以重開機來讓新設定生效,如果不想或不能重開機的話,也可以用下面這個指令來重新啟動網卡,來讓變更馬上生效哩 !

sudo /etc/init.d/networking restart




轉至http://www.arthurtoday.com/2010/08/ubuntu-ip.html#.UR4rWaXLrnE