自宅サーバDebian7に

自宅サーバ内蔵HDD寿命のため、しばらく停止した。データは外付け2THDDに保存しているから、別サーバで共有する方向に考えた。

2THDDは使えきれないほど大容量なので、当時は分割して、1/3はNTFS、2/3はEXT4でした。

しばらくPogoplug MobileにOpenPogo導入して代用したが、2THDDのMountは不安定て、時にはReadOnlyなど不可解な問題が続いた。

やはり自宅サーバ復帰する必要と、外付けHDDの1/3はNTFSをクリアして、Debian7 をインストールした。

海外極安VPSスペシャルーー月1ドル4つIP

いつも見ているVPS情報を見ているサイトから、極安VPSスペシャルなんと月1ドル、しかも4つIP付き。

本家のプロモーション記事はここ:

URPad.net – Back by popular demand, Black friday special!

月1ドルのBASICプランはメモリ厳しいそうで、妻の写真サイトとして大容量が期待するので、結局契約したのは3倍値段のADVANCEDプラン。

ADVANCED
Disk Space: 100 GB
Bandwidth: 1000 GB
Additional IP’s: 3
Ram: 1024 MB
Burstable Ram: 2048 MB
OpenVZ
Was $9.95, Now $3.00
https://billing.urpad.net/cart.php?a=add&pid=421

こんな安くしてサービスはどうなっているか気になるが、値段は日本の1/3、しかも4つIPあるから、なんかいろいろ活用できそう。

 

 

VPSのメール送信できない問題

先日新たに契約したVPS、メール送信できない問題が発生。

1997年から独自ドメイン取得してから、個人サーバ(Web、Mail、DNSなど)は続いていた。メールに関して2007年GoogleのAppsへ移行するまで、個人で構築、管理していたが。それからWordPress(Apache)のお知らせ送信の程度なので、システム標準装備のSendmailで、特に問題なく今日まで運用できました。

先日新たに契約したVPSも、同じくシステム標準装備のSendmailで運用し数日もWordPressからのお知らせメールがなかった、なぜかメールたまり一方でした。

メールログを見ると、送信はできたように見えたが、実はメールキューに溜めただけ。自分メールサーバがSendmailで運用するころ、メーリングリストサービス開設、複数ドメイン運用、スパムメールとの戦いなどいろいろ詳しい時期もあったが、その後5年以上の空白もあり、いきなり戸惑いでした。いろいろ調べて、不備が見つからないので、Technical Supportに連絡してみた。そうするとこんな返事が来た。

We block port 25 by default to prevent spam. We will remove the block once you provide us with rdns.

Continue reading VPSのメール送信できない問題

Raspberry Piで無線ルーターを作る

Raspberry Piを買ってから、いろいろ試した。

Google+でたまたま、Setting up a Raspberry Pi as a WiFi access point記事を目にした。制作にかかった。家にはすでに常時2台無線ルーターが稼働しているので、ただの無線ルーターじゃ面白くないので、そのうえ同じサイトのOnion Pi の記事を参考しながらTor Proxyサーバを立てた。

Proxyサーバが匿名アクセスなどいろいろメリットがあるが、サーバのプロとしての用途もいろいろ、たとえば外から自宅サーバのアクセス性をテストするとか、自宅限定テストサイトが本当に限定されたかとか、自宅からのみアクセスを制限した管理ツールが本当に制限されたとか、自宅以外のIPからのアクセスのテストが時々必要になる。今までわざわざVNCで外にあるサーバの画面を開いてから覗くなり、スマートフォンのWiFiをOFFして、モバイルネットから覗くなりなど対応してた。

既にRaspbianのインストール、USB-WiFiの接続が済んたので、上記のページを参考に進めると、順調に無線ルーターとして機能し、Tor Proxyサーバも立てた。

試しに、iPhoneから立てたRaspberry Pi無線ルーターに接続すると、確かに自宅サーバ以外のIPでウェイブサイトにアクセスすることができた。

詳しい製作過程は、気が向いたらWIKIへ(http://linux.uc4.net//xoops/modules/xpwiki/)まとめる予定。

Raspberry Pi ネットワークカメラを作る

RaspberryPiに に Webカメラを接続して動画を配信してみる 定番のストリーミングアプリとして、

  • mjpg-streamer
  • motion
  • ffmpeg

があるらしい。ここはmotionを試す。 使った機材:

  • RaspberryPi 本体
  • 内蔵マイクタイプ130万素Webカメラ:UCAM-C0113FBPN[ELECOM(エレコム)]
  • マイク内蔵/FullHD対応オートフォーカス搭載200万画素Webカメラ:UCAM-DLD200BASV[ELECOM(エレコム)]

Webカメラどちらも直結でmotionできた! UCAM-DLD200BASVの方が、内蔵マイクも認識されるので、そのうち音声ストリーミングも試す予定なので、こちらを使って実験を進める。 FireShot Screen Capture #006 - '(JPEG 画像, 320x240 px)' - 192_168_0_201_8081

詳しい製作過程は、WIKIへ(http://linux.uc4.net//xoops/modules/xpwiki/)どうぞ。

My works

  • lsusb
Bus 001 Device 002: ID 0424:9512 Standard Microsystems Corp.
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 001 Device 003: ID 0424:ec00 Standard Microsystems Corp.
Bus 001 Device 004: ID 0c45:7401 Microdia
Bus 001 Device 005: ID 056e:7009 Elecom Co., Ltd   <--- Elecom UVC Webカメラ
  • ls /dev/video0
  • apt-get install motion
  • vi /etc/motion/motion.conf
control_localhost off 
webcam_localhost off
  • motion -n

ブラウザで以下のアドレスにアクセスすると、配信されている画像を確認することができる。 (ご自分のRaspberry PiのIPアドレスに書き換えて)

Add info anchor.png

Raspberry Pi wireless 温度計の制作

RaspberryPiの検索で、たまたまUSB温度計を使ってLinuxから室温を計測する を発見

それから、matoken’s wiki. Linux/Device/サンコーレアモノショップ_USB温度計_AKIBA58で、eBay 日本で買うより安いという情報を頂いたので、買ってみた。

同じの品物ないが、類似したものを一個$6.49で買った。送料無料!(しかし安いものがいっぱいあるからついつい、84ドル超える買い物になった。)

P2190091

届いたら、早速RaspberryPiに刺してみたら、

[702457.972061] usb 1-1.2: new low-speed USB device number 5 using dwc_otg
[702458.078478] usb 1-1.2: New USB device found, idVendor=0c45, idProduct=7401
[702458.078511] usb 1-1.2: New USB device strings: Mfr=1, Product=2, SerialNumber=0
[702458.078528] usb 1-1.2: Product: TEMPerV1.4
[702458.078543] usb 1-1.2: Manufacturer: RDing
[702458.093433] input: RDing TEMPerV1.4 as /devices/platform/bcm2708_usb/usb1/1-1/1-1.2/1-1.2:1.0/input/input0
[702458.094931] hid-generic 0003:0C45:7401.0001: input,hidraw0: USB HID v1.10 Keyboard [RDing TEMPerV1.4] on usb-bcm2708_usb-1.2/input0
[702458.104938] hid-generic 0003:0C45:7401.0002: hiddev0,hidraw1: USB HID v1.10 Device [RDing TEMPerV1.4] on usb-bcm2708_usb-1.2/input1

認識された。

こちら(http://hpv.cc/~maty/pukiwiki1/index.php?Linux/Device/サンコーレアモノショップ_USB温度計_AKIBA58)を参考に、ソースコードを取得し、カスタマイズする。

詳しい製作過程は、WIKIへ(http://linux.uc4.net//xoops/modules/xpwiki/)どうぞ。

# apt-get install build-essential libusb-0.1-4 libusb-dev git

一部パッケージが見つからない、失敗に終わった。パッケージ更新する。

# apt-get update

# apt-get install build-essential libusb-0.1-4 libusb-dev git

今度上手く完成した。

temper ソースをgit から。

# git clone git://github.com/bitplane/temper.git

# ls temper

60-temper.rules  log.sh  Makefile  pcsensor.c  pcsensor.h  README  temper.c

# cp -p temper.c temper.c.org

# vi temper.c

# diff temper.c.org temper.c

44c44
<               utc = gmtime(&t);
---
>               utc = localtime(&t);
47c47
<               strftime(dt, 80, "%d-%b-%Y %H:%M", utc);
---
>               strftime(dt, 80, "%Y-%m-%d %H:%M:%S", utc);

# make

# mv temper /usr/local/bin/

# chmod u+s /usr/local/bin/temper

# temper

2013-02-16 03:48:08,30.396763

ちゃんと温度の表示ができた。しかし30度は高いね!USB延長ケーブルを付けて再度計測。

$ temper

2013-02-16 03:55:17,23.710213

23度くらい、室温に近いかも。

運用 anchor.png

PHPでWEBに表示するため、UNIX通算時間の表示、ログの生成、cron に登録、ログの解析が必要。

# vi temper.c

# diff temper.c.org temper.c

44c44
<               utc = gmtime(&t);
---
>               utc = localtime(&t);
47c47
<               strftime(dt, 80, "%d-%b-%Y %H:%M", utc);
---
>               strftime(dt, 80, "%Y-%m-%d %H:%M:%S", utc);
49c49
<               printf("%s,%fn", dt, tempc);
---
>               printf("%ld,%s,%fn", t, dt, tempc);

5分置きに、/var/log/temper.logにログを吐き

*/5 * * * * /usr/local/bin/temper >> /var/log/temper.log

最後は、PHPでWEBに表示する

オーダーした、Webカメラもそろそろ届くので、無線で画像、音声、温度、湿度を送るフィールドサーバみたいなものを作りたいね!

Ref anchor.png

参考:

  1. http://model.job.affrc.go.jp/FieldServer/フィールドサーバ

Mount box.net on Linux using davfs2

一年以上まえに、box.netのプロモーションで50G容量も得られ、DropBoxより使いつらいから、活用されてなかった。

同じタブレットにファイル同期のため、DropBoxすでに共通アカウントを設定されたから、box.netを起用するため、再調べるきっかけになった。

WINDOWSでファイルの同期ができて、Linux でもdavfs2を使えば同期できるらしい。早速試してみることに。

***

まずDebianサーバに。

  1. # apt-get install davfs2
  2. # mkdir /mnt/box
  3. # mount -t davfs https://www.box.net/dav /mnt/box

 

これだけって、Debianから使えるようになった。試しに178M のファイルをコピーして見て、一見すぐ終わったが、lsで内容をみようとしたら、なかなか結果が返ってこない。しばらくすると、コマンドプロンプトが返ってき。

box.netのWeb側を確認したら、ファイルがあり、一応同期されたみたい。

/etc/fstabに下記のように書けば、自動Mountもできるらしい。

https://www.box.net/dav /mnt/box davfs rw,user,noauto 0 0

しかしWINDOWSで見てみたら、いつ経っても同期される動きが見れない。

***

次はVPSのCentOSで試す。davfs2のインストール方法がCentOS5とCentOS6がちょっと違って、残りのステップはDebianと同じ。

CentOS5

  1. yum install fuse
  2. wget http://rpmforge.sw.be/redhat/el5/en/x86_64/rpmforge/RPMS/fuse-davfs2-1.2.2-2.el5.rf.x86_64.rpm
  3. rpm -ivh fuse-davfs2-1.2.2-2.el5.rf.x86_64.rpm

 

CentOS6

  1. rpm –import http://apt.sw.be/RPM-GPG-KEY.dag.txt
  2. wget http://packages.sw.be/rpmforge-release/rpmforge-release-0.5.2-2.el6.rf.x86_64.rpm
  3. rpm -K rpmforge-release-0.5.2-2.el6.rf.x86_64.rpm
  4. yum install -y davfs2

個人サーバは、VPSへ移行

いままでの個人メインサーバの設置は、数回方針の変更があった。

  • 1997- アメリカレンタルサーバ(DigiWeb)を利用
  • 1999- 個人単体サーバ(ISPスペース借り、自宅サーバ、オフィスサーバ…転々と)
  • 2009-アメリカレンタルサーバ(DreamHost)を利用
  • 2013- 日本VPS(CloudCore)を利用

最近まで、一時海外滞在が多いため、アメリカレンタルサーバ(DreamHost)を利用した。容量、帯域が無制限、複数IP利用でき、管理が容易の代わりに、サーバ設定の自由がすくない。大きな処理になるとタイムアウトなど、ほかの利用者の状況に影響されやすい。

特に2012年元旦前後の年末年始は、DreamHostはウィルスで大混乱。この混乱の対策で、年末年始台無しに。また当時問題絞るため、感染恐れがあり、あまり使っていないサイトは消去して、そのためいま一部復帰したくでもできない状態。(その後DreamHost方針を変えて、異なるユーザアカウントの間完全に見えないようなセキュリティ強化をした。)

この一年間海外、日本VPSが複数業者を試用して、特にCloudCoreが以前から注目して、ビジネスパートナーに推薦して利用されているが、今回自分の個人メインサーバもCloudCoreにした。とくにCPU 物理 1 Core 専有がいい、ほかの利用者の状況に影響されないから!専有サーバの感じで使える。

たくさんのドメインとサイトがあるから、移転が一週間くらいかかり、パフォーマンスチューニングとかして、漸く使えるところに来た。

Raspberry Pi 二台目始動

Raspberry Pi一台目Webサーバとして16GのSDカードを積んで遠方で稼働し始めた。

Raspberry Pi 二台目もそろそろ始動。

P1300012

今回はクリアケースで、8GのSDカード(左側青いもの), USB-WiFi無線通信モジュール(右側白いもの)を装備、ワイアレスの何かを試したいともう。

手元にある http://www.amazon.cn/MERCURY-水星网络-MW150US-超小型150M无线USB网卡/dp/B008FK96QG/ で購入した。 USB-WiFi無線通信モジュール(右側白いもの)を装備した様子

# lsusb — 認識されたことを確認。

Bus 001 Device 002: ID 0424:9512 Standard Microsystems Corp.
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 001 Device 003: ID 0424:ec00 Standard Microsystems Corp.
Bus 001 Device 004: ID 0bda:8176 Realtek Semiconductor Corp. RTL8188CUS 802.11n WLAN Adapter <--- これです!
Bus 001 Device 008: ID 0c45:7401 Microdia

ここの Wifiアダプタ(チップセットがRTL8188CUSのもの)のドライバはカーネルにすでに組み込まれているので、非常に簡単なセットアップだ。

# lsmod — カーネルモジュールの読み込み状態で確認

Module                  Size  Used by
snd_bcm2835            10636  0
snd_pcm                60411  1 snd_bcm2835
snd_seq                44988  0
snd_timer              16257  2 snd_pcm,snd_seq
snd_seq_device          4265  1 snd_seq
snd                    41809  5 snd_bcm2835,snd_timer,snd_pcm,snd_seq,snd_seq_device
snd_page_alloc          3176  1 snd_pcm
8192cu                457513  0  <--- これです!
leds_gpio               1920  0
led_class               2329  1 leds_gpio

# iwconfig — ワイヤレス設定から確認

wlan0     unassociated  Nickname:"<WIFI@REALTEK>"
          Mode:Managed  Frequency=2.412 GHz  Access Point: Not-Associated
          Sensitivity:0/0
          Retry:off   RTS thr:off   Fragment thr:off
          Encryption key:off
          Power Management:off
          Link Quality:0  Signal level:0  Noise level:0
          Rx invalid nwid:0  Rx invalid crypt:0  Rx invalid frag:0
          Tx excessive retries:0  Invalid misc:0   Missed beacon:0
lo        no wireless extensions.
eth0      no wireless extensions.
Page Top

設定 anchor.png

# vi /etc/network/interfaces

auto wlan0
allow-hotplug wlan0
iface wlan0 inet manual
wpa-roam /etc/wpa_supplicant/wpa_supplicant.conf

# vi /etc/wpa_supplicant/wpa_supplicant.conf

network={
 ssid="_SSID_"
 proto=RSN
 key_mgmt=WPA-PSK
 pairwise=CCMP TKIP
 group=CCMP TKIP
 psk="_WPA_SHARED_KEY_"

}

# ifdown wlan0

# ifup wlan0

ioctl[SIOCSIWAP]: Operation not permitted
ioctl[SIOCSIWENCODEEXT]: Invalid argument
ioctl[SIOCSIWENCODEEXT]: Invalid argument

# ifconfig wlan0

wlan0     Link encap:Ethernet  HWaddr 14:cf:92:0b:91:84
         inet addr:192.168.0.123  Bcast:192.168.0.255  Mask:255.255.255.0
         UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
         RX packets:2573 errors:0 dropped:4062 overruns:0 frame:0
         TX packets:13 errors:0 dropped:0 overruns:0 carrier:0
         collisions:0 txqueuelen:1000
         RX bytes:307880 (300.6 KiB)  TX bytes:1871 (1.8 KiB)

運用 anchor.png

サーバとして運用するつもりなので、固定IPの設定を行う

また、eth0はケーブルが抜けると、wlan0も切れてしまうので、いろいろと調べて、ifmetric 導入にした。

# apt-get install resolvconf — chen 2013-02-19 (火) 01:30:55

# apt-get install ifmetric — chen 2013-02-19 (火) 01:31:14

# vi /etc/network/interfaces

auto lo
iface lo inet loopback
# Primary wired network interface [eth0]
auto eth0
iface eth0 inet static
       metric 1
       address 192.168.0.201
       netmask 255.255.255.0
       gateway 192.168.0.1
# DHCP
#iface eth0 inet dhcp
# Wireless interface [wlan0]
auto wlan0
allow-hotplug wlan0
iface wlan0 inet static
       metric 0
       address 192.168.0.207
       netmask 255.255.255.0
       gateway 192.168.0.1
       wpa-ssid _SSID_
       wpa-psk _WPA_SHARED_KEY_
       # wpa_roam /etc/wpa_supplicant/wpa_supplicant.conf

# ifdown wlan0

# ifup wlan0

これてeth0はケーブルが抜けでも、wlan0ちゃんと繋ぐ。

Ref anchor.png

Raspberry Pi power on first time

Raspberry Piのケースもそろい、新しい4G容量のSDカードも購入、いよいよ電源を投入。

その前、まずインストール方法を調べた。インターネット接続されてるなら、berrybootが一番楽らしい。小さいファイルを解凍してsd cardに入れるだけ、しかも複数OS入れられる。

P1160876

Piとテレビの間、HDMIケーブルで繋ぎ、LANケーブルでハブにも繋ぎ、手元にある無線マウス、無線キーボードもそれぞれUSBでつなぎ、用意したSDカード挿入、最後5V電源つなった様子。

インストール手順をまとめる:

  1. http://www.berryterminal.com/doku.php/berryboot サイトを開く。
  2. berryboot-20120904.zip をダウンロードする。
  3. カラのsd cardのルートににすべてファイルunzip
  4. sd cardを PIに挿入
  5. ルータと PI にケーブルをつなぐ
  6. PI 電源を入れる
  7. PI 起動、sd cardのフォーマット
  8. OSを選んでインストール (とりあえずDebian)
注意:フォーマットする際、デフォルトの ‘ext4 (no discard)’  ではなく、 ‘ext4’を選ぶ。

P1160879

AI from EDGE to CLOUD