NoMachineでリモートデスクトップ

提供: Eospedia
2020年5月8日 (金) 02:49時点におけるKttn (トーク | 投稿記録)による版

(差分) ←前の版 | 最新版 (差分) | 次の版→ (差分)
移動: 案内検索

ローカルマシンへのインストール

普通に公式サイトからインストーラをダウンロードしてインストールすればいいはず。Windows/macOSの場合はインストーラをダブルクリックすればインストールできたと思う。

公式→ https://www.nomachine.com/

リモートマシンへのインストール

リモートのLinuxマシンにNoMachineサーバーをインストールする。

すでにインストール済みであるか確認するには下記コマンドをたたいてみて中身があるか確認すればヨシ。

[16:33:34 kttn2@rc ~]
> ls /etc/NX
nxnode  nxserver  server

ファイルが存在しないようであればインストールされていないので、上記の公式サイトからrpmファイル(CentOSの場合)またはdebファイル(Ubuntuの場合)をダウンロードし、ダウンロードページの下の方に書いてある方法でインストールすればよい。(要管理者権限)

一応、CentOS7の場合は以下でインストールできる。

sudo rpm -i nomachine_6.9.2_1_x86_64.rpm

※ rpmファイル名はダウンロードしたバージョンや置き場所に応じて変える。

デフォルトのままでは物理ディスプレイを接続しているマシンにしかクライアントから接続できない。そこで、ディスプレイを接続していないマシン(ヘッドレスマシンと呼ぶ)に接続できるよう、設定を変更する。

参考: https://wiki.archlinux.jp/index.php/NoMachine

管理者権限で/usr/NX/etc/node.cfgを開き、DefaultDesktopCommandキーを編集する(GNOMEデスクトップ使用の場合)。

DefaultDesktopCommand "/usr/bin/gnome-session"

GNOME以外を使っている場合は対応するコマンドに差し替えればよい。/usr/bin/mate-session など。

同様に、PhysicalDisplaysキーも編集する。コメントアウト(#)されていればコメントアウトを外し、

PhysicalDisplays :10

のように変更する。デフォルトの:0はサーバーのデフォルトのXディスプレイ番号なので、デフォルトのままだとサーバーで既に動いているXディスプレイに接続しようとしてしまい、ヘッドレスサーバーの場合は真黒な画面しか表示されなくなる。それと異なるXディスプレイ番号を指定すると(10でなくてもいいと思うが)、クライアント接続時に仮想デスクトップが自動で作成されて、リモートデスクトップ使用可能になる。

※ NoMachineのフリー版を使う場合、リモートデスクトップは同時に1つしか使えない。ですから、同じマシンでほかの人がリモートデスクトップを使っているかどうかとか気にしないといけない。NoMachineのEnterprise版を使用すると無制限になるので、複数人でそれぞれ個別のリモートデスクトップを使いたい場合にはお金を払ってEnterpsise版を使わないといけない。

サーバープロセスの起動

インストール後、サービスが有効になっているかどうかを確認するには以下の様にする。

[16:38:10 kttn2@rc ~]
> /etc/NX/nxserver --status
NX> 111 New connections to NoMachine server are enabled.
NX> 162 Enabled service: nxserver.
NX> 162 Disabled service: nxnode.
NX> 162 Enabled service: nxd.

nxserver, nxdが動いていればいいはず。もし動いていないようであれば以下の様にする。

[16:42:52 kttn2@rc ~]
> sudo /etc/NX/nxserver --start
[sudo] password for kttn2:
NX> 111 New connections to NoMachine server are enabled.

ポート4000番でNXプロトコルでの通信を通すために、場合によってはファイアウォールなどセキュリティ関係をいじる必要があるかも。

ローカルマシンからの接続

NoMachineを起動して"New connection"を選択し、接続先マシン名およびユーザー情報以外はデフォルトで設定してよい。接続マシン名はIPアドレスもしくはホスト名 (rcとかDL-Boxとかcs06とか)を入れれば良い。ユーザーは自分の計算機アカウントのユーザー名とパスワードを入力する。

ディスプレイを繋いでいないマシンに接続すると(接続しようとするとそのような警告が出てくる)、真黒な画面しか出ないかもしれない。その場合にどうしたらいいのかはまだ調べられていないので、あきらめていただくか、自分でリモートPCにディスプレイを接続するか、ディスプレイポートに指すドングルを入手して差すか、ほかの解決策を探してください。

接続に成功してログインすると、下記のような感じでWindowsやmacOSからLinuxマシンのデスクトップを操作できる。回線速度が速くても微妙にかくかくする感じがあったり、文字を入力しても即時反映されずにストレスがたまるくらいのことはあるが、許せるレベルであるとは思う。

2020-04-29 (2).png


通信の設定

リモートのデスクトップ画面の右上隅にマウスを持っていくと、デスクトップ画面が少しだけペラっとめくれるようなエフェクトが出る。そこで左クリックをすると、以下のような設定画面が出てくる。もしくは、Ctrl + Alt + 0 (zero)を押しても良い。

2020-04-29 (4).png

普通に使う分にはDisplayの設定変更だけでよいと思う。

ウィンドウを適当な大きさにするには、Fit to windowsとかResize remote screenとかそのあたりをぱちぱち押していれば、いずれそれっぽい感じのウィンドウサイズにたどり着けると思う。執筆者はFull HDのディスプレイでリモートもローカルも表示するために、1600x900の解像度にして使用している。

他に、画像処理をやる場合には画質が重要なので、DisplayのChange settingsを押して、Qualityを最高に上げたほうが良い。そうでないと、表示される画像の解像度が悪くて、本来の画像を見ることができない。

ネットワーク構成の問題などかもしれないが、現状の環境ではCentOS7よりUbuntu18.04の方が描画が圧倒的に速い。

課題

  • 複数人で1つのマシンを使いたい場合、現状の設定だと、一つの物理ディスプレイに表示されている画面を奪い合う形になるので、無理。ユーザー個別で仮想ディスプレイみたいなものを使える形にした方がよいが、設定方法がわからない。
    • (2020/5/8) Free版は同時に一つのセッションしか作れないことがわかった。$44.5/yearのEnterprise版なら無制限。
  • 物理ディスプレイを繋いでいるマシンしか今のところ接続できない。
    • (2020/5/8) 解決策見つけたので追記した。