Lion ServerでiChatサーバーを設置する

ちょっと必要があってLion Server上にプライベートなチャットサービスを立ち上げるべく、iChatサーバーの設定に挑戦しました。

Lion ServerのiChatサービスには基本的にほとんど設定の余地はなく、

  • 他のサーバーと連携するか(する場合はドメイン指定)
  • チャットログを保存するか

しかありません。ぶっちゃけスイッチをONにするだけで起動します。

ただしウチ限定の現象かも知れませんがハマったので覚え書き。

■ポート開放

ルーターで開放(Lion Serverにリダイレクト)する必要があるポートは、

ポート番号 プロトコル 備考
5222 TCP チャット
5223 TCP チャット(SSL)
7777 TCP ファイル送受信
5678 UDP  
16384-16403 UDP ビデオチャット

という感じでした。この辺りを見ると他にもあるっぽいですが、とりあえずウチでは上記のみで一通り使えてる気がします。全クライアントにSSL利用を強制できるなら5222は開けなくてもいいかも。サーバー間連携を使う場合は5269(TCP)とかも必要でしょう。またウチのルーターはポート番号を範囲指定できす、ビデオチャット用のポートを全て個別に指定することはできず、欄がある限りで16384-16390のみ開放していますが、これもいまのところ問題なさげです。同時利用者数が増えたりすると足りなくなるのかも知れません。

■認証が通らない

次にハマったのが認証で蹴られてログインできない現象。「サーバー」アプリの「ログ」でiChatのサービスログをみると、

Jul 12 20:25:55 jabberd/c2s[52503]: SASL callback for non-existing host: hoge.com

というエラーが記録されています。どうも、アカウント名として、ホスト名無しの「ユーザ名@ドメイン名」形式は標準では受け付けないようです。「ユーザ名@ホスト名.ドメイン名」なら問題ないんですが、ウチの場合Lion Serverを外向けDNSに登録してなかったし、無駄にアドレスが長くなるし、ということで、こちらを参考に設定ファイルを直接書き換えました。

/etc/jabberd/sm.xml:

<local>
        <!– Who we identify ourselves as.
         Users will have this as the domain part of their JID.
         If you want your server to be accessible from other
         Jabber servers, this IDs must be FQDN resolvable by DNSes.
         If not set, the SM id is used. –>
        <id><myserver>.<mydomain>.com</id>

/etc/jabberd/c2s.xml:

<id require-starttls="true" pemfile="/etc/certificates/frontier.orange-road.com.947515504262B5757AB90D084DF 652A0EA8E0B76.concat.pem" private-key-password="C4D239B3-87B9-4F58-9D3E-541587EFD7EF" cachain="/etc/certificates/frontier.orange-road.com.947515504262B5757AB90D084DF 652A0EA8E0B76.chain.pem"><myserver>.<mydomain>.com</id>

それぞれ赤字部分を削除し、iChatサービスを再起動すればOKです。この手の編集はバージョンアップなどで元に戻ってしまう可能性もありますが、まぁ当面様子をみようと思います。

■クライアント

Lion まではiChat、Mountain Lion以降は「メッセージ」を使います。Lion + β版「メッセージ」で動作確認しました。またiChatサーバーはJabberのXMPPというプロトコル互換なので、Windows用の互換ツールでも(少なくともプレゼンスやテキストチャットのレベルは)問題ないと思います。

また残念ながらAppleからiChatクライアントはリリースされていませんが、Jabber/XMPPアプリは数多くあります。例えばimo instant messengerは日本語も含めて大丈夫っぽいです。画像もアップできますが、imo社のサーバーに置かれてURLが先方に届く形式のようで、プライベートな写真のやりとりには向かないかも知れません。

他にMonalはデザインも良く無料でなかなかなのですが、残念ながらiOS5の日本語キーボードサイズ変更問題に対処できておらず、日本語<->英語と切り替えると入力欄に文字が打てなくなる問題を孕んでいます。更新されたら是非こちらを使いたいとは思います。

その他、Cisco Jabber IM for iPhoneはログインできず、ボイスチャットも対応というOctro Talkはすぐにログイン、ログアウトを繰り返して実用にはなりませんでした。有料アプリではBeejiveIMシリーズ辺りが評価が高いようですが、まぁimoで必要最低限のことができそうなので試していません。

■iChatでできること

で、そもそもな話、iChatでなにができるのか、SkypeやiMessageとなにが違うのか、という話。

まず大きなのは自前のサーバーを立てることで、クローズドなチャットシステムを構築できるということですね。企業内でのやりとりをするのにSkypeやLive Messengerなどの半ば公のサービスを使えないところも少なくないでしょう。

Mountain Lionになって「メッセージ」アプリと統合されるので、iChatのために別アプリを立ち上げておかなくても良くなるのも嬉しいです。

機能面では、オンラインプレゼンス(退席中などのステータス表示)、テキストチャ
ット、ボイスチャット、ビデオチャット、画面共有など競合サービスにひけをとらない感じです。ただしビデオチャットの画質はSkype HD等には及ばず、従来のSkypeやLiveなどと同レベルという印象です。またiChat Theaterという機能で動画やPDFなどを共有することができます。ビデオチャット中に動画ファイルをドロップすると、ファイル転送するか再生するのか選択肢が表示され、再生すると向こうとこちらで同期して動画視聴ができます。この時、スライダーを動かしたり一時停止したりといった操作はファイルをドロップした側の人のみ可能です。これも残念ながら画質はVGA程度です。また常に相手のカメラ映像も並んで表示され、全画面で動画を表示することはできません。でもまぁ動画を観ながらチャットというのはなかなか楽しげな気はします(ちなみにYouTube上の動画であればGoogleのHangoutで似たようなことが可能です)。

2012.07.15追記:

画面共有は相手側の操作もできますね。これはSkypeなどでもできないのでWindows同士でのLive Messengerに匹敵するメリットです。遠隔のMacをサポートする時などは便利です。Live Messengerはルーター環境によってつながらないこともあって、最近はSkypeで画面を”見るだけ”で操作は相手に口頭で伝えてやってもらうことが多かったんですが、Mac同士ならウチのサーバーにアカウント発行してつないでもらうのがヨサゲ。

Thunderbolt – ギガビットEthernetアダプタ 簡易ベンチ

発売と同時に購入しておいた「Thunderbolt – ギガビットEthernetアダプタ」をMacBook Air Mid 2011で試してみたので、USBタイプとの簡易比較ベンチを載せておきます。手頃なベンチマークソフトを知らなかったので、1.09GBの動画ファイルをFinderコピーしてストップウォッチ計測。しかも面倒なので1回ずつ。参考までに。

SDIM0143

■仕様機材

クライアント: MacBook Air 11” (Mid 2011) MC969J/A w/OSX 10.7.4

ファイルサーバー: Synology DS1511+ (RAID5)

比較アダプタ: BUFFALO LUA3-U2-AGT (USB接続Gigabit Ethernetモデル)

WiFiアクセスポイント: AirMac Extreme (300Mbps世代) 5GHzで接続

■速度どん!

仕様アダプタ コピー秒数
Wi-Fi接続 63秒
BUFFALO LUA3-U2-AGT 27秒
Thunderbolt – ギガビットEthernetアダプタ 10秒

予想以上の差にビビった!やはりUSB2.0はボトルネックになってたんですねぇ。

■MacBookがThunderbolt対応モデルならこれ一択

写真の通り、サイズも大幅に小型化されてますし、実売価格もほぼ同じ。これから買うならUSBタイプを買う理由はほぼない気がします。ただ今後Thunderboltを使う外付けストレージやモニタが一般化してくると、MacBook AirやRetina以外のProだと取り合いになりそうですね。ハブは出ないのかなぁ…

トラックパッドパッドとしてのELECOM MP-115

Photo-1

実家でMacのMagic Trackpadでしばらく作業をしていると、写真の赤丸の部分が痛くなってきます。ちょっとテーブルが低いのか腕の重みがかかってしまっている感じ。

そこでマウスパッドならぬトラックパッドパッド(?)が欲しくなり物色。普通のマウス用のリストレストやリストレスト付きマウスパッドのだとトラックパッド用としては(山が)高すぎるだろうということで、なるべく低めのものを探したところ、ELECOMのリストレスト付きマウスパッドMP-115[製品ページ]を発見。山が9mmバージョンと17mmバージョン(MP-117)と複数ラインナップするこだわりようで、パッド部分も手首の負担を軽減する為に右下がりの傾斜がつけてあるというのも興味深い。色は白と黒。素手でずっと触れるものだけに白は汚れが気になりそうだったので黒をチョイス。

(ちなみに、いわゆるおっぱいマウスパッドの類だとちょうど谷間部分が低くなってるからちょういどいいんじゃね?とも思ったんですが、さすがに実家で使う勇気がなかったw。そもそもトラックパッドを上に置いたら絵見えないですしね。)

で、早速到着。パッケージの開けにくさ、ゴミの分別しづらさは国産製品にしては最悪の部類でした。手触りがすべすべしていてとても良いです。たぶんほとんど水分を吸わないので夏でもじめっとしたりはしないんじゃないかと(逆に汗で濡れた様になるかもは知れません)。裏地は中身のシリコン素材(?)が剥き出しになっておりかなり摩擦計数が高いです。置いたまま移動するのは基本的に不可能。頻繁にパッド位置をズラしたい人にはちと不便かも。

そして、早速Magic Trackpadを載せてみたところ、ひとつ大きな問題が。トラックパッドごと柔らかいパッドの上に載せると、クリックしようとパッドを押し込んでも全体が沈み込んでスイッチが反応しにくいw。考えてみれば当たり前ですね。結果さらに強い力で押す必要が出て逆に負担が上がることにorz。

ということで、初日からハサミでブッタ切りましたw。

Photo-2

パッド部分の傾斜の威力を味わえないのが残念ですが、しゃーなしです。

切り口が見えてしまうとちょっと見苦しいですが、基本写真のように自分の方には向かないのでまぁいいかと。ちなみに中のシリコン素材は白です。白モデル買っておけば目立たなかったかもですね。素材的に汗が染みて黄ばむようなこともしなさそうな感触だし。

ビジュアル的にはちと微妙ですが、とりあえず手首の該当部分が赤くなったりはなくなったように思います。

ちなみに自宅の方ではコレを使ってるせいか、そもそもデスクの高さが良いのか、こういう症状を感じたことはありません。

新AirMac Express速攻レビュー

とりあえずWWDC 2012と同時に発売された新製品では、新型AirMac Express (MC414J/A)とThunderbolt GigaBit Ethernetアダプタを購入しました。MBP Retinaは保留。高解像度対応アプリが増えて来ないとまだあんまり意味ないかなと思って。そもそもほとんどは自宅で外部モニタつないで使ってるだけだし。来月CyberNaviがなければ買ってたと思いますが…

で、早朝AppleStoreの爆寸が解けた直後にオーダーしたら翌日の朝イチに届きました。

IMG_2214

パッケージもAppleTVそっくり。うっかり色違いモデルが出たのかと勘違いしそうです。


IMG_2215

同梱物。というか電源ケーブルのみ。あと箱の底に簡単なマニュアル。設定はMac/Windows/iOS用のAirMacユーティリティで行います。iOS版はちょうど昨日対応のアップデートが来てましたね。

従来のコンセント直付け型に比べると設置の自由度は増しましたが、出張などに持っていく時には少し荷物が増える感じで痛し痒しですね。まぁ、σ(^^)は他にモバイル用ルーターもってるので、多分これを持って出かけることはないんじゃないかと。


IMG_2220

とりあえず実家2Fに増設用アクセスポイントとして仮設置。

AirMacだから当たり前ですが白色LEDではなくグリーンとオレンジ。正常動作している時は写真のようにグリーンに点灯します。


IMG_2221

お約束でAppleTV積んでみました。当たり前ですがピッタリ。

ただ両者とも底板がフラットなので密着度が高くて廃熱が心配ですね。

AirMac Expressはしばらく稼働させた状態で触ってみるとほんのり温かいです。旧モデルよりはマシかも知れませんが、格段に消費電力が減ったというほどではないのかも知れません(マニュアルの仕様欄をみても消費電力が書いてない)。

■iPhoneのみで設定完了できるかチャレンジ

まぁ、この辺りは従来モデルとかわってないとは思うんですが、いい機会なので本当にできちゃうのか検証してみました。ゴールは、1Fの無線LANルーターの電波がやや弱い2Fでの電波環境を改善すること。2Fには有線LANが来ているのでこのAirMacはブリッジモードでアクセスポイントとして動作させる、ということになります。

そしていきなりハマる。AppStoreからインストールした「AirMac」アプリを起動して待てど暮らせど未設定AirMacが検出されない。Macの方はなにもしなくても勝手にAirMacユーティリティが起動したんですが。

もしかして既存WiFiにつながっちゃってるとダメなのかな?新しいESSIDが飛んでたりするのかな?と思って「設定」アプリ->「Wi-Fiネットワーク」を開いてみたらびっくり。

Photo-1

なぜかここに「AirMacベースステーションを設定…」というグループが出現し、「AirMacベースステーション」が検出されていました。

ちなみにここでひとしきり設定した後は「AirMac」アプリからもちゃんと見えるようになりました。もしかすると更にしつこくアプリで待ってれば見えたのかも知れませんが…

Photo-3

こんな感じで設定ができます(「AirMac」アプリではなく「設定」アプリの画面です)。もしかしてAirMacアプリいらなくね?とか思ったり。

あいからずApple的にユーザにわかりやすかろうと各種用語を一般的な言葉に置き換えてるせいで、逆にわかってる人間にはなんのことやらわからないというジレンマが発生中。「ネットワーク」がESSID、「装置」はデバイス名、パスワードは(暗号鍵ではなく)管理者パスワードを指すようです。

驚いた、というかなるほどと思ったのは、「ワイヤレスネットワークの拡張」(ちなみにこれはいわゆるWDSとは別の機能)の設定を進めていっても暗号鍵を入れる欄がないまま完了。しかもいつのまにか正しい暗号鍵が設定されています。一瞬ビビリましたが、これ多分iPhoneに保存されているものをそのまま流用したんでしょうね。うーん、いいのかなぁ。まぁいいんだろうなぁ。ちなみに設定されたパスワードを生テキストで覗くこともできちゃいました。つまり、暗号鍵がわからなくなったWiFiネットワークとそれにつながっているiOS端末があったら、AirMac買ってくればパスワード調べられますねw。

結局「ワイヤレスネットワークの拡張」は使えませんでした。親がBUFFALO製だからでしょう。言葉が曖昧ですが、これはエクステンダー動作(無線中継)っぽい、でもWDSとは別のプロトコルという理解。まぁ、もともとせっかく2Fにも有線LANは来ているのでそれを活用したかったし、「ワイヤレスネットワークの作成」に変更して同一ESSIDを設定しました。このモード変更は「AirMac」アプリから行いました。

Photo-4

アクセスポイントモードに設定するにあたってひっかかったのは、EthernetケーブルはLANポートではなくWANポートにつなぐ、という点。これはちょっと国産ルーターとは違うルールですね。

写真は「設定」アプリでのウィザード中のイラスト。ただの四角い箱の絵じゃわかりにくいから差別化しようとしたんでしょうけど、歴代AirMacにアンテナ生えた機種なんかねぇよw!これかえってややこしいことになってる気が。ここはちゃんと機種を検知して写真で示してくれるとAppleっぽさ炸裂でいいんだけどなぁ。

 

あと、単に「ワイヤレスネットワークの作成」モードにしただけでなNATとDHCPが有効で二重NAT状態になっており、別途ブリッジモードに切り替えてやる必要がありましたが、これはちゃんとエラーのバッジが出て説明が出るので親切でした。

 

という感じで、すこしつまづきつつも一応iPhoneだけで設定を完了できました。んー、既存ワイヤレスネットワークの補強とか凝ったこと考えなければもう少し簡単にできたのかも知れませんが、やっぱり知識ほぼゼロの人にはまだちょっと難しいかなという印象です。

 

■電波の飛びはどうか?

特に比較対象はないので感覚的なものですが、木造2階建てを1台でカバーできる感じではないです。ただ外付けアンテナのついたBUFFALOの301Nと比べて劣るということもない気がします。2Fにコレ、1Fに301Nを設置した状態で、MacBook Air上のiStumblerで強度を測ってみましたが、それぞれの至近でみるとちょうど逆転するような感じ。

あと実家に5GHz対応機を設置するのも実は初めてなのでこれも比較対象がないんですが、予想より飛ばないな、という印象。まぁ周波数が高いんだから当たり前か。混信しないとで速度は出やすいんでしょうけど。301Nの電波が届かないので5GHz機種にリプレイスしようかなぁと思っていた時期がありましたが、2Fに別APを設置するという方向の方が正しかったようです。

実は元々余っていたPlanexのAPを同一ESSIDで2Fに設置してあったんですが、なぜかVitaとSONY Tablet Sがそれを掴んでくれず、1Fのギリギリの電波を使おうとしてしまう傾向があって困ってました。iOS系はそんなことないんですが。AirMac Expressに変えてみたSONY Tablet Sの方はちゃんと同じ室内にある強い電波のこちらを使ってくれるようになったみたいです。しかしVitaは変わらず。うーむ。AirMac Expressは基本的に横浜で使う用に買ったんですが、実家もこれで改善するようならPlanexをリプレイスしようと試験してみたんですよね。でもまぁソニタブでマシになるなら変える価値あるのかなぁ。AMEは高いからもっと安いのにしたいところだけども。5GHzにこだわらないなら3,000円くらいのBUFFALOのルーターにしますかね。

2012.06.15追記:

iPadで「おやゆびでお」を使ってストリーミング再生する時の安定度が格段にあがりました!今までのPlanexの11n(2.4GHz)機だとスワイプしまくってるとよく止まったりアプリが落ちたりしてたんですが(特にHD画質)、新AMEだと全く問題無し。設置距離は同じなんで、単純にAMEの性能なのか、あるいは5GHzの恩恵でしょうか。ともあれこれはもうPlanexに戻る気になれないので、家族と折半で実家にももう一台購入することにしました!

■光出力は44.1Hzのままなのか?

AppleTVが出ても頑なにAirMac ExpressでAirPlayしていた層がいます。AppleTVの光出力は48Hz固定で、音楽CDからリップした44.1Hzのオーディオファイルを鳴らす時に一度無駄に変換されるので音質的には不利だというのがその理由です。σ(^^)もそこまで耳が良い訳ではないのですが、スペック厨なのでなんか損した気分を感じていました。

さて新AMEはどうなんでしょ?残念ながら今周波数表示してくれる光入力付きデバイスが周りにないので、2chあたりの報告待ちです(探せばMacのソフトで表示できるのがあったりするかな?)。

ただσ(^^)の糞耳でAVアンプにAppleTVとつなぎかえて聞き比べをしてみたんですが、確かに音が違う気がしました。どちらが好ましいかというと微妙なんですが、AMEの方がクリアな感じ、AppleTVの方が音が太い感じ。単に音量が違うだけかもw。あと光出力端子がAppleTVは角形、AMEは丸形なので、丸ケーブルの先端に角変換アダプタをつないでテストしてます。ピュアな方からするとこれだけで噴飯ものかも知れませんw。

同日追記:

MacのWave Editorというツールで録音設定などは一切いじらずに録り比べてみたところ、AppleTVで48kHz、新AMEで44.1kHzという表示が得られました。スクショ奥がAppleTV、手前が新AMEです。やったね!

samplerate

OSX LionのSpotlightが機能しない時の覚え書き

我が家のMacBook Pro Early 2011はだいぶ前からSpotlightが不調でした。よくあるmdsの暴走でCPU占有率が上がったりファンがうなりつづけたり。で、ググると無効化したりインデックス再構築する方法が出てくるんですが、ついにウチは正常化にいたらずしばらく放置してありました。

ところが今日になってMac AppStoreのアプリの更新で通知されていないものがあることに気付き、どうもSpotlightでアプリのインデックスができてないとそうなるということらしい。ということでもういちど気合いを入れてSpotlight正常化に挑戦しました。

現象としては、「コンソール」にspotlight関連のエラーが延々と表示。

そして左サイドバーから「システム診断レポート」を開くと、十数秒置きに下記エラーが作成されていました。

 

Version:         ??? (???)
Code Type:       X86-64 (Native)
Parent Process:  launchd [1]

Date/Time:       2012-05-28 02:58:46.552 +0900
OS Version:      Mac OS X 10.7.3 (11D50)
Report Version:  9

Anonymous UUID:                      B50639EE-C9EB-4547-AE92-F0194F197C9D

Crashed Thread:  0

Exception Type:  EXC_BREAKPOINT (SIGTRAP)
Exception Codes: 0x0000000000000002, 0x0000000000000000

Application Specific Information:
dyld: launch, loading dependent libraries

Dyld Error Message:
  Library not loaded: /System/Library/PrivateFrameworks/SpotlightIndex.framework/Versions/A/SpotlightIndex
  Referenced from: /System/Library/Frameworks/CoreServices.framework/Frameworks/Metadata.framework/Support/mds
  Reason: no suitable image found.  Did find:
    /System/Library/PrivateFrameworks/SpotlightIndex.framework/Versions/A/SpotlightIndex: open() failed with errno=-22

(以下略)

赤字部分に注目。/System/Library/PrivateFrameworks/SpotlightIndex.framework/Versions/A/フォルダにあるSpotlightIndexというフォルダが正常に読み込めないっぽい。ということで、とりあえず、このファイルをデスクトップに待避。

$ sudo mv /System/Library/PrivateFrameworks/SpotlightIndex.framework/Versions/A/SpotlightIndex ~/Desktop

すると次は当該部分が下の様に変化。

Dyld Error Message:
  Library not loaded: /System/Library/PrivateFrameworks/SpotlightIndex.framework/Versions/A/SpotlightIndex
  Referenced from: /System/Library/Frameworks/CoreServices.framework/Frameworks/Metadata.framework/Support/mds
  Reason: image not found

(以下略)

SpotlightIndexファイルが「読み込めない」よ、から「無いよ」に変わったわけです。まぁ当たり前ですね。この状態でOSを再起動したり、インデックス再作成コマンドを打ったりしてみてもSpotlightIndexファイルは再作成されませんでした。

そこで最後の手段とばかりに、別のMacから同ファイルをコピーw。そしたら数秒後にはインデックス作成が始まりました!

待避したものと持って来たものではサイズが全く違うので、このファイルがインデックスの実態っぽいですね。だとするともってきた方のMacのファイル情報が無駄に含まれていてトラブルの元になる可能性があるので、念のため「システム環境設定」->「Spotlight」->プライバシー」で除外する場所にMacintosh HDを追加。これでインデックス再作成が中断されたので、少し間を置いてから除外指定を解除。これでまた再作成が始まりました。多分これで一旦リセットされたんじゃないかなぁ、と期待。

なんとかOS再インストールは免れそうです。