Notebook

これは日々の作業を通して学んだことや毎日の生活で気づいたことをを記録しておく備忘録である。

HTML ファイル生成日時: 2024/12/21 11:44:57.596 (台灣標準時)

NetBSD で VNC サーバーとクライアントを使う方法

遠方にある計算機を使う場合、これまで SSH を使ったきたでござる。端末エ ミュレーターが使えればよいのであれば、 SSH を使って remote の計算機に ログインして、そこでコマンドを打てばよいでござる。また、 X11 forwarding を使えば、 remote の計算機で動く X11 クライアントを、手元の 計算機に表示させて操作することもできるでござる。ただ、ネットワーク的に 遠くにある場合、 X11 forwarding だと反応がよくないことがあるでござる。 実用に耐えないこともあるでござる。そのような場合にどうしたらよいのか考 えてみたでござる。 VNC を使えばよいのかもしれない、と思い、試してみた でござる。遠くの計算機では NetBSD が動いている、とするでござる。その計 算機に VNC サーバーをインストールし、動かしてみることを考えてみるでご ざる。

まず、 VNC サーバーを動かす計算機に、 VNC サーバーをインストールするで ござる。 pkgsrc を使って net/tigervnc をインストールすればよいでござる。


# cd /usr/pkgsrc/net/tigervnc
# make install

TigerVNC がインストールされたら、 VNC サーバーを起動してみるでござる。 パスワードを設定するように求められるので、パスワードを決めるでござる。


% vncserver 

You will require a password to access your desktops.

Password:
Verify:
Would you like to enter a view-only password (y/n)? n
A view-only password is not used

New 'myserver:1 (daisuke)' desktop is myserver:1

Creating default startup script /home/daisuke/.vnc/xstartup
Creating default config /home/daisuke/.vnc/config
Starting applications specified in /home/daisuke/.vnc/xstartup
Log file is /home/daisuke/.vnc/myserver:1.log


動かした VNC サーバーを確認してみるでござる。


% vncserver -list

TigerVNC server sessions:

X DISPLAY #     PROCESS ID
:1              18169

ディスプレイ :1 で動いているので、これを終了させてみるでござる。


% vncserver -kill :1
Killing Xvnc process ID 18169

これで、 VNC サーバーを終了させることができたでござる。

幾つかの設定ファイルの雛形が作られたので、それらを編集するでござる。


% cd .vnc
% ls -l
total 1
-rw-r--r--  1 daisuke  taiwan   332 Aug 12 11:20 config
-rw-r--r--  1 daisuke  taiwan  1022 Aug 12 11:25 myserver:1.log
-rw-------  1 daisuke  taiwan     8 Aug 12 11:20 passwd
-rwxr-xr-x  1 daisuke  taiwan   555 Aug 12 11:20 xstartup*
% cp -pi config config.orig
% cp -pi xstartup xstartup.orig
% vi config
% vi xstartup
% diff config.orig config
9a10,12
> 
> geometry=3440x1600
> localhost
% diff xstartup.orig xstartup
16,21c16,21
< if [ -x /etc/X11/xinit/xinitrc ]; then
<   exec /etc/X11/xinit/xinitrc
< fi
< if [ -f /etc/X11/xinit/xinitrc ]; then
<   exec sh /etc/X11/xinit/xinitrc
< fi
---
> #if [ -x /etc/X11/xinit/xinitrc ]; then
> #  exec /etc/X11/xinit/xinitrc
> #fi
> #if [ -f /etc/X11/xinit/xinitrc ]; then
> #  exec sh /etc/X11/xinit/xinitrc
> #fi
23,25c23,28
< xsetroot -solid grey
< xterm -geometry 80x24+10+10 -ls -title "$VNCDESKTOP Desktop" &
< twm &
---
> #xsetroot -solid grey
> xsetroot -solid "midnight blue"
> #xterm -geometry 80x24+10+10 -ls -title "$VNCDESKTOP Desktop" &
> xterm -sb -fn 12x24 -geometry 80x24+0+0 -ls -title "$VNCDESKTOP Desktop" &
> #twm &
> fvwm3 &

新しい設定で VNC サーバーを起動させてみるでござる。


% vncserver 

New 'myserver:1 (daisuke)' desktop is myserver:1

Starting applications specified in /home/daisuke/.vnc/xstartup
Log file is /home/daisuke/.vnc/myserver:1.log

% vncserver -list

TigerVNC server sessions:

X DISPLAY #     PROCESS ID
:1              22205

これで VNC サーバーは動かせたので、今度は、手元の計算機から VNC クライ アントを使って、 VNC サーバーに接続してみるでござる。ここでは、クライ アントからサーバーまでは、信頼できる通信路ではないとするでござる。クラ イアントからサーバーまでは SSH tunnelling を使って通信をすることにする でござる。まず、クライアントから SSH を使ってサーバーにログインするで ござる。ここでは、 SSH は port 50000 で動いているとするでござる。また、 クライアントの port 60000 とサーバーの port 5901 番を SSH tunnelling で接続するでござる。


% ssh -p 50000 -L 60000:localhost:5901 myserver

SSH を使って VNC サーバーに対して port forwarding の設定を行ったら、手 元の計算機にも TigerVNC をインストールするでござる。


# cd /usr/pkgsrc/net/tigervnc
# make install

手元の計算機に TigerVNC をインストールしたら、次のコマンドを打てばよい でござる。


% vncviewer ::60000

すると、以下のようなウィンドウが現れるので、パスワードの入力を求められ るでござる。

fig_202408/vnc_00.png

パスワードを入力し、 OK のボタンを押せば、 VNC サーバーの画面が現れる でござる。

fig_202408/vnc_01.png

ここまで行えば、あとは必要な作業をすればよいでござる。以下は、ウェブブ ラウザーを起動してみたところでござる。

fig_202408/vnc_02.png

参考文献



Frequently accessed files

  1. Computer___Python/20220518_0.html
  2. Computer___Network/20230726_00.html
  3. Misc___Taiwan/20240207_00.html
  4. Computer___Network/20230516_00.html
  5. Computer___FreeBSD/20220621_0.html
  6. Computer___Python/20220715_0.html
  7. Computer___Network/20230508_00.html
  8. Food___Taiwan/20220429_0.html
  9. Computer___Network/20240130_00.html
  10. Computer___NetBSD/20220817_3.html
  11. Computer___Python/20220410_0.html
  12. Computer___Network/20240416_00.html
  13. Computer___NetBSD/20230119_00.html
  14. Computer___Debian/20210223_1.html
  15. Computer___Python/20221013_0.html
  16. Computer___Python/20210124_0.html
  17. Computer___NetBSD/20220428_0.html
  18. Computer___NetBSD/20220818_1.html
  19. Computer___NetBSD/20240101_02.html
  20. Science___Math/20220420_0.html
  21. Computer___Python/20240101_00.html
  22. Computer___NetBSD/20220808_0.html
  23. Computer___TeX/20230503_00.html
  24. Science___Astronomy/20220503_0.html
  25. Computer___NetBSD/20230515_00.html
  26. Computer___Network/20220413_1.html
  27. Computer___NetBSD/20210127_0.html
  28. Computer___TeX/20231107_00.html
  29. Computer___Python/20220816_1.html
  30. Computer___Python/20230717_01.html


HTML file generated by Kinoshita Daisuke.