====== ブラウザでの desktop 接続 ====== prisoner desktop にブラウザで接続する。\\ {{:vps:novnc.png}} ===== desktop 設定 ===== ==== pkg ==== pkgにて以下を導入。 * xdm * xsm ==== xdm ==== prisner desktop 起動時に xdm を起動する。 * /usr/local/etc/rc.d/xdm 作成 #!/bin/sh # # PROVIDE: xdm # REQUIRE: DAEMON ldconfig . /etc/rc.subr name="xdm" rcvar="xdm_enable" command="/usr/local/bin/xdm" start_cmd="xdm_start" xdm_start() { ${command} } load_rc_config $name run_rc_command "$1" * /etc/rc.conf 編集 xdm_enable="YES" * /usr/local/etc/X11/xdm/Xaccess 編集 * #any host can get a login window * /usr/local/etc/X11/xdm/xdm-config 編集 !DisplayManager.requestPort: 0 ==== TigerVNC ==== TigerVNC を inetd で制御する。 * /etc/services 編集 vnc 5901/tcp * /etc/inetd.conf 編集 vnc stream tcp nowait nobody /usr/local/bin/Xvnc Xvnc -inetd -query localhost -once -geometry 1440x900 -securitytypes=none * /etc/rc.conf 編集 inetd_enable="YES" ===== web 設定 ===== ==== pkg ==== pkgにて、以下を導入。 * novnc * bash * git ==== WebSockify 設定 ==== WebSockify のダウンロードと設定する。 * websockify をダウンロードするため、launch.sh を一度実行する。 # cd /usr/local/libexec/novnc/utils # chmod 744 launch.sh # ./launch.sh <中略> Filed to start WebSockets proxy # * /usr/local/libexec/novnc/utils/websockify/run 修正 python3.6 -m websockify $@ (python を python3.6 に修正) ==== noVNC 設定 ==== noVNC 向け設定を行う。 * /usr/local/etc/rc.d/novnc を作成する。 #!/bin/sh # PROVIDE: novnc PATH=$PATH:/usr/local/bin . /etc/rc.subr name="novnc" rcvar="${name}_enable" start_cmd="novnc_start" novnc_start() { echo "Start run" echo ${command_args} /usr/local/libexec/novnc/utils/websockify/run --daemon ${novnc_local} ${novnc_remote} } load_rc_config $name run_rc_command "$1" * /etc/rc.conf を編集する。 novnc_enable="YES" novnc_local="6080" novnc_remote="192.168.100.2:5901" ==== apache 設定 ==== * /usr/local/etc/apache24/httpd.conf 設定 LoadModule proxy_module libexec/apache24/mod_proxy.so LoadModule proxy_http_module libexec/apache24/mod_proxy_http.so LoadModule proxy_wstunnel_module libexec/apache24/mod_proxy_wstunnel.so * /usr/local/etc/apache24/extra/httpd-ssl.conf 設定 SSLCACertificateFile "/usr/local/etc/apache24/ssl.crt/cacert.pem" ProxyRequests Off ProxyPass /websockify ws://localhost:6080/websockify retry=3 ProxyPassReverse /websockify ws://localhost:6080/websockify retry=3 RedirectMatch permanent /<パス>$ /<パス>/ Alias /<パス> /usr/local/libexec/novnc AllowOverride all Order allow,deny Allow from all Require all granted SSLVerifyClient require * /websockify へは reverse proxy 設定 * /usr/local/libexec/novnc へは alias 設定 * <パス> は推測しにくいものにしたほうが良い? * クライアント証明書で保護 ==== 接続 ==== * Aliasで指定したパス+ vnc.html で接続する。