This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision Next revision Both sides next revision | ||
vps:vps4th2nd_10 [2019/04/17 22:40] hoge@hoge [TigerVNC] |
vps:vps4th2nd_10 [2019/07/15 10:41] hoge@hoge |
||
---|---|---|---|
Line 2: | Line 2: | ||
prisoner desktop にブラウザで接続する。 | prisoner desktop にブラウザで接続する。 | ||
+ | {{:vps:novnc.png}} | ||
===== desktop 設定 ===== | ===== desktop 設定 ===== | ||
==== pkg ==== | ==== pkg ==== | ||
Line 7: | Line 8: | ||
* 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 32: | ||
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 48: | ||
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 66: | ||
* git | * git | ||
- | === WebSockify 設定 === | + | ==== WebSockify 設定 ==== |
WebSockify のダウンロードと設定する。 | WebSockify のダウンロードと設定する。 | ||
* websockify をダウンロードするため、launch.sh を一度実行する。<code> | * websockify をダウンロードするため、launch.sh を一度実行する。<code> | ||
Line 74: | Line 77: | ||
</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 $0 (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 106: | ||
</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> | ||
+ | * ログインページ作成を作成する。 | ||
+ | * /usr/local/libexec/novnc/vnc.html を削除もしくは *.html 以外に変更。 | ||
+ | * /usr/local/libexec/novnc/vnc_auto.html を推測しにくい名前に変更。 | ||
+ | |||
+ | ==== apache 設定 ==== | ||
+ | * /usr/local/etc/apache24/httpd.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" | ||
- | == apache 設定 == | + | ProxyRequests Off |
- | WebSockify ディレクトリを組み込む。 | + | ProxyPass /websockify ws://localhost:6080/websockify retry=3 |
- | * /usr/local/etc/apache24/extra/httpd-ssl.conf を設定する。<code> | + | 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 設定 | ||
* <パス> は推測しにくいものにしたほうが良い? | * <パス> は推測しにくいものにしたほうが良い? | ||
+ | * クライアント証明書で保護 | ||