This shows you the differences between two versions of the page.
| Both sides previous revision Previous revision Next revision | Previous revision | ||
|
vps:vps4th2nd_10 [2019/04/17 22:40] hoge@hoge [TigerVNC] |
vps:vps4th2nd_10 [2019/10/20 23:30] (current) hoge@hoge [apache 設定] |
||
|---|---|---|---|
| Line 1: | Line 1: | ||
| ====== ブラウザでの desktop 接続 ====== | ====== ブラウザでの desktop 接続 ====== | ||
| - | prisoner desktop にブラウザで接続する。 | + | prisoner desktop にブラウザで接続する。\\ |
| + | {{:vps:novnc.png}} | ||
| ===== desktop 設定 ===== | ===== desktop 設定 ===== | ||
| ==== pkg ==== | ==== pkg ==== | ||
| Line 7: | Line 7: | ||
| * xdm | * xdm | ||
| * xsm | * xsm | ||
| - | |||
| ==== xdm ==== | ==== xdm ==== | ||
| prisner desktop 起動時に xdm を起動する。 | prisner desktop 起動時に xdm を起動する。 | ||
| - | * /usr/local/etc/rc.d/xdm を作成<code> | + | * /usr/local/etc/rc.d/xdm 作成<code> |
| #!/bin/sh | #!/bin/sh | ||
| # | # | ||
| Line 32: | Line 31: | ||
| load_rc_config $name | load_rc_config $name | ||
| run_rc_command "$1"</code> | run_rc_command "$1"</code> | ||
| - | * /etc/rc.conf を編集<code> | + | * /etc/rc.conf 編集<code> |
| xdm_enable="YES" | xdm_enable="YES" | ||
| </code> | </code> | ||
| - | * /usr/local/lib/X11/xdm/Xaccess を編集 | + | * /usr/local/etc/X11/xdm/Xaccess 編集<code> |
| - | * コメントを外す<code> | + | |
| * #any host can get a login window | * #any host can get a login window | ||
| </code> | </code> | ||
| + | * /usr/local/etc/X11/xdm/xdm-config 編集<code> | ||
| + | !DisplayManager.requestPort: 0 | ||
| + | </code> | ||
| Line 47: | Line 47: | ||
| TigerVNC を inetd で制御する。 | TigerVNC を inetd で制御する。 | ||
| - | * /etc/services を編集<code> | + | * /etc/services 編集<code> |
| vnc 5901/tcp | vnc 5901/tcp | ||
| </code> | </code> | ||
| - | * /etc/inetd.conf を編集<code> | + | * /etc/inetd.conf 編集<code> |
| - | vnc stream tcp nowait nobody /usr/local/bin/Xvnc Xvnc -inetd -query localhost -once -geometry <横>x<縦> -securitytypes=none | + | vnc stream tcp nowait nobody /usr/local/bin/Xvnc Xvnc -inetd -query localhost -once -geometry 1440x900 -securitytypes=none |
| + | </code> | ||
| + | * /etc/rc.conf 編集<code> | ||
| + | inetd_enable="YES" | ||
| </code> | </code> | ||
| - | * /etc/rc.conf | ||
| Line 63: | Line 65: | ||
| * git | * git | ||
| - | === WebSockify 設定 === | + | ==== WebSockify 設定 ==== |
| WebSockify のダウンロードと設定する。 | WebSockify のダウンロードと設定する。 | ||
| * websockify をダウンロードするため、launch.sh を一度実行する。<code> | * websockify をダウンロードするため、launch.sh を一度実行する。<code> | ||
| Line 74: | Line 76: | ||
| </code> | </code> | ||
| * /usr/local/libexec/novnc/utils/websockify/run 修正<code> | * /usr/local/libexec/novnc/utils/websockify/run 修正<code> | ||
| - | #!/usr/bin/env python3.6 (python を python3.6 に修正) | + | python3.6 -m websockify $@ (python を python3.6 に修正) |
| </code> | </code> | ||
| - | === novnc 設定 === | + | ==== noVNC 設定 ==== |
| - | novnc 向け設定を行う。 | + | noVNC 向け設定を行う。 |
| * /usr/local/etc/rc.d/novnc を作成する。<code> | * /usr/local/etc/rc.d/novnc を作成する。<code> | ||
| #!/bin/sh | #!/bin/sh | ||
| - | # | ||
| # PROVIDE: novnc | # PROVIDE: novnc | ||
| + | PATH=$PATH:/usr/local/bin | ||
| . /etc/rc.subr | . /etc/rc.subr | ||
| name="novnc" | name="novnc" | ||
| - | rcvar=novnc_enable | + | rcvar="${name}_enable" |
| - | command="/usr/local/libexec/novnc/utils/launch.sh" | + | start_cmd="novnc_start" |
| - | command_args=${novnc_options} | + | |
| + | novnc_start() | ||
| + | { | ||
| + | echo "Start run" | ||
| + | echo ${command_args} | ||
| + | /usr/local/libexec/novnc/utils/websockify/run --daemon ${novnc_local} ${novnc_remote} | ||
| + | } | ||
| load_rc_config $name | load_rc_config $name | ||
| Line 96: | Line 105: | ||
| </code> | </code> | ||
| * /etc/rc.conf を編集する。<code> | * /etc/rc.conf を編集する。<code> | ||
| - | inetd_enable="YES" | ||
| novnc_enable="YES" | novnc_enable="YES" | ||
| - | novnc_option="--vnc 192.168.100.2:5901" | + | novnc_local="6080" |
| + | novnc_remote="192.168.100.2:5901" | ||
| </code> | </code> | ||
| - | == apache 設定 == | + | ==== apache 設定 ==== |
| - | WebSockify ディレクトリを組み込む。 | + | * /usr/local/etc/apache24/httpd.conf 設定<code> |
| - | * /usr/local/etc/apache24/extra/httpd-ssl.conf を設定する。<code> | + | 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 | ||
| + | </code> | ||
| + | * /usr/local/etc/apache24/extra/httpd-ssl.conf 設定<code> | ||
| + | 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 | Alias /<パス> /usr/local/libexec/novnc | ||
| <Directory /usr/local/libexec/novnc> | <Directory /usr/local/libexec/novnc> | ||
| - | AllowOverride all | + | AllowOverride all |
| - | Order allow,deny | + | Order allow,deny |
| - | Allow from all | + | Allow from all |
| - | Require all granted | + | Require all granted |
| </Directory> | </Directory> | ||
| + | <Location /websockify/> | ||
| + | SSLVerifyClient require | ||
| + | </Location> | ||
| </code> | </code> | ||
| + | * /websockify へは reverse proxy 設定 | ||
| + | * /usr/local/libexec/novnc へは alias 設定 | ||
| * <パス> は推測しにくいものにしたほうが良い? | * <パス> は推測しにくいものにしたほうが良い? | ||
| + | * クライアント証明書で保護 | ||
| + | ==== 接続 ==== | ||
| + | * Aliasで指定したパス+ vnc.html で接続する。 | ||