FreeNX
- NX はリモートディスプレイの新技術です。低速度の接続でもローカルと変わらないアプリケーションの反応性を実現します。NX のコアライブラリは NoMachine によって GPL で配布されています。FreeNX は NX サーバーと NX クライアントの GPL 実装です。
インストール
nx3-allAUR または nomachineAUR パッケージで FreeNX/Nomachine をインストールできます。サーバーとクライアントの両方が含まれています。使用するには sshd デーモンのインストール・実行が必要です (openssh パッケージでインストールできます)。
設定
サーバー
SSHD
freenx の認証を機能させるには、sshd のセットアップが必要です。RSA 認証とパスワード認証を許可して、AuthorizedKeysFile で公開鍵を指定してください。
全体でのパスワードログインを許可したくない場合、以下のように /etc/ssh/sshd_config
ファイルの末尾に match ブロックを追加してください:
RSAAuthentication yes PubkeyAuthentication yes PasswordAuthentication no PermitEmptyPasswords yes AuthorizedKeysFile /usr/NX/home/nx/.ssh/authorized_keys /usr/NX/home/nx/.ssh/authorized_keys2 # # # Match Address 127.0.0.1 PasswordAuthentication yes
メイン設定
メインの設定ファイルは /usr/NX/etc/node.cfg
です。
デフォルトの22番ポート以外で SSH デーモンを実行する場合、SSHD_PORT=22
をアンコメントして編集してください。
KDE や GNOME デスクトップ環境を使用しているのであればファイルの編集は不要です。その場合デフォルトの MD5SUM コマンドが動作します。Fluxbox/Openbox や Xfce など別のウィンドウマネージャを使用している場合、ファイルを編集する必要があります (下を参照)。
Xfce を使用している場合は CDE 行を以下のように編集してクライアントから cde を起動してください:
CommandStartCDE = "/usr/bin/startxfce4"
nx3-all パッケージのインストール後、sudo /usr/NX/scripts/setup/nxserver --help
を実行することでインストール・アンインストールの手順を確認できます。
鍵
サーバーでクライアントを認証するときはデフォルトで鍵が使われます。インストール時に生成されるデフォルトの鍵を使うこともできますし、新しく作成することも可能です。自分でキーペアを生成する場合、sshd_config
の authorizedkeyfiles と node.cfg
の SSHAuthorizedKeys に公開鍵のディレクトリを追加してください。そしてクライアントに秘密鍵を送信してください。
公開鍵は以下のディレクトリに存在します:
/usr/NX/home/nx/.ssh/authorized_keys2
秘密鍵は以下のディレクトリに存在します:
/usr/NX/share/keys/server.id_dsa.key
ランダムな鍵を生成するには:
/usr/NX/bin/nxserver --keygen
以下のコマンドで nxserver が動作しているか確認できます:
/usr/NX/bin/nxserver --status
また、指定したユーザーでログインできるかどうか確認するには:
/usr/NX/bin/nxserver --usercheck USERNAME
サーバーの起動
nxserver をインストールすると自動的に起動しますが、設定後にサーバーを再起動する必要があります:
/usr/NX/bin/nxserver --restart
クライアント
Arch Linux
opennxAUR と nx3-allAUR パッケージのどちらか片方、または両方のパッケージをインストールしてください。
Windows
nomachine のホームページからクライアントを入手してください: http://www.nomachine.com 。
設定
クライアントにはサーバーに接続するための鍵が必要です。インストール時に生成されたカスタム鍵を使用する場合、以下の場所にクライアントの鍵をコピーしてください:
- Windows:
your_install_dir_on_windows/share/keys/client.id_dsa.key
- Arch Linux:
/usr/lib/nx/share/keys/client.id_dsa.key
鍵を移動したら nxclient の GUI を使ってインポートできます。設定ダイアログから 'Key...' ボタンを押して新しいクライアント鍵をインポートしてください。
実行
Arch Linux に nxclient をインストールしたら、起動することができます。/usr/bin/nxclient
を初めて実行すると、ウィザードが表示されます。
Tips and tricks
キーボードショートカット
ショートカット | 説明 |
---|---|
Ctrl+Alt+f
|
フルスクリーンモードの切り替え。 |
Ctrl+Alt+t
|
中止ダイアログを表示。 |
Ctrl+Alt+m
|
ウィンドウの最小化・最大化。 |
Ctrl+Alt+Mouse
|
ビューポートのドラッグ。 |
Ctrl+Alt+Arrows/Keypad
|
ビューポートを移動。 |
Ctrl+Alt+s
|
"screen-scraping" モードを有効化。クライアントからの GetImage は全て実際のディスプレイに転送されます。同じショートカットをもう一度押すことで、nxagent は通常の "fast" モードに戻ります。 |
Ctrl+Alt+e
|
遅延イメージエンコード。 |
Ctrl+Alt+Shift+Esc
|
緊急終了とウィンドウを閉じる。 |
フルスクリーンの離脱
全ての nx アプリケーションではフルスクリーンモードで右上隅にピクセルが表示されます。ピクセルを左クリックするとアプリケーションウィンドウはアイコン化されます。
DPI の設定
全てのクライアントセッションでフォントサイズと dpi のサイズを同一にしたい場合、X resources で Xft.dpi
を設定してください。例えばデスクトップを 100dpi にしたい場合、以下の行を ~/.Xresources
に追加します:
Xft.dpi: 100
既存のディスプレイに FreeNX
通常、NX サーバーに接続するときは新しい X セッションが作られます。既存の X セッションに接続することは NX のデフォルト設定では不可能ですが、tightvncAUR と x11vnc を使うことで可能になります。NX サーバーに両方のパッケージをインストールしてください。
$HOME/.x11vncrc
ファイルを作成して x11vnc のオプションを指定してください:
display :0 shared forever localhost rfbauth /home/user/.x11vnc/passwd
VNC パスワードファイルを作成:
$ mkdir $HOME/.x11vnc $ x11vnc -storepasswd PASSWORD $HOME/.x11vnc/passwd $ chmod 600 $HOME/.x11vnc/passwd
x11vnc サービスを起動するシェルスクリプトを作成します。起動していない場合は vncviewer を起動します。
#!/bin/sh VNC_VIEWER=vncviewer VNC_SERVER=x11vnc VNC_RESOLUTION=1024x786 VNC_PASSWD=/home/USER/.x11vnc/passwd VNC_PORT=5900 if [ -z "$(pgrep ${VNC_SERVER})" ]; then echo $VNC_SERVER not running, starting... exec $VNC_SERVER & sleep 5 fi exec $VNC_VIEWER -geometry $VNC_RESOLUTION -passwd $VNC_PASSWD localhost::$VNC_PORT
スクリプトは $HOME/shell/nxvnc.sh
などに保存し、実行可能属性を付与してシンボリックリンクを作成してください:
$ chmod +x $HOME/shell/nxvnc.sh # ln -s /home/USER/shell/nxvnc.sh /usr/local/bin/nxvnc
作成できたらテストしてみると良いでしょう:
$ /usr/local/bin/nxvnc
x11vnc サービスと vncviewer セッションが起動すれば問題ありません。以下のオプションで NX クライアントを使って X セッションに接続できるはずです:
Login, Password, Host, Port: your default entries Desktop: Unix -> Custom - Settings: - Run the following command: /usr/local/bin/nxvnc - New virtual desktop Display: - Fullscreen or Custom with you preferred resolution
詳しくは FreeNX to existing display (opensuse.org) を参照。
KDE や GNOME 以外のデスクトップマネージャを設定
GNOME や KDE セッションに接続するのは容易ですが、他のウィンドウマネージャ (Fluxbox や Xfce など) に接続するとなると話が少し違います。
"custom" を選択して startx などのコマンドを使うと !M ロゴの後に画面が表示されなくなるか、X サーバーが存在しないというエラーが吐かれます。解決するには別のセッションで "startx" コマンドを実行して、もうひとつのセッションでウィンドウマネージャのコマンドを実行するしかありません。
そうしたくない場合、ディスプレイマネージャで X を起動してください。
トラブルシューティング
キーボードマッピングの問題
キーボードレイアウトは en_US にフォールバックしてしまいます。
ログイン後、setxkbmap を実行してレイアウトを設定してください。
例:
$ setxkbmap -layout br
または /usr/share/X11/xkb/keymap.dir
ファイルを作成:
# touch /usr/share/X11/xkb/keymap.dir
上記のファイルを作成することでレイアウトの問題は修正されます。
デバッグの問題
nxserver 設定ファイルを /etc/nxserver/node.conf
編集して以下の行を:
#SESSION_LOG_CLEAN=1
以下のように変更してください:
SESSION_LOG_CLEAN=0
接続した成功した場合は以下のログファイルが作られ:
$HOME/.nx/T-C-hostname-display-session-id
失敗した場合は以下のファイルでログが確認できます:
$HOME/.nx/F-C-hostname-display-session-id
認証は成功するが接続が上手く行かない
KDE を起動しようとしている場合、/etc/nxserver/node.conf
を編集して以下の行を:
COMMAND_START_KDE=startkde
以下のように置き換えてください:
COMMAND_START_KDE=/usr/bin/startkde
セッションの起動時に NX がクラッシュする
NX クライアントに NX ロゴが表示されてから Connection Problem ダイアログが表示されてしまう場合、フォントが原因の可能性があります。
NX サーバーとクライアントに xorg-fonts-misc パッケージをインストールしてください。
NX ロゴの後に画面が表示されない
NX ロゴ (!M) が表示された後に画面に何も映らなくなる場合、ログインマネージャを起動することで解決できます。freenx クライアントからは startx などが機能しません。ログインマネージャの設定方法はディスプレイマネージャの記事を参照してください。
ログインマネージャを設定しても問題が解決しない場合、.bashrc
から bash_completion を削除することで問題が解決することがあります。
KDE や GNOME 以外のデスクトップマネージャで GDM/XDM のセッションメニューエラー
"chooseSessionListWidget" と書かれたセッションメニューがされてウィンドウマネージャがロードされない場合、.xinitrc
に実行可能属性が付与されているか確認してください:
$ stat -c "%A" ~/.xinitrc
実行可能にするには:
$ chmod +x ~/.xinitrc
command sessreg not found というエラーで接続できない
以下のエラーが表示される場合:
/usr/bin/nxserver: line 941: sessreg: command not found NX> 280 Exiting on signal: 15
xorg-sessreg パッケージをインストールしてください。
Cairo 1.12.x で復帰が上手く機能しない
最新の cairo のアップデートでレンダリング拡張が機能しなくなっています。セッションを復帰してもサスペンド前の文字が全てレンダリングされません。/etc/nxserver/node.conf
に以下の行を追加することで解決します:
AGENT_EXTRA_OPTIONS_X="-norender"
Eclipse でファイルを編集しようとするとクラッシュする
The program 'Eclipse' received an X Window System error. This probably reflects a bug in the program. The error was 'BadValue (integer parameter out of range for operation)'. (Details: serial 8414 error_code 2 request_code 149 minor_code 26)
以下のコマンドで eclipse を起動してください (https://bugs.eclipse.org/bugs/show_bug.cgi?id=386955 を参照):
$ eclipse -vmargs -Dorg.eclipse.swt.internal.gtk.cairoGraphics=false