NetBSD へ upnpd (libupnp + Linuxigd) を入れました。pkgsrc-wip に両方共ありますので、こちらを利用します。
cd /usr/pkgsrc/wip/linuxigd
make
make install
普通はこの後に /etc/rc.conf などを編集して、/usr/pkg/etc/rc.d/linuxigd start で良いです(pkgsrc は素晴らしい)。が、私の環境では正しく動作しませんでした。全く動かないという訳ではないのですが、
- WindowsXP の「ネットワーク接続」に表示される「インターネット接続」アイコンをクリックすると、一瞬でウィンドウが閉じてしまう(ポートの開閉自体は右クリックして「プロパティ」->「設定」から可能)。
- ポートの開閉時にプロトコルとして UDP を指定しても、TCP で開かれてしまう。UDP ポートが開けない。
1. はネットワーク転送量を取得のために /proc/net/dev を fopen するところで落ちていました。調べてみたところ /proc/net/dev は Linux に存在する擬似ファイルの様です。cat /proc/net/dev 等でネットワークの統計が得られます。NetBSD-3.1 でも suse をインストールする事で使用可能になる様ですが、amd64 へはインストールできません(pkgsrc の suse を入れようとすると、x86-64 には対応していないと怒られます)。ioctl の SIOCGIFDATA で取得する方法へ書き換えました。
2. の方は ipnat の呼び出し時に渡すコマンドラインの最後に改行コードが付いてない事が原因の様です。改行コードがないと最後のパラメーターを無視してしまう様で、「(最後のパラメーターである)プロトコルが省略されている -> tcp として扱う」となっていた様です。
必要な人がいるかどうか分かりませんが、pkgsrc-wip が linuxigd のソースへパッチをあてた後のパッチとして置いておきます(「wip-linuxigd-patch」をダウンロード)。一度 pkgsrc-wip/linuxigd で make して pkgsrc-wip/linuxigd のパッチをあててから使います。一応pkgsrc-wip 20070615 の snapshot 用ですが、少し前から linuxigd の中身は変わっていない様なので、異なる snapshot へも適用できると思います。
cd /usr/pkgsrc/wip/linxigd
make
cd work
rm .build_done
cd linuxigd-1.0
patch < パッチファイル名
cd ../..
make
make install
話は変わりますが、先日コーヒーを飲ませたノート。どうやら大丈夫の様です。
最近のコメント