📢 Webサイト閉鎖と移転のお知らせ
このWebサイトは2026年9月に閉鎖いたします。
新しい記事は移転先で追加しております。(旧サイトでは記事を追加しておりません)

 
(同じ利用者による、間の12版が非表示)
9行目: 9行目:
ダウンロードしたVNCサーバをダブルクリックして表示される画面通りにインストールする。<br>
ダウンロードしたVNCサーバをダブルクリックして表示される画面通りにインストールする。<br>
<br>
<br>
==== CentOS ====
==== RHEL ====
以下のコマンドを実行して、VNCサーバをインストールする。<br>
以下のコマンドを実行して、VNCサーバをインストールする。<br>
  sudo yum install tigervnc-server
  sudo dnf install tigervnc-server
<br>
<br>
Firewalldを有効にしている場合は、VNCサービスの許可が必要となる。<br>
Firewalldを有効にしている場合は、VNCサービスの許可が必要となる。<br>
33行目: 33行目:
===== 標準のVNCサーバの使用 =====
===== 標準のVNCサーバの使用 =====
SUSEにおいて、XDMCPプロトコルをサポートするディスプレイマネージャを使用している場合にのみ、VNC接続ができる。<br>
SUSEにおいて、XDMCPプロトコルをサポートするディスプレイマネージャを使用している場合にのみ、VNC接続ができる。<br>
gdm、lxdm、lightdmはXDMCPをサポートしているが、KDE ​​5標準のディスプレイマネージャsddmはXDMCPをサポートしていないので、真っ黒な画面になる。<br>
* GNOMEを使用している場合
<br>
*# [YaST2] - [ネットワークサービス] - [Remote Administoration(VNC)]を選択して、以下の2項目の設定を行う。
まず、[YaST2] - [Alternatives] - [default-displaymanager]項目にフォーカスを当てて[編集]ボタンを押下する。<br>
*:* [セッション管理機能付きのリモート管理を許可する]ボタンにチェックを入力する。<br>
編集画面にて、LightDMを選択する。<br>
*:* [ファイアーウォールでポートを開く]チェックボックスにチェックを入力する。<br>
<br>
*: <br>
次に、VNCサーバをセットアップする。<br>
* KDEを使用している場合
[YaST2] - [ネットワークサービス] - [Remote Administoration(VNC)]を選択して、以下の2項目の設定を行う。<br>
*: gdm、lxdm、lightdmはXDMCPをサポートしているが、KDE ​​5標準のディスプレイマネージャsddmはXDMCPをサポートしていないので、真っ黒な画面になる。<br>
[セッション管理機能付きのリモート管理を許可する]ボタンにチェックを入力する。<br>
*: <br>
[ファイアーウォールでポートを開く]チェックボックスにチェックを入力する。<br>
*# まず、[YaST2] - [Alternatives] - [default-displaymanager]項目にフォーカスを当てて[編集]ボタンを押下する。
*# 編集画面にて、LightDMを選択する。
*# 次に、VNCサーバをセットアップする。<br>[YaST2] - [ネットワークサービス] - [Remote Administoration(VNC)]を選択して、以下の2項目の設定を行う。
*#* [セッション管理機能付きのリモート管理を許可する]ボタンにチェックを入力する。<br>
*#* [ファイアーウォールでポートを開く]チェックボックスにチェックを入力する。<br>
<br>
<br>
===== XRDPの使用 =====
===== XRDPの使用 =====
ここでは、GNOMEを使用しているものとする。<br>
ここでは、GNOMEを使用しているものとする。<br>
78行目: 83行目:
<br><br>
<br><br>


== VNC Viewerのインストール ==
== VNCサーバ (Wayland向け)==
==== Waylandの有効化 (オプション) ====
Waylandを有効にする。<br>
sudo raspi-config nonint do_wayland W2
<br>
VNC機能を有効にする。<br>
# 0 : 有効
# 1 : 無効
sudo raspi-config nonint do_vnc 0
<br>
==== wayvncのインストール ====
wayvncは、wlrootsベースのWaylandコンポジタ用のVNCサーバである。(GNOME, KDE, Westonはサポートされていない)<br>
実行中のWaylandセッションにアタッチして、仮想入力デバイスを作成、RFBプロトコル経由で単一のディスプレイを公開する。<br>
<br>
Waylandセッションはヘッドレスセッションのため、物理ディスプレイを接続せずにwayvncを実行することも可能である。<br>
<br>
===== パッケージ管理システムからインストール =====
# RHEL
sudo dnf install wayvnc
# SUSE
sudo zypper install wayvnc
<br>
===== ソースコードからインストール =====
wayvncのビルドに必要なライブラリをインストールする。<br>
# RHEL
sudo dnf install meson gcc ninja-build pkg-config egl-wayland egl-wayland-devel    \
                  mesa-libEGL-devel mesa-libEGL libwayland-egl libglvnd-devel      \
                  libglvnd-core-devel libglvnd mesa-libGLES-devel mesa-libGLES      \
                  libxkbcommon-devel libxkbcommon libwayland-client                \
                  pam-devel pixman-devel libgbm-devel libdrm-devel scdoc            \
                  libavcodec-free-devel libavfilter-free-devel libavutil-free-devel \
                  turbojpeg-devel wayland-devel gnutls-devel jansson-devel
# SUSE
sudo zypper install meson gcc ninja pkg-config scdoc libgnutls-devel pam-devel libglvnd-devel \
                    libjpeg-turbo libpixman-1-0-devel libjansson-devel libxkbcommon-devel    \
                    Mesa-libEGL-devel Mesa-libGLESv1_CM-devel Mesa-libGLESv2-devel Mesa-libGLESv3-devel \
                    libdrm-devel libgbm-devel wayland-devel wayland-protocols-devel \
                    ffmpeg-4-libavcodec-devel ffmpeg-4-libavfilter-devel ffmpeg-4-libavutil-devel
<br>
[https://github.com/any1/wayvnc wayvncのGithub]にアクセスして、ソースコードをダウンロードする。<br>
ダウンロードしたファイルを解凍する。<br>
tar xf wayvnc-<バージョン>.tar.gz
cd wayvnc-<バージョン>
<br>
wayvncをビルドおよびインストールする。<br>
meson build --prefix=<WayVNCのインストールディレクトリ>
ninja -C ./build -j $(nproc)
ninja -C ./build install
<br>
必要ならば、~/.profileファイル等に環境変数<code>PATH</code>を追記する。<br>
vi ~/.profile
<br>
<syntaxhighlight lang="sh">
# ~/.profileファイル
export PATH="/<wayvncのインストールディレクトリ>/bin:$PATH"
</syntaxhighlight>
<br>
wayvncサーバは、デフォルトではlocalhostからの接続しか受け付けない。<br>
そのため、任意のインターフェースからの接続を受け入れるには、アドレスを0.0.0.0に設定する。<br>
wayvnc 0.0.0.0
<br>
パブリックネットワークやインターネット上では、ユーザ認証を有効にしないこと。<br>
wayvncの接続を保護する最善の方法は、localhostでリッスンしながらSSHトンネリングを使用することである。<br>
また、wayvncに接続する際にユーザを認証することもできる。<br>
<br>
==== 暗号化と認証 ====
===== VeNCrypt (TLS) =====
TLSには、X509秘密鍵と証明書が必要となる。<br>
証明書付きの自己署名鍵は、以下に示すコマンドを実行して生成することができる。<br>
cd ~/.config/wayvnc
openssl req -x509 -newkey ec -pkeyopt ec_paramgen_curve:secp384r1 -sha384 \
            -days 3650 -nodes -keyout tls_key.pem -out tls_cert.pem \
            -subj /CN=localhost \
            -addext subjectAltName=DNS:localhost,DNS:localhost,IP:127.0.0.1
cd -
<br>
上記のコマンドにおいて、localhostと127.0.0.1は、それぞれ公開用のホスト名とIPアドレスに置き換えること。<br>
<br>
次に、認証情報を含む設定ファイル (~/.config/wayvnc/configファイル) を作成する。<br>
または、任意の場所に配置して、wayvncコマンドに<code>-config</code>オプションを付加して設定ファイルを読み込むこともできる。<br>
# ~/.config/wayvnc/configファイル
use_relative_paths=true
address=0.0.0.0
enable_auth=true
username=<ユーザ名>
password=<パスワード>
private_key_file=tls_key.pem
certificate_file=tls_cert.pem
<br>
Raspberry Piを再起動する。<br>
sudo systemctl reboot
<br>
===== RSA-AES =====
RSA-AESセキュリティタイプは、EAXモードでRSAとAESを組み合わせて、盗聴やMITMに強い安全な認証と暗号化を提供する。<br>
<br>
その主な弱点は、最初の使用時にユーザがサーバの認証情報を検証しなければならないことである。<br>
その後、サーバの認証情報が変更された場合、クライアントソフトウェアはユーザに警告する必要がある。<br>
これはSSHで採用されているTOFU (Trust on First Use) スキームである。<br>
<br>
RSA-AESを有効にするには、RSA鍵を生成する必要がある。<br>
mkdir -p ~/.config/wayvnc/config
ssh-keygen -m pem -f ~/.config/wayvnc/rsa_key.pem -t rsa -N ""
<br>
また、<code>rsa_private_key_file</code>パラメータを設定することにより、このファイルのパスをwayvncに伝える必要がある。<br>
# ~/.config/wayvnc/configファイル
use_relative_paths=true
rsa_private_key_file=rsa_key.pem
enable_auth=true
address=0.0.0.0      # オプション
username=<ユーザ名>    # オプション
password=<パスワード>  # オプション
<br>
RSAと組み合わせてTLS用の認証情報を追加することもできる。<br>
これは、クライアントが選択する。<br>
<br>
Raspberry Piを再起動する。<br>
sudo systemctl reboot
<br>
==== wayvncctlコントロールソケット ====
実行時のインタラクションとコントロールを容易にするため、wayvncは$XDG_RUNTIME_DIR/wayvncctl (または、フォールバックとして/tmp/wayvncctl-$UID) にunixドメインソケットを開く。<br>
クライアントは接続して、実行中のwayvncインスタンスへの問い合わせと制御のためにjsonフォーマットのIPCメッセージを交換することができる。<br>
<br>
コマンドラインからこのコントロールソケットを操作するには、wayvncctlユーティリティを使用する。<br>
<br>
IPCプロトコルと利用可能なコマンドの詳細はwayvnc(1) manページ、コマンドラインインタフェースの詳細はwayvncctl(1) manを参照すること。<br>
<br>
wayvncで様々なイベントが発生した時にコマンドを実行するために使用できる便利なイベントループモードも存在する。<br>
詳細を知りたい場合は、[https://github.com/any1/wayvnc/blob/master/examples/event-watcher examples/event-watcher]を参照すること。<br>
<br>
==== Raspberry Piの場合 ====
まず、WayVNCのバージョンを確認する。<br>
wayvnc --version
<br>
次に、VNCを有効にする。<br>
# 0 : 有効
# 1 : 無効
sudo raspi-config nonint do_vnc 0
<br>
===== WayVNC 0.7以降の場合 =====
<u>WayVNC 0.7.0以降では、RealVNCと互換性のあるRSA-AES認証が追加されたため、適切な証明書を生成することによりRealVNCから接続できる。</u><br>
<br>
まず、RSA-AES証明書を生成する。<br>
# RSA-AESの場合
ssh-keygen -m pem -f ~/.config/wayvnc/rsa_key.pem -t rsa -N ""
<br>
~/.config/wayvnc/configファイルに、以下に示す設定を追記する。<br>
# ~/.config/wayvnc/configファイル
use_relative_paths=true
address=0.0.0.0      # オプション (全てのIPアドレスから受け付ける場合)
enable_auth=true
username=<ユーザ名>    # オプション
password=<パスワード>  # オプション
rsa_private_key_file=rsa_key.pem
use_relative_paths=true
# または
rsa_private_key_file=/home/<ユーザ名>/.config/wayvnc/rsa_key.pem
<br>
変更を反映させるため、WayVNCを再起動、または、Raspberry Piを再起動する。<br>
<br>
===== WayVNC 0.6以前の場合 =====
RealVNC Viewerを使用してWayVNC 0.6以前のものに接続する場合、認証を無効にする必要がある。<br>
WayVNCはVeNCrypt (TLS) 暗号化方式を採用している。<br>
<br>
認証を無効にするには、~/.config/wayvnc/configファイルにある<code>enable_auth</code>を<code>false</code>に指定する。<br>
または、<code>enable_auth</code>の設定をコメントアウトする。<br>
<br>
<u>※注意</u><br>
<u>認証を無効にしてインターネット経由の接続を使用する場合、セキュリティ上の理由から推奨されないことに注意する。</u><br>
<br><br>
 
== VNC Viewer ==
==== VNC Viewerのインストール ====
===== Windows =====
===== Windows =====
[https://www.realvnc.com/en/connect/download/viewer/windows/ VNCの公式Webサイト]にアクセスして、VNC Viewer(EXE x86/x64)をダウンロードする。<br>
[https://www.realvnc.com/en/connect/download/viewer/windows/ VNCの公式Webサイト]にアクセスして、VNC Viewer(EXE x86/x64)をダウンロードする。<br>
ダウンロードしたVNC Viewerをダブルクリックして表示される画面通りにインストールする。<br>
ダウンロードしたVNC Viewerをダブルクリックして表示される画面通りにインストールする。<br>
<br>
<br>
===== CentOS =====
===== RHEL / SUSE =====
[https://www.realvnc.com/en/connect/download/viewer/windows/ VNCの公式Webサイト]にアクセスして、VNC Viewer(Standalone x64)をダウンロードする。<br>
[https://www.realvnc.com/en/connect/download/viewer/windows/ VNCの公式Webサイト]にアクセスして、VNC Viewer(Standalone x64)をダウンロードする。<br>
以下のコマンドを実行して、VNC Viewerを起動する。(Standalone版はインストール不要)<br>
以下のコマンドを実行して、VNC Viewerを起動する。(Standalone版はインストール不要)<br>
90行目: 274行目:
VNC Viewerの起動を簡単にするため、以下のように、.bashrcファイルにエイリアスの設定を行ってもよい。<br>
VNC Viewerの起動を簡単にするため、以下のように、.bashrcファイルにエイリアスの設定を行ってもよい。<br>
  alias vncviewer='./VNC/VNC-Viewer-6.20.113-Linux-x64'
  alias vncviewer='./VNC/VNC-Viewer-6.20.113-Linux-x64'
<br>
===== SUSE =====
上記のCentOSと同様である。<br>
<br>
<br>
===== Raspberry Pi =====
===== Raspberry Pi =====
ここでは省略する。<br>
ここでは省略する。<br>
<br>
<br>
===== デスクトップエントリファイルの作成 =====
==== デスクトップエントリファイルの作成 ====
デクトップエントリファイルrealvnc-vncviewer.desktopを、以下の内容で作成する。<br>
デクトップエントリファイルを作成する。<br>
  vi /home/ユーザ名/.local/share/applications/realvnc-vncviewer.desktop
  vi ~/.local/share/applications/realvnc-vncviewer.desktop
<br>
<syntaxhighlight lang="ini">
# realvnc-vncviewer.desktopファイル
   
   
# realvnc-vncviewer.desktopファイル
  [Desktop Entry]
  [Desktop Entry]
  Encoding=UTF-8
  Encoding=UTF-8
130行目: 313行目:
  Exec="/home/ユーザ名/VNC/VNC-Viewer-6.20.529-Linux-x64"
  Exec="/home/ユーザ名/VNC/VNC-Viewer-6.20.529-Linux-x64"
  TargetEnvironment=Unity
  TargetEnvironment=Unity
</syntaxhighlight>
<br>
<br>
なお、アイコンファイルは下記のものをダウンロードすること。<br>
なお、アイコンファイルは下記のものをダウンロードすること。<br>
146行目: 330行目:


__FORCETOC__
__FORCETOC__
[[カテゴリ:CentOS]][[カテゴリ:SUSE]][[カテゴリ:Raspberry_Pi]]
[[カテゴリ:RHEL]][[カテゴリ:SUSE]][[カテゴリ:Raspberry_Pi]]