FreeNX

提供: ArchWiki
2017年8月15日 (火) 20:42時点におけるKusakata (トーク | 投稿記録)による版 (同期)
ナビゲーションに移動 検索に移動

FreeNX - the free NX より:

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 を実行することでインストール・アンインストールの手順を確認できます。

ノート:
  • サーバー側には xdialog もインストールしてください。インストールしないとウィンドウを閉じようとしたり Ctrl+Alt+t を押したときに "suspend/terminate" ダイアログが表示されません。
  • 一部の操作では xterm も必須になります。

サーバーでクライアントを認証するときはデフォルトで鍵が使われます。インストール時に生成されるデフォルトの鍵を使うこともできますし、新しく作成することも可能です。自分でキーペアを生成する場合、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

opennxAURnx3-allAUR パッケージのどちらか片方、または両方のパッケージをインストールしてください。

Windows

nomachine のホームページからクライアントを入手してください: http://www.nomachine.com

ヒント: 今後 Nomachine が古いクライアントを消去する可能性があります。クライアントが動作することを確認できたらバックアップを取ることを推奨します。

設定

クライアントにはサーバーに接続するための鍵が必要です。インストール時に生成されたカスタム鍵を使用する場合、以下の場所にクライアントの鍵をコピーしてください:

  • 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 resourcesXft.dpi を設定してください。例えばデスクトップを 100dpi にしたい場合、以下の行を ~/.Xresources に追加します:

Xft.dpi: 100

既存のディスプレイに FreeNX

通常、NX サーバーに接続するときは新しい X セッションが作られます。既存の X セッションに接続することは NX のデフォルト設定では不可能ですが、tightvncAURx11vnc を使うことで可能になります。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 パッケージをインストールしてください。

ノート: freenx 0.6.1-3 以上ではこの問題は起こりません。

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