Jun 9, 2018

目の前のUNIX系コンソールをVNCで共有するには

・インストール
x11vnc is available in the official repositories.
$ sudo apt-get install x11vnc

・パスワード設定
$ mkdir ~/.x11vnc
$ x11vnc -storepasswd password ~/.x11vnc/passwd

バイナリ書き込みされた内容を確認するには次のコマンドで。ファイルのパーミッションは慎重に。
# x11vnc -showrfbauth ~/.x11vnc/passwd

・バックグラウンドモードで起動
$ x11vnc -display :0  -bg -o ~/x11vnc.log rfbauth ~/.x11vnc/passwd

SSH Tunnel
sshの強力な暗号化・認証・アクセス制御をいかすと良い。
以下、SSH導入済みの前提で、
x11vnc を -localhost フラグ付きで起動(x11vncがローカルインターフェイスにバインドされる)。
その後、次のコマンドでvncサーバに接続(さらにvncクライアントで転送されているportに接続)
$ ssh -t -L 5900:localhost:5900 remote_host 'x11vnc -localhost -display :0'

・出典

1 comment:

@taro2006 said...

# cat /etc/init.d/x11vnc

#! /bin/sh
### ref. https://paonejp.github.io/2014/11/28/dti_vps_as_vdi_memo.html
### 2019.12.07
### BEGIN INIT INFO
# Provides: x11vnc
# Required-Start: $syslog $local_fs lightdm
# Required-Stop: $syslog $local_fs
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: x11vnc
# Description: x11vnc
### END INIT INFO

DAEMON=/usr/bin/x11vnc
test -x $DAEMON || exit 0

XAUTH_FILE="/root/.x11vnc/passwd"
# 2019.12.07 # DAEMON_OPTS="-loop -reopen -shared -auth /var/run/lightdm/root/:0 -logappend /var/log/x11vnc.log -localhost -rfbport 5900 -rfbportv6 -1 -repeat"
DAEMON_OPTS="-loop -reopen -shared -auth /var/run/lightdm/root/:0 -logappend /var/log/x11vnc.log -localhost -rfbauth $XAUTH_FILE -rfbport 5900 -rfbportv6 -1 -repeat"
NAME=x11vnc
DESC=X11vnc


set -e

case "$1" in
start)
echo -n "Starting $DESC: "
start-stop-daemon -b --start --quiet --exec $DAEMON -- $DAEMON_OPTS
echo "$NAME."
;;
stop)
echo -n "Stopping $DESC: "
start-stop-daemon --stop --oknodo --quiet --exec $DAEMON
echo "$NAME."
;;
restart)
echo -n "Restarting $DESC: "
start-stop-daemon --stop --oknodo --quiet --exec $DAEMON
sleep 1
start-stop-daemon -b --start --quiet --exec $DAEMON -- $DAEMON_OPTS
echo "$NAME."
;;
*)
N=/etc/init.d/$NAME
echo "Usage: $N {start|stop|restart}" >&2
exit 1
;;
esac
exit 0

※起動オプションの、それぞれの意味を調べておこう