現: 2023-05-02 (火) 11:30:33 yuji ソース
Line 1: Line 1:
 +* Raspberry PiでVNCサーバーを利用する [#j6d29f14]
 +Raspberry Pi(Raspbian)で,VNCを使って他のマシンから接続できるようにする。~
 +** Rasbianで標準インストールされるVNCサーバー [#tf3f2614]
 +Raspbianをインストールすると,デフォルトでVNCサーバーである''realvnc-vnc-server''がインストールされている。~
 +これは主に,標準のデスクトップをミラー化してリモートデスクトップ環境を実現するためにインストールされている。~
 +
 +しかしこの機能は有効にはなっていないので,使用する場合は''raspi-config''から有効化する必要がある。~
 +rootユーザーでraspi-configを起動して,
 + # raspi-config
 +- Interfacing Optionsを選択~
 +- VNCを選択する~
 +- Yesを選択する~
 +The VNC Server is enabledと表示が出る。~
 +
 +このようにしてVNCサーバーを有効化する。~
 +これは,
 + # systemctl enable vncserver-x11-serviced.service
 + # systemctl start vncserver-x11-serviced.service
 +と同じ。
 +
 +動作を確認する場合には,
 + $ netstat -nlt
 +として,ポート番号=5900があればVNCサーバーが動作している。~
 +
 +DISPLAY番号:0 でミラー化されたリモートデスクトップとして使用できる環境になっている。実際には,rootユーザーで''vncserver-x11-serviced''を実行している。~
 +
 +このVNCサーバーに他のPCから接続するには,VNCクライアントでポート5900で接続する。~
 +そうするとRasbianのデスクトップが,リモートデスクトップとして操作できる。
 +
 +この時のVNCのセットアップは,''/etc/vnc/xstartup''により行われる。~
 +
 +*** realvnc-vnc-serverのユーザーモードでのVNC [#t5647e71]
 +realvnc-vnc-serverでは,ユーザーモードで起動させるvncserver(vncserver-virtualのシンボリックリンク)もインストールされている。~
 +
 +任意のユーザー権でVNCサーバーをDISPLAY番号=:1で起動する場合は,
 + $ vncserver :1 -geometry 1280x720
 +のようにする。~
 +
 +この時,''~/.vnc/xstartup''があればそれを使ってXを起動する。(作成しなければファイルが存在しない)~
 +ただ,''realvnc-vnc-server''では,Desktop環境を使わないX Windowは''~/.vnc/xstartup''でうまく設定できない。~
 +''/etc/vnc/xstartup''ファイルを削除すればDesktop環境を使わないX Windowが起動できるが,この方法では副作用があって使いにくい。~
 +
 +* TightVNCとx11vncを使用する [#n59f5efb]
 +上記のように,特定の用途では''realvnc-vnc-server''は使いにくい。~
 +そこで,Rasbianで標準でインストールされている''realvnc-vnc-server''をアンインストールして,代わりに''TightVNC(tightvncserver)''と''x11vnc''を導入してみる。~
 +
 +- TightVNC(tightvncserver)~
 +ユーザーモードのみで動作するVNC Serverで,通常のデスクトップ環境はもちろん,デスクトップ無しの単なる表示のみといった環境も作成できる。~
 +realvnc-vnc-serverでの''vncserver-virtual''と同じ機能。~
 +TightVNCでは,''X WindowのRANDR拡張機能には対応していない。''~
 +- x11vnc~
 +Rasbianで使われる物理的なディスプレイをミラー化してリモートデスクトップ環境を作成できるVNC Server。~
 +realvnc-vnc-serverでの''vncserver-x11-servicedと''同じ機能。~
 +
 +** TightVNC(tightvncserver)をVNC Serverとして利用する [#c89741dc]
 +Rasbian標準でインストールされているVNCサーバーではなく,TightVNC(tightvncserver)をVNCサーバーとして利用してみる。~
 +TightVNC(tightvncserver)であれば,''~/.vnc/xstartup''の設定によりDesktop環境を使わないX Windowも問題なく起動できる。~
 +
 +TightVNC(tightvncsever)をRaspbianにインストールする。~
 + # apt install tightvncserver
 +このようにaptでtightvncserverをインストールすると,標準でインストールされている''realvnc-vnc-server''は自動的にアンインストールされる。~
 +
 +その後,vncserver(実体はtightvncserver)を一度起動する。~
 + $ cd
 + $ rm -rf .vnc
 + $ vncserver
 +ここで,接続のためのパスワードを設定する。~
 +この時,''~/.vnc/xstartup''ファイルが作成される。
 +
 +VNCサーバーが起動してるかは,netstatで確認できる。~
 + $ netstat -nlt
 + 稼働中のインターネット接続 (サーバのみ)
 + Proto 受信-Q 送信-Q 内部アドレス 外部アドレス 状態
 + tcp 0 0 0.0.0.0:5901 0.0.0.0: LISTEN
 + tcp 0 0 0.0.0.0:6001 0.0.0.0: LISTEN
 + tcp 0 0 0.0.0.0:22 0.0.0.0: LISTEN
 + tcp6 0 0 :::22 ::: LISTEN
 +ポート番号=5901でVNCサーバーが動作している。~
 +
 +一旦,vncserverを停止する。~
 + $ vncserver -kill :1
 +
 +自動起動させるために,''/etc/init.d/vncboot''ファイルを以下の内容で作成する。~
 +- USERとHOMEは自分の環境にする~
 +- ''-geometry 1280x720''の所は希望の解像度に設定する~
 +
 +#code(bash,,nonumber){{
 +#! /bin/sh
 +
 +### BEGIN INIT INFO
 +# Provides: vncboot
 +# Required-Start: $remote_fs $syslog
 +# Required-Stop: $remote_fs $syslog
 +# Default-Start: 2 3 4 5
 +# Default-Stop: 0 1 6
 +# Short-Description: Start VNC Server at boot time
 +# Description: Start VNC Server at boot time.
 +### END INIT INFO
 +
 +# /etc/init.d/vncboot
 +
 +USER=xxxxxx
 +HOME=/home/xxxxxx
 +
 +export USER HOME
 +
 +case "$1" in
 +   start)
 +       echo "Starting VNC Server"
 +       #Insert your favoured settings for a VNC session
 +       su $USER -c '/usr/bin/vncserver :1 -geometry 1280x720 -depth 24'
 +       ;;
 +
 +   stop)
 +       echo "Stopping VNC Server"
 +       su $USER -c '/usr/bin/vncserver -kill :1'
 +       ;;
 +
 +   *)
 +       echo "Usage: /etc/init.d/vncboot {start|stop}"
 +       exit 1
 +       ;;
 +esac
 +
 +exit 0
 +}}
 +
 +実行権を付けておく。~
 + # chmod 755 /etc/init.d/vncboot
 +
 +自動起動するように登録する。
 + # update-rc.d vncboot defaults
 +
 +''~/.vnc/xstartup''ファイルを以下のように編集する。~
 +Xsessionを動かさないようにしている。このようにすると,Desktop環境を使わないX Windowが起動できる。Windowは黒一色に設定。~
 +#code(bash,,nonumber){{
 +#!/bin/sh
 +
 +xrdb $HOME/.Xresources
 +xsetroot -solid black
 +#x-terminal-emulator -geometry 80x24+10+10 -ls -title "$VNCDESKTOP Desktop" &
 +#x-window-manager &
 +# Fix to make GNOME work
 +export XKL_XMODMAP_DISABLE=1
 +#/etc/X11/Xsession
 +}}
 +
 +これで,TightVNC(tightvncserver)のセットアップが出来た。~
 +Raspberry Piを再起動する。~
 +別のPCでVNCクライアントからポート番号=5901で接続して動作を確認する。
 +
 +** x11vncを使ってデスクトップ画面をリモートデスクトップ出来るようにする [#k46a3eeb]
 +x11vncは,標準で起動するX Windowのデスクトップをvncでリモートデスクトップ化できるVNC Server。~
 +
 +*** x11vncのインストール [#zef9e223]
 +上記のように,Rasbianで標準のVNC Serverである''realvnc-vnc-server''をアンインストールして,ユーザーモードVNC Serverとしての''tightvncserver''が既にインストールされている環境にx11vncをインストールする。~
 +
 +パッケージ管理ツールでインストールする。~
 + # apt install x11vnc
 +
 +*** 設定と動作確認 [#e28adad8]
 +vncで接続する時のパスワードを設定する。~
 + # x11vnc -storepasswd /etc/.x11vncpasswd
 + Enter VNC password:  ← パスワード入力
 + Verify password:    ← パスワード確認入力
 + Write password to /etc/.x11vncpasswd?  [y]/n
 + Password written to: /etc/.x11vncpasswd
 +これで,''/etc/.x11vncpasswd''ファイルが作成される。~
 +
 +x11vncを起動してみる。~
 + # x11vnc -auth guess -display :0 -rfbauth /etc/.vncpasswd -rfbport 5900 -forever -loop -noxdamage -repeat -shared
 +
 +別のPCでVNCクライアントからポート番号=5900で接続して動作を確認する。
 +
 +問題なければ,Ctrl + Cで停止させる。
 +
 +*** 自動起動するように設定する [#t5b40266]
 +''/etc/systemd/system/x11vnc.service''ファイルを以下の内容で作成する。
 +#code(bash,,nonumber){{
 +[Unit]
 +Description=x11vnc (Remote access)
 +After=network-online.target
 +
 +[Service]
 +Type=simple
 +ExecStart=/usr/bin/x11vnc -auth guess -display :0 -rfbauth /etc/.x11vncpasswd -rfbport 5900 -forever -loop -noxdamage -repeat -shared
 +ExecStop=/bin/kill -TERM $MAINPID
 +ExecReload=/bin/kill -HUP $MAINPID
 +KillMode=control-group
 +Restart=on-failure
 +
 +[Install]
 +WantedBy=graphical.target
 +}}
 +
 +自動起動するようにsystemdに登録して,起動しておく。~
 + # systemctl daemon-reload
 + # systemctl enable x11vnc
 + # systemctl start x11vnc
 +
 +*** x11vncについて [#x3321eca]
 +x11vncは,''realvnc-vnc-server''やUbuntu系に標準でインストールされている''vino''なんかに比べると速度が遅い気がする。~
 +しかし,別のX Windowを起動する他のVNC Serverと併用出来るので便利である。
 +
 +* TigerVNCとRealVNC Server(vncserver-x11-serviced)を使用する [#f729c162]
 +''標準のデスクトップをミラー化してリモートデスクトップ環境''にデフォルトのVNCサーバーである''realvnc-vnc-server''を使い,ユーザーモードのVNC Serverとして''TigerVNC''を使う方法。~
 +''TigerVNCはTightVNCからフォークされたVNC Serverで,TightVNCではRANDR拡張には対応していないがTigerVNCでは対応している。''
 +
 +インストールは,パッケージ管理ツールからインストールできる。~
 + # apt install tigervnc-standalone-server tigervnc-common tigervnc-viewer
 +''realvnc-vnc-server''のミラー化のリモートデスクトップ機能(vncserver-x11-serviced)は,そのまま使用できる。~
 +
 +** TigerVNCの設定と起動 [#h5ceda1e]
 +TigerVNCを上記の方法でインストールすると,ホームディレクトリにあった.vnc以下は削除されている。~
 +
 +TigerVNCを,一度起動する。~
 + $ vncserver
 +ここで,接続のためのパスワードを設定する。~
 +
 +一旦,vncserverを停止する。~
 + $ vncserver -kill :1
 +
 +これで~/.vnc以下のファイルが作成される。~
 +''~/.vnc/xstartup''ファイルを作成しておく。~
 +#code(bash,,nonumber){{
 +#!/bin/sh
 +
 +xrdb $HOME/.Xresources
 +xsetroot -solid black
 +#x-terminal-emulator -geometry 80x24+10+10 -ls -title "$VNCDESKTOP Desktop" &
 +#x-window-manager &
 +# Fix to make GNOME work
 +export XKL_XMODMAP_DISABLE=1
 +#/etc/X11/Xsession
 +}}
 +この例では,Xsessionを動かさないようにしている。このようにすると,Desktop環境を使わないX Windowが起動できる。Windowは黒一色に設定。~
 +実行権をつける。~
 + $ chmod 755 .vnc/xstartup
 +
 +自動起動させるために,''/etc/init.d/vncboot''ファイルを以下の内容で作成する。~
 +- USERとHOMEは自分の環境にする~
 +- ''-geometry 1280x720''の所は希望の解像度に設定する~
 +- ''-localhost no''つける~
 +- ''-idletimeout 0''を念の為つける~
 +#code(bash,,nonumber){{
 +#! /bin/sh
 +
 +### BEGIN INIT INFO
 +# Provides: vncboot
 +# Required-Start: $remote_fs $syslog
 +# Required-Stop: $remote_fs $syslog
 +# Default-Start: 2 3 4 5
 +# Default-Stop: 0 1 6
 +# Short-Description: Start VNC Server at boot time
 +# Description: Start VNC Server at boot time.
 +### END INIT INFO
 +
 +# /etc/init.d/vncboot
 +
 +USER=xxxxxx
 +HOME=/home/xxxxxx
 +
 +export USER HOME
 +
 +case "$1" in
 +   start)
 +       echo "Starting VNC Server"
 +       #Insert your favoured settings for a VNC session
 +       su $USER -c '/usr/bin/vncserver :1 -geometry 1280x720 -depth 24 -localhost no -idletimeout 0'
 +       ;;
 +
 +   stop)
 +       echo "Stopping VNC Server"
 +       su $USER -c '/usr/bin/vncserver -kill :1'
 +       ;;
 +
 +   *)
 +       echo "Usage: /etc/init.d/vncboot {start|stop}"
 +       exit 1
 +       ;;
 +esac
 +
 +exit 0
 +}}
 +
 +実行権を付けておく。~
 + # chmod 755 /etc/init.d/vncboot
 +
 +自動起動するように登録する。
 + # update-rc.d vncboot defaults
  

  • PC/RaspberryPi/VNCサーバーを利用する のバックアップ差分(No. All)
    • 現: 2023-05-02 (火) 11:30:33 yuji

トップ   差分 バックアップ 複製 名前変更 リロード   ページ新規作成 全ページ一覧 単語検索 最新ページの一覧   ヘルプ   最新ページのRSS 1.0 最新ページのRSS 2.0 最新ページのRSS Atom
Counter: 1058, today: 1, yesterday: 4