This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision Last revision Both sides next revision | ||
vps:vps4th2nd_10 [2019/03/31 13:15] hoge@hoge |
vps:vps4th2nd_10 [2019/10/20 23:27] hoge@hoge [noVNC 設定] |
||
---|---|---|---|
Line 1: | Line 1: | ||
====== ブラウザでの desktop 接続 ====== | ====== ブラウザでの desktop 接続 ====== | ||
- | prisoner desktop にブラウザで接続する。 | + | prisoner desktop にブラウザで接続する。\\ |
+ | {{:vps:novnc.png}} | ||
+ | ===== desktop 設定 ===== | ||
+ | ==== pkg ==== | ||
+ | pkgにて以下を導入。 | ||
+ | * xdm | ||
+ | * xsm | ||
+ | ==== xdm ==== | ||
+ | prisner desktop 起動時に xdm を起動する。 | ||
+ | * /usr/local/etc/rc.d/xdm 作成<code> | ||
+ | #!/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"</code> | ||
+ | * /etc/rc.conf 編集<code> | ||
+ | xdm_enable="YES" | ||
+ | </code> | ||
+ | * /usr/local/etc/X11/xdm/Xaccess 編集<code> | ||
+ | * #any host can get a login window | ||
+ | </code> | ||
+ | * /usr/local/etc/X11/xdm/xdm-config 編集<code> | ||
+ | !DisplayManager.requestPort: 0 | ||
+ | </code> | ||
+ | |||
+ | |||
+ | |||
+ | |||
+ | ==== TigerVNC ==== | ||
+ | TigerVNC を inetd で制御する。 | ||
+ | |||
+ | * /etc/services 編集<code> | ||
+ | vnc 5901/tcp | ||
+ | </code> | ||
+ | * /etc/inetd.conf 編集<code> | ||
+ | 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> | ||
===== web 設定 ===== | ===== web 設定 ===== | ||
Line 9: | Line 65: | ||
* git | * git | ||
- | === WebSockify 設定 === | + | ==== WebSockify 設定 ==== |
WebSockify のダウンロードと設定する。 | WebSockify のダウンロードと設定する。 | ||
* websockify をダウンロードするため、launch.sh を一度実行する。<code> | * websockify をダウンロードするため、launch.sh を一度実行する。<code> | ||
Line 20: | 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 42: | 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 設定 | ||
* <パス> は推測しにくいものにしたほうが良い? | * <パス> は推測しにくいものにしたほうが良い? | ||
+ | * クライアント証明書で保護 | ||
- | ===== desktop 設定 ===== | ||
- | ==== pkg ==== | ||
- | pkgにて、以下を導入。 | ||
- | * xdm | ||
- | * xsm | ||
- | |||
- | ==== xdm ==== | ||
- | prisner desktop 起動時に xdm を起動する。 | ||
- | * /usr/local/etc/rc.d/xdm を作成<code> | ||
- | #!/bin/sh | ||
- | # | ||
- | |||
- | # PROVIDE: xdm | ||
- | |||
- | . /etc/rc.subr | ||
- | |||
- | name="xdm" | ||
- | rcvar=xdm_enable | ||
- | command="/usr/local/bin/xdm" | ||
- | |||
- | load_rc_config $name | ||
- | run_rc_command "$1" | ||
- | </code> | ||
- | * /etc/rc.conf を編集<code> | ||
- | xdm_enable="YES" | ||
- | </code> | ||
- | * /usr/local/lib/X11/xdm/Xaccess を編集<code> | ||
- | * #any host can get a login window | ||
- | </code> | ||
- | * /usr/local/lib/X11/xdm/Xservers を編集<code> | ||
- | #:0 local /usr/local/bin/X :0 | ||
- | </code> | ||
- | * /usr/local/lib/X11/xdm/xdm-config を編集<code> | ||
- | ! DisplayManager.requestPort: 0 | ||
- | </code> | ||
- | |||
- | ==== TigerVNC ==== | ||
- | TigerVNC を inetd で制御する。 | ||
- | |||
- | * /etc/services を編集<code> | ||
- | vnc 5901/tcp | ||
- | </code> | ||
- | * /etc/inetd.conf を編集<code> | ||
- | vnc stream tcp nowait nobody /usr/local/bin/Xvnc Xvnc -inetd -query localhost -once -geometry <横>x<縦> -securitytypes=none | ||
- | </code> | ||