ネットdeダビングとftpの両立

ウチの玄箱は、元々外向きのftpサーバを作りたいから導入した経緯もあり、未だに我が家ではftpサーバとして玄箱は重要な役割を担っています。またtoshiba製HDDレコーダーも使っており、そのHDDが一杯になってきたら待避場所としてネットdeダビングで玄箱にデータをダビングしたい欲求も出てきて、そのために常時動いているこのftpサーバをのサーバとしても使えないかと考えるのはごく自然な流れでしょう。

玄箱にtoshiba製HDDレコーダーからダビングするためのクライアントとしては、先人達のブログでも多く紹介されているRDserviceを使って試してみました。ネットdeダビングはftpを使っていることは解っていたので、RDserviceを使うためにはftp(私はproftpd)を停止させなければなりません。しかしftpは止められない(止めたくない)ので、HDDレコーダーのデータをダビングする時は、一度windowsパソコンでVRD(windowsアプリでネットdeダビングと接続できるソフト)に転送したあと、windowsからsamba経由でサーバにファイルを送るという面倒くさいやり方を何年も続けていました。

ところが同じようなことを考えている人も居て、その方のブログを拝見して目からウロコでした。

http://flowernet.gr.jp/masm/RDService.html


仕掛けとしては、同じIPアドレスで同じポートは共有できないため、一つの物理インタフェースに仮想に二つのアドレスを割り振り、サービスをそれぞれ別個にぶら下げるという方法でした。
「なんで早く気が付かなかったんだろう!」と思いましたよ。私はどっちかというと「ftpの別ポートを使ってなんとかできないものか」と思っていたので、まさに目からウロコでした。

そこで、まず先人の方法に沿って、設定を実施。

  • 1.仮想アドレスの追加eth0:0

    我が家のIPアドレスに沿って以下のように設定

    玄箱1(外向けftpサーバ現在のIPアドレス)
    →eth0 192.168.0.132
    玄箱2(新しく作る仮想アドレス)
    →eth0:0 192.168.0.232
     


    起動時にeth0:0を作るため、/etc/network/interfacesに追加

    iface eth0 inet static
    address 192.168.0.132
    network 192.168.0.0
    netmask 255.255.255.0
    broadcast 192.168.0.255
    gateway 192.168.0.1

    iface lo inet loopback

    iface eth0:0 inet static
    address 192.168.0.232
    network 192.168.0.0
    netmask 255.255.255.0
    broadcast 192.168.0.255
    gateway 192.168.0.1

    auto eth0 lo eth0:0



    rebootしてifconfig -aでeth0:0ができることを確認。


  • 2.RDServiceの再コンパイル

    ここは私の力ではどうしようもないところ。RDServiceの動作が解らないので、先人の知恵の通りに実施。

    cd /usr/local/bin/RDService
    patch -p1 < patch
    make

    しかし同じRDService 1.0b5でありながら、うまくpatchが通らない‥‥。
    うまくパッチが当てられなかったファイルは.rejができるので、そのファイルと
    diffを見比べる。
    結局、なぜか微妙にsrcファイルが違うみたいでpatchがうまくできないみたい。

    仕方がないので、diffファイルを見て、手動でpatchする。
    私のところでうまくpatchができなかったのは、FTPService.javaとMain.javaでした。

    やったことはdiffファイルを見ながら、-のラインを+のラインにそれぞれのファイルの中の該当のラインを機械的に置き換えるだけなので、注意深くviでsrcを書き換えした。
    たしか10カ所くらいだっただろうか。


    終わったらmake clean ;makeでコンパイル。無事終了。

    起動のために、usr/local/bin/RDService/RDServiceを修正

    #!/bin/bash
    sudo /opt/java/jre/bin/java -jar /usr/local/bin/RDService/RDService.jar -s -p 55
    00:5509 -d /mnt/share/video/tmp/RD -n miz-box -a 192.168.0.232

    ここで、-aオプションを仮に外して実行してみると、RDServiceが0.0.0.0で立ち上がりエラーになるため、-aオプションが有効になるように変更できたことがわかる。

    念のため、/etc/rc.2/S99rdservice restart (ウチではS99にしてます)
    を実施すると、

    miz-box:/usr/local/bin/RDService# /etc/rc2.d/S99rdservice restart
    Shutting down RDService:
    Starting RDService:
    miz-box:/usr/local/bin/RDService# RDService 1.0 beta 5
    Copyright 2004,2005 raktajino. (http://homepage.mac.com/raktajino/)
    local IP address : /192.168.0.232
    FTP control : port 21
    FTP data : port 5500 - 5509
    FTP buffer size : 1048576
    NETBIOS NS : port 137
    NETBIOS service name : miz-box
    Destination directory : /mnt/share/video/tmp/RD
    Ready.

    192.168.0.232のポート21でRDServiceが開始されたことが解る。


  • 3.inetdの設定
    元のproftpdが192.168.0.132だけを使うように設定します。
    /etc/inetd.confを修正

    192.168.0.132,127.0.0.1:ftp stream tcp nowait root /usr/sbin/tcpd /usr/sbin/prof
    tpd


    行の最初のIPアドレスで、listen時に使うアドレスを指定できるとは、知らなかった‥‥。

    そして忘れずに確認することがあります。
    ウチのproftpdは、もともとstandaloneで動いていたのを忘れていて(inetd.confを設定しているのに!)、起動しても最初に起動するproftpdがすべてのIPアドレスのポート21をおさえてしまったため、RDServiceが192.168.0.232で起動しようとしても、「もう使ってるよ」ってなエラーを吐いて終わってしまいました。

    うまく動かない場合は次の確認をしておくと良いと思います。

    netstat -nap

    正常に起動すれば、それぞれのIPアドレスに対して一つずつlistenに割り当てられます。
    tcp 0 0 192.168.0.232:21 0.0.0.0:* LISTEN
    16351/java
    tcp 0 0 192.168.0.132:21 0.0.0.0:* LISTEN
    1256/inetd

    ※javaはRDService、inetdはinetdから呼ばれるproftpdがlistenしているということ

    standaloneからinet経由で立ち上がるようにするためには、以下を修正。
    /etc/proftpd/proftpd.conf
    :
    ServerType inetd
    :


    これで一応テスト。
    windowsなどから、ftp 192.168.0.132とftp 192.168.0.232を実施して正常を確認。RDServiceの方はIDを要求されれば正常に動いていると思います。


    実機でも確認します。

    d0222779_1362393.jpg

    この裏でftpでファイル転送もできるか確認します。

    ネットdeダビングですが、inetdでもRDServiceでも特に排他制御はしていないので、何個でもプロセスが走りますので、たとえばRD-XS57とRD-H1と同時に同じ玄箱にダビングはできますが、やはりちょっとでも不安定になるとすぐ「ネットワークで障害があり中止しました」に成ってしまう確率が上がるので、無印玄箱なら一つが安心でしょう。
    [PR]
    by tkn384 | 2011-03-27 01:43 | 玄箱

  • 今の好きなことは、暇な時いじる玄箱とか家電とか


    by tkn384

    プロフィールを見る
    画像一覧

    カテゴリ

    全体
    家電
    玄箱
    電子工作
    Raspberry Pi
    未分類

    以前の記事

    2014年 09月
    2014年 08月
    2014年 07月
    2014年 06月
    2014年 03月
    2013年 08月
    2012年 05月
    2011年 05月
    2011年 04月
    2011年 03月
    2011年 02月

    フォロー中のブログ

    メモ帳

    最新のトラックバック

    ライフログ

    検索

    タグ

    その他のジャンル

    ブログパーツ

    最新の記事

    玄箱サーバ死亡
    at 2014-09-23 16:39
    初代玄箱USB増設
    at 2014-08-31 14:05
    RaspberryPiのバッ..
    at 2014-07-21 23:31
    Windows7とWindo..
    at 2014-07-20 12:16
    Windows7のPCを買い..
    at 2014-07-06 01:48

    外部リンク

    ファン

    記事ランキング

    ブログジャンル

    ネット・IT技術

    画像一覧