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:

  1. # 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

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

    ReplyDelete