Glide Note

glidenote's blog

パケットリピータstoneでVNC接続を中継する

普段MacとLinuxを利用しているので、ほとんどがsshしてコマンド操作(CUI)で用が足りるんですが、 たまに遠隔地にあるWindows上でGUI操作をしないといけないことがあるので、stoneとvncで解決させました。 いろいろと方法はあると思いますが、stoneが一番手軽だったので。
(普段利用しているUT-VPNはWin用とLinux用のクライアントはあるんですが、Mac用クライアントが無いので、こんな面倒なことをしてます。)

現在の状態

  • MacbookAirとServerAは同じネットワーク(192.168.11.0/24)
  • ServerAとWindowsPCはVPN(UT-VPN)環境を構築済みで通信可能(172.16.100.0/24)
  • Macbook AirとWindowsPCは直接通信不可(WindowsPCは遠隔地でNAT配下)

環境(OS、IPアドレス)

  • MacbookAir(Lion) 192.168.11.20
  • ServerA(Fedora16) 192.168.11.30,172.16.100.50
  • WindowsPC(XP) 172.16.100.10

実現したいこと

  • stoneでパケットを中継して、MacBookAirからWindowsPCへのVNC接続を可能にする
  • MacbookAirからServerAの5910ポート(192.168.11.30:5910)にVNC接続すると、stoneで中継されWindowsPCの5900ポート(172.16.100.10:5900)に接続される
  • VPN(UT-VPN)上の通信で既に暗号化されているので、今回stoneでSSL化の必要は無し

stoneの導入

stoneはServerA(Fedora16)に導入

1
2
3
4
5
6
7
8
9
mkdir ~/src ~/bin
cd ~/src
wget http://www.gcd.org/sengoku/stone/stone-2.3e.tar.gz
tar zxvf stone-2.3e.tar.gz
cd stone-2.3d-2.3.2.7
curl -o stone.diff -LO "http://bugs.debian.org/cgi-bin/bugreport.cgi?msg=10;filename=stone.diff;att=1;bug=517574"
patch < stone.diff
make linux
cp stone ~/bin

デフォルトのままだとmake linuxでこけるので、ここのpatchも適用してます。patchの内容は下記のような感じで-D_GNU_SOURCEを追加している感じ

stoneの起動

5910ポートで待ち受けて、WindowsPC(172.16.100.10)の5900ポートに中継させます

1
2
3
4
~/bin/stone 172.16.100.10:5900 5910

Jan  7 12:33:43.735910 3078318336 start (2.3e) [11176]
Jan  7 12:33:43.759207 3078318336 stone 3: colinux:rfb <- 0.0.0.0:cm

常用するなら、supervisordとかで起動を管理するのがいいと思いますが、一時的に利用するだけなので、フォアグランドで起動。

MacbookAirからVNC接続

Macの画面共有だとうまく接続できないので、Chicken of the VNCを利用。
うまくVNC接続出来ました。

参考

Comments