Home > CONFIGS > Desvendando o RealVNC para Unix

Desvendando o RealVNC para Unix

June 15th, 2005

Artigo retirado do site Dicas-L, da unicamp.

Colabora??o: Ricardo Iramar dos Santos

1. Introdu??o
=============

A muito tempo utilizo o RealVNC (chamemos de VNC daqui para frente) e n?o s? eu mas o mundo inteiro tem visto uma grande evolu??o deste software que tanto nos ajuda no dia a dia.

No ?nicio, eu utilizava o vncserver que na verdade ? um script em Perl. O vncserver executa o Xvnc que cria uma outra sess?o do X no ambiente do VNC. Por?m n?o era p?ss?vel acessar via VNC sess?es do X j? iniciada utilizando o vncserver.

Ent?o um amigo me apresentou o x0vncserver (esse sim ? um bin?rio) que compartilha a sess?o do X com quase todas as op??es do Xvnc.

Em um belo dia, navegando pelo site http://www.realvnc.com (http://www.realvnc.com), encontrei uma documenta??o sobre como carregar o m?dulo do VNC no X (http://www.realvnc.com/products/free/4.1/x0.html). A implementa??o foi mais simples do que eu imaginava. Al?m disso descobri que era poss?vel acessar minha m?quina remotamente usando somente um browser com suporte a java.

Pensando nessas solu??es resolvi escrever uma documenta??o completa ? respeito. Ent?o comecei a ler mais a respeito sobre o VNC e lendo a man page do Xvnc percebi que tamb?m era poss?vel usar o Xvnc tamb?m com o inetd.

Nesta documenta??o ser? abordada todas essas formas de utiliza??o do VNC para Unix. Em todos os exemplos estarei utilizando a vers?o 4.1.1 do VNC, Slackware 10.1 e Perl 5.8.6. Por?m, vou tentar ser o mais gen?rico poss?vel para atender a outras vers?es do VNC assim como outras distribui??es Linux.

Agora chega de conversa e m?os ? obra.

2. Pr?-requisitos
=================

- VNC Free Edition for Linux (x86) 4.1.1 (vnc-4_1_1-x86_linux.tar.gz (http://www.realvnc.com/products/free/4.1/download.html)).
- Slackware Linux 10.1 (http://www.slackware.com), n?o ser? abordada a instala??o ou configura??o.
- Perl 5.8.6 (http://www.perl.com), n?o ser? abordada a instala??o ou configura??o.

3. Instala??o
=============

Fa?a o download do pacote de instala??o completo do VNC Free Edition for Linux (x86) vers?o 4.1.1 e descompacte da seguinte forma.

agent@smith:~/bin?rios/vnc$ tar zxvf vnc-4_1_1-x86_linux.tar.gz
vnc-4_1_1-x86_linux/
vnc-4_1_1-x86_linux/README
vnc-4_1_1-x86_linux/vncinstall
vnc-4_1_1-x86_linux/LICENCE.txt
vnc-4_1_1-x86_linux/vnc.so
vnc-4_1_1-x86_linux/vncviewer
vnc-4_1_1-x86_linux/vncpasswd
vnc-4_1_1-x86_linux/vncconfig
vnc-4_1_1-x86_linux/x0vncserver
vnc-4_1_1-x86_linux/Xvnc
vnc-4_1_1-x86_linux/vncviewer.man
vnc-4_1_1-x86_linux/vncpasswd.man
vnc-4_1_1-x86_linux/vncconfig.man
vnc-4_1_1-x86_linux/x0vncserver.man
vnc-4_1_1-x86_linux/Xvnc.man
vnc-4_1_1-x86_linux/vncserver
vnc-4_1_1-x86_linux/vncserver.man
vnc-4_1_1-x86_linux/java/
vnc-4_1_1-x86_linux/java/index.vnc
vnc-4_1_1-x86_linux/java/vncviewer.jar
vnc-4_1_1-x86_linux/java/logo150×150.gif
agent@smith:~/bin?rios/vnc$

Agora execute os comandos abaixo para a instala??o.

agent@smith:~/bin?rios/vnc$ cd vnc-4_1_1-x86_linux
agent@smith:~/bin?rios/vnc/vnc-4_1_1-x86_linux$ su
Password authentication bypassed.
root@smith:/home/agent/bin?rios/vnc/vnc-4_1_1-x86_linux# ./vncinstall /usr/local/bin /usr/local/man
Copying Xvnc to /usr/local/bin
Copying Xvnc.man to /usr/local/man/man1/Xvnc.1
Copying vncviewer to /usr/local/bin
Copying vncviewer.man to /usr/local/man/man1/vncviewer.1
Copying vncpasswd to /usr/local/bin
Copying vncpasswd.man to /usr/local/man/man1/vncpasswd.1
Copying vncconfig to /usr/local/bin
Copying vncconfig.man to /usr/local/man/man1/vncconfig.1
Copying vncserver to /usr/local/bin
Copying vncserver.man to /usr/local/man/man1/vncserver.1
Copying x0vncserver to /usr/local/bin
Copying x0vncserver.man to /usr/local/man/man1/x0vncserver.1
Copying vnc.so to /usr/X11R6/lib/modules/extensions
root@smith:/home/agent/bin?rios/vnc/vnc-4_1_1-x86_linux#

Se voc? pretende acessar sua m?quina usando um browser com suporte a java execute os comandos abaixo.

root@smith:/home/agent/bin?rios/vnc/vnc-4_1_1-x86_linux# mkdir -p /usr/local/vnc/classes
root@smith:/home/agent/bin?rios/vnc/vnc-4_1_1-x86_linux# cp java/* /usr/local/vnc/classes
root@smith:/home/agent/bin?rios/vnc/vnc-4_1_1-x86_linux#

Agora vamos criar o arquivo que cont?m a senha do VNC, porque n?o queremos que todo mundo acesse nosso ambiente. Digite os comandos abaixo e escolha uma senha com seis ou mais caracteres.

root@smith:/home/agent/bin?rios/vnc# exit
exit
agent@smith:~/bin?rios/vnc$ vncpasswd
Password:
Verify:
agent@smith:~/bin?rios/vnc$

Por padr?o a senha ? gerada no arquivo $HOME/.vnc/passwd.

Se voc? esta usando VNC provavelmente n?o ir? mais precisar do recurso de acesso remoto do X que por padr?o vem habilitado na maioria das distribui??es. Caso for utilizar o VNC com inetd n?o desabilite essa op??o, veja porque no item Utilizando o VNC com inetd.

Para desabilitar tal op??o, caso use GDM assim como eu, basta alterar a op??o DisallowTCP para true (exemplo: DisallowTCP=true) no arquivo /etc/X11/gdm/gdm.conf.

Caso voc? utilize o script startx para iniciar o X, basta editar a linha serverargs=”", no pr?prio arquivo startx, para serverargs=”-nolisten tcp”. Se voc? utiliza kdm ou xdm edite a linha :0 local /usr/X11R6/bin/X para :0 local /usr/X11R6/bin/X -nolisten tcp do arquivo /etc/X11/xdm/Xservers.

4. Utiliza??o
=============

Para um melhor entendimento este item foi subdividido em itens menores conforme as formas de utiliza??o do VNC.

Como a maioria das op??es do arquivo Xvnc ? v?lida para todos os itens abaixo, segue abaixo a descri??o das op??es que acho mais relevantes.

-desktop [nome]
Espec?fica o nome que ir? aparecer na janela do vncviewer. O padr?o ? x11.

-rfbport [porta]
Espec?fica a porta em que VNC ir? escutar, ideal se o firewall da sua empresa bloqueia a
porta padr?o. O padr?o ? 5900 mais o n?mero do display.

-httpd [diret?rio]
Executa um mini servidor HTTP com diret?rio raiz informado. Este diret?rio raiz deve conter
as classes java para o viewer, que por padr?o ficam em “/usr/local/vnc/classes”. Esta op??o
permite voc? acessar seu ambiente remotamente com um browser que tenha suporte a java.

-httpPort [porta]
Espec?fica a porta na qual o servidor HTTP ir? escutar. O padr?o ? 5800 mais o n?mero do
display.

-rfbauth [arquivo], -PasswordFile [arquivo]
Espec?fica o arquivo de senhas que o VNC deve consultar quando receber uma requisi??o. Voc?
deve especificar o arquivo que foi gerado atrav?s do arquivo vncpasswd conforme procedimento
acima (exemplo: “/home/agent/.vnc/passwd”).

-SendCutText
Habilita o compartilhamento da ?rea de transfer?ncia entre o ambiente do VNC para a m?quina
que esta executando o vncviewer. Esta op??o ? habilitada por padr?o. Para que esta op??o
funcione ? necess?rio executar o vncconfig no ambiente do VNC.

-AcceptCutText
Idem a anterior por?m no sentido inverso.

-DisconnectClients
Desconecta o usu?rio atual do ambiente VNC quando uma nova requisi??o n?o compartilhada ?
feita. O padr?o ? ativado. Se est? op??o for definida como “false”, novas requis?es n?o
compartilhadas ser?o recusadas enquanto o primeiro usu?rio estiver ativo. Quando est? op??o
for combinada com a op??o “NeverShared” s? ser? poss?vel ter um ?nico usu?rio por vez.

-NeverShared
Independente da configura??o do client, n?o permite conex?es compartilhadas. O padr?o ?
desativado.

-AlwaysShared
Independente da configura??o do client, sempre permite conex?es compartilhadas. O padr?o ?
desativado.

-SecurityTypes [op??o]
Define o modo de autentica??o. Atualmente s? existem as op??es “None” e “VncAuth”. O valor
padr?o ? “VncAuth”. Se voc? configurar esta op??o com “None” n?o ser? necess?rio informar
nenhuma senha no momento da requisi??o, isto ?, qualquer um ter? acesso ao seu ambiente VNC.
Portanto s? configure com “None” est?o op??o se voc? tiver certeza do que est? fazendo.

-QueryConnect
Pergunta ao usu?rio do ambiente VNC se deve aceitar ou n?o conex?es externas no momento da
requisi??o. Se voc? for usar o m?dulo do VNC ou vncserver ? necess?rio executar o vncconfig
no ambiente VNC, entretando n?o ? necess?rio para o x0vncserver.

-localhost
Aceita somente requisi??es locais. Ideal se voc? for acessar o ambiente atrav?s de um t?nel
SSH. Veja a documenta??o “Tunelando com OpenSSH” em
http://agentsmith.powerlinux.com.br/docs/doc7.html.

4.1. Utilizando o vncserver
===========================

Necessariamente voc? n?o precisa fazer nenhum configura??o inicial para usar o vncserver.

Quando o vncserver ? executado pela primeira vez ele checa a exist?ncia dos arquivos $HOME/.vnc/passwd (caso um alternativo n?o seja informado pela op??o -rfbauth ou -PasswordFile) e $HOME/.vnc/xstartup. Caso algum desses arquivos n?o exista o vncserver ir? criar um arquivo padr?o. No caso do arquivo $HOME/.vnc/passwd voc? precisa informar a senha de acesso ao ambiente do VNC.

agent@smith:~$ vncserver

You will require a password to access your desktops.

Password:
Verify:

New ’smith:1 (agent)’ desktop is smith:1

Creating default startup script /home/agent/.vnc/xstartup
Starting applications specified in /home/agent/.vnc/xstartup
Log file is /home/agent/.vnc/smith:1.log

agent@smith:~$

Por padr?o o vncserver utiliza o display :1, sendo assim o Xvnc ir? escutar na porta 5901. Se voc? deseja saber quais op??es que foram passadas para o Xvnc execute o comando abaixo.

agent@smith:~$ ps aux | grep Xvnc
agent 436 0.1 1.4 9528 7404 pts/0 S 17:00 0:00 Xvnc :1 -desktop smith:1 (agent) -httpd /usr/local/vnc/classes -auth /home/agent/.Xauthority -geometry 1024×768 -depth 16 -rfbwait 30000 -rfbauth /home/agent/.vnc/passwd -rfbport 5901 -pn

O arquivo xstartup padr?o de longe n?o ? a melhor op??o, pois o mesmo executa o twm como gerenciador de janelas. Se voc? deseja que seja iniciado o mesmo gerenciador de janelas que ? iniciado pelo script startx substitua o arquivo xstartup com o conte?do abaixo.

#!/bin/sh

[ -r $HOME/.Xresources ] && xrdb $HOME/.Xresources
vncconfig -iconic &
sh /etc/X11/xinit/xinitrc

Se voc? possui um configura??o personalizada para seu usu?rio altere a linha sh /etc/X11/xinit/xinitrc para sh $HOME/.vnc/xinitrc.

Voc? tamb?m pode utilizar todas as op??es descritas no iten Utiliza??o para o arquivo Xvnc.

agent@smith:~$ vncserver –help

usage: vncserver [:] [-name ] [-depth ]
[-geometry x]
[-pixelformat rgbNNN|bgrNNN]

vncserver -kill

Al?m das op??es descritas no item Utiliza??o voc? pode especificar as dimens?o da nova sess?o do X com a op??o -geometry. Essa op??o n?o pode ser usada com as outras formas de utiliza??o do VNC descritas nos outros itens.

-geometry [largura]x[altura]
Define as dimens?es da uma nova sess?o do X criada pelo vncserver. O padr?o ? 1024×768.

Essa op??o ? util quando voc? sabe as dimens?es do ambiente onde o vncviewer ser? executado. Desta forma voc? pode definir as dimens?es da nova sess?o do X seja menor do que as dimens?es do ambiente da m?quina onde ser? executado o vncviewer.

Para que a nova sess?o do X n?o escute na porta 6000 voc? tamb?m pode adicionar a op??o -nolisten tcp no final do comando do vncserver.

O VNC utiliza como padr?o o arquivo $HOME/.vnc/[hostname][display].log para armazenar seus logs. O $HOME/.vnc/[hostname][display].pid armazena o id do processo do Xvnc, este n?mero ? utilizado pelo comando vncserver -kill.

Para finalizar o ambiente VNC e a sess?o do X basta executar vncserver -kill seguido do display.

agent@smith:~$ vncserver -kill :1
Killing Xvnc process ID 436

4.2. Utilizando o x0vncserver
=============================

Para usar o x0vncserver voc? ser? obrigado a usar no m?nimo a op??o -rfbauth [arquivo] ou -PasswordFile [arquivo] caso voc? deseje que seu ambiente seja protegido por uma senha ou -SecurityTypes None para um acesso direto sem senha.

Se voc? estiver localmente na m?quina na qual deseja compartilhar o ambiente VNC basta executar o comando abaixo em um terminal qualquer. N?o feche este terminal pois se n?o o processo do VNC ser? finalizado tamb?m. Voc? pode criar um atalho em seu gerenciador de janela para n?o precisar deixar um terminal aberto ou colocar esse comando no arquivo ~/.xprofile para ser executa na inicializa??o da sess?o do X.

agent@smith:~$ x0vncserver PasswordFile=~/.vnc/passwd &

Ou se voc? estiver remotamente via SSH ser? necess?rio especificar o display com a op??o -display :0 da seguinte forma.

agent@smith:~$ x0vncserver PasswordFile=~/.vnc/passwd -display :0 &

Caso voc? use GDM e ao tentar usar o x0vncserver ? retornado o erro Xlib: Invalid MIT-MAGIC-COOKIE-1 key configure a v?riavel XAUTHORITY de acordo com o arquivo utilizado pelo GDM da seguinte forma.

agent@smith:~# XAUTHORITY=/var/lib/gdm/\:0.Xauth x0vncserver PasswordFile=/home/agent/.vnc/passwd -display :0 &

Se voc? iniciou a sess?o do X via startx e tamb?m tiver problemas do tipo Xlib: connection to “:0.0″ refused by server utilize o comando xhost + como root antes de executar o x0vncserver.

Voc? tamb?m pode utilizar as op??es descritas no item Utiliza??o.

agent@smith:~$ x0vncserver -h

usage: x0vncserver [ ]

Parameters can be turned on with - or off with - =0
Parameters which take a value can be specified as -
Other valid forms are = - ==
Parameter names are case-insensitive.

Para finalizar o x0vncserver basta executar o comando abaixo.

agent@smith:~$ killall -9 x0vncserver
[1]+ Killed x0vncserver PasswordFile=~/.vnc/passwd -display :0

4.3. Utilizando o VNC como m?dulo para X
========================================

Atualmente utilizo o VNC desta forma, ela ? ideal para quem n?o usa uma m?quina compartilhada. Caso sua m?quina seja compartilhada com outros usu?rios utilize o VNC com inetd conforme item Utilizando o VNC com inetd.

Edite o arquivo /etc/X11/xorg.conf ou XF86Config e insira a linha Load “vnc” na sess?o Module.

Section “Module”

Load “vnc”
EndSection

Neste mesmo arquivo na sess?o Screen insira as op??es do Xvnc descritas no item Utiliza??o conforme desejar.

Section “Screen”

# VNC Configuration
# Option “SecurityTypes” “None”
Option “SecurityTypes” “VncAuth”
Option “UserPasswdVerifier” “VncAuth”
Option “PasswordFile” “/home/agent/.vnc/passwd”
Option “Httpd” “/usr/local/vnc/classes”
Option “Desktop” “Agent Smith VNC”
EndSection

Agora reinicie o X (Ctrl+Alt+Backspace ou killall -1 X) para carregar o m?dulo do VNC. Para descarregar o m?dulo edite o arquivo xorg.conf ou XF86Config novamente e comente a linha Load “vnc” colocando um # no in?cio.

4.4. Utilizando o VNC com inetd
===============================

O VNC com inetd ? ideal para m?quinas utilizadas por v?rios usu?rios ao mesmo tempo, pois permite multiplos logins com usu?rios diferentes ao mesmo tempo. Para isso voc? precisa ter um gerenciador de login gr?fico com suporte ? XDMCP. Al?m disso o Xvnc ser? executado somente a cada requis?o externa.

Existem dois modos no qual o VNC pode ser utilizado com o inetd chamados nowait e wait.

4.4.1. Modo nowait
==================

No modo nowait a cada requis?o externa em uma mesma porta o Xnvc ? executado. O Xvnc nunca ir? escutar a porta diretamente, portanto n?o ser? poss?vel efetuar requisi??es externas compartilhadas. Entretanto, utilizando o vncconfig ? poss?vel efetuar requisi??es reversas (do servidor para o cliente) colocando o vncviewer em modo de escuta, veja em detalhes no item Utilizando o vncconfig mais abaixo. Quando a conex?o com o vncviewer ? finalizada ou interrompida o processo do Xnvc tamb?m ? finalizado.

Para habilitar esse modo edite o arquivo /etc/inetd.conf e insir? a seguinte linha.

5900 stream tcp nowait nobody /usr/local/bin/Xvnc Xvnc -inetd -query localhost -once securitytypes=none

Neste exemplo a cada requisi??o externa o Xvnc ser? executado e o usu?rio ter? acesso da tela de login gr?fico via XDMCP, desta forma n?o precisamos configurar uma senha para o ambiente do VNC (securitytypes=none).

Para parar de usar o VNC basta comentar a linha do inetd.conf e reiniciar o inetd (/etc/rc.d/rc.inetd restart ou killall -1 inetd).

4.4.2. Modo wait
================

No modo wait, na primeira requis?o, o inetd faz com que o Xvnc seja executando escutando a porta diretamente. Isto significa que para cada porta existir? somente Xvnc executando. Portanto novas requisi??es compartilhadas poder?o ser aceitas pelo Xvnc. Mesmo quando a conex?o com o vncviewer for finalizada ou interrompida o processo do Xnvc continuar? rodando. O processo do Xnvc somente ser? finalizado quando o usu?rio efetuar um logoff da sess?o do gerenciador de login.

Para habilitar esse modo edite o arquivo /etc/inetd.conf e insir? a seguinte linha.

5900 stream tcp wait agent /usr/local/bin/Xvnc Xvnc -inetd -query localhost -once passwordFile=/home/agent/.vnc/passwd

Neste modo ? necess?rio especificar um arquivo de senha pois o Xvnc continuar? rodando at? que o usu?rio efetue o logoff. Se voc? fechar a janela do vncviewer o Xvnc ainda continuar? rodando podendo ser acessado posteriormente por qualquer usu?rio que tenha acesso a rede. Al?m disso o Xvnc poder? receber requisi??es compartilhadas.

Para parar de usar o VNC basta comentar a linha do inetd.conf e reiniciar o inetd (/etc/rc.d/rc.inetd restart ou killall -1 inetd).

5. Utilizando o vncconfig
=========================

O vncconfig possu? duas finalidades. A principal ? para controlar um Xvnc que j? esta em execu??o e a outra ? habilitar o compartilhamento da ?rea de transfer?ncia.

Segue abaixo as op??es para a fun??o principal do vncconfig.

-connect [nome ou ip]:[porta]
Faz um conex?o reversa com um vncviewer que esta escutando em [nome ou ip]. Se a op??o
:[porta] n?o for especif?cada a padr?o (5500) ser? utilizada.

-disconnect
Desconecta todos os clientes conectados ao ambiente VNC.

[-set] [op??o do Xvnc]=[valor]
Especif?ca um valor para o Xvnc que esta em execu??o. Essa op??o n?o serve para todas as
op??es do Xvnc.

-list
Lista todos as op??es que Xvnc suporta.

-get [op??o do Xvnc]
Imprime na tela o valor atual da op??o do Xvnc.

-desc [op??o do Xvnc]
Imprime na tela um pequena descri??o da op??o do Xvnc.

Segue abaixo as op??es para o compartilhamento da ?rea de transfer?ncia.

-display [display]
Especif?ca o display em que o ambiente VNC esta sendo executado.

-nowin
N?o exibe a janela de compartilhamento da ?rea de transfer?ncia.

-iconic
Executa a janela de compartilhamento da ?rea de transfer?ncia minimizada.

6. Utilizando o vncviewer ou browser
====================================

O vncviewer ? o cliente para acesso ao ambiente do VNC. Quando executa sem nenhuma op??o ? exibido uma janela para que voc? forne?a as informa??es do ambiente VNC que se deseja conectar.

Voc? tamb?m pode especif?car essas op??es via linha de comando da seguinte forma vncviewer [op??es] nome ou (ip)[:display].

? possivel executar o vncviewer em modo de escuta da seguinte forma vncviewer [op??es] -listen [porta]. Nesse modo a requisi??o ser? feita atrav?s do servidor onde se encontra o ambiente VNC em execu??o.

Cado voc? n?o especif?que o modo de condifica??o e a quantidade de cores o vncviewer ir? testar a velocidade entre o cliente e o server e selecionar? a mais adequada. Uma vez conectado voc? poder? alterar algumas dessas op??es atrav?s do menu do vncviewer precionando a tecla F8.

Segue abaixo as principais op??es que voc? pode utilizar com vncviewer via linha de comando.

-listen [porta]
Especif?ca a porta em que o o vncviewer ir? escutar. A porta padr?o ? 5500. A conex?o remota
deve ser inicia a partir do ambiente VNC utilizando o vncconfig (exemplo “vncconfig -connect
192.168.0.2:5500″).

-Shared
Envia uma requisi??o compartilhada. Por padr?o o ambiente VNC fecha todas as outras conex?es
quando recebe uma nova requisi??o n?o compartilhada.

-ViewOnly
Faz com que os eventos de teclado e mouse n?o sejam enviados para o ambiente VNC. Essa op??o
? util quando se deseja somente visualizar somente o que outro usu?rio j? conectado esta
fazendo, por isso ? ideal que essa ela seja utilizada em conjunto com a op??o “-Shared”.

-FullScreen
Inicia a sess?o em modo tela cheia.

Outras op??es do vncviewer podem ser vistas em sua man page (man vncviewer).

Para acessar um ambiente via browser, caso o servidor tenha suporte, basta digitar o endere?o seguido de dois pontos e a porta na barra de endere?os (exemplo http://192.168.0.2:5800). O unico pr?-requisito ? que o browser precisa ter suporte a java.

7. Conclus?o
============

O VNC ? mais f?cil de usar do que ele ja aparenta ser. Al?m de f?cil existe diversas formas seguras de utiliza??o.

A ?nica implementa??o que falta para o VNC ? implementar a transfer?ncia de arquivos entre o servidor e cliente. Isso j? existe para os projetos http://ultravnc.sourceforge.net e http://www.tightvnc.com por?m s? para Windows.

8. Refer?ncias
==============

- RealVNC (http://www.realvnc.com)
- Google (http://www.google.com.br)

CONFIGS

  1. September 21st, 2008 at 12:07 | #1

    検討に値する。

  2. September 23rd, 2008 at 11:31 | #2

    見てよ。

  3. September 29th, 2008 at 07:07 | #3

    私はこの悪魔のようなうつ病治療と20年間苦闘しました。はじめの10年は一人でそしてもう10年はうつ病あるドクうつ病ターと共にうつ病に立ち向かっうつ病たと言っていいでしょう。それはあまりうつ病にうつ病長く、辛いうつ病治療の経験でした。

  4. October 12th, 2008 at 04:21 | #4

    正統派ホストクラブでは落ち着きと優雅さがあります。華やかに最高級のおもてなしで貴女を美しく演出。洗練された雰囲気で華やかな夜を愉しみたい貴女は正統派ホストクラブへ。歌舞伎町?都内?神奈川?千葉?埼玉?関西で正統派ホストクラブをお探しなら『ADAM』でチェック!

  5. October 13th, 2008 at 01:22 | #5

    The vitiligo pamphlet vitiligo is a skin, an introduction to vitiligo by the vitiligo society.

  6. October 13th, 2008 at 06:47 | #6

    贏得兩老首肯,向著他的國際結婚計劃邁進。國際結婚在日本很盛行,尤其女孩子。。國際結婚雖浪漫,但從來不是易事,因為文化差異雖是老生常談。

  7. October 13th, 2008 at 13:33 | #7

    クレジットカード 現金化,クレジットカード 現金化フォーム,クレジットカード 現金化

  8. October 20th, 2008 at 13:37 | #8

    We offer wow powerleveling , cheap wow power level

  9. December 12th, 2008 at 13:56 | #9

    cheapest maplestory mesos, play maplestory mesos you can Buy maplestory mesos.

  1. November 14th, 2008 at 03:51 | #1
  2. November 14th, 2008 at 04:56 | #2
  3. November 14th, 2008 at 07:04 | #3
  4. November 14th, 2008 at 08:26 | #4
  5. November 14th, 2008 at 08:40 | #5
  6. November 14th, 2008 at 12:36 | #6
  7. November 14th, 2008 at 19:35 | #7
  8. November 14th, 2008 at 20:36 | #8
  9. November 15th, 2008 at 03:56 | #9
  10. November 15th, 2008 at 04:08 | #10
  11. November 15th, 2008 at 05:11 | #11
  12. November 15th, 2008 at 12:16 | #12
  13. November 15th, 2008 at 19:57 | #13
  14. November 16th, 2008 at 04:19 | #14
  15. November 16th, 2008 at 04:24 | #15
  16. November 16th, 2008 at 12:34 | #16
  17. November 16th, 2008 at 15:25 | #17
  18. November 16th, 2008 at 18:56 | #18
  19. November 16th, 2008 at 20:32 | #19
  20. November 16th, 2008 at 23:02 | #20
  21. November 17th, 2008 at 06:10 | #21
  22. November 17th, 2008 at 19:30 | #22
  23. November 17th, 2008 at 19:31 | #23
  24. November 18th, 2008 at 02:18 | #24
  25. November 18th, 2008 at 06:08 | #25
  26. November 18th, 2008 at 19:26 | #26
  27. November 19th, 2008 at 02:08 | #27
  28. November 19th, 2008 at 23:01 | #28
  29. November 20th, 2008 at 00:25 | #29
  30. November 20th, 2008 at 20:31 | #30
  31. November 20th, 2008 at 21:22 | #31
  32. November 21st, 2008 at 03:07 | #32
  33. November 21st, 2008 at 19:12 | #33
  34. November 21st, 2008 at 20:35 | #34
  35. November 22nd, 2008 at 03:03 | #35
  36. November 22nd, 2008 at 19:28 | #36
  37. November 22nd, 2008 at 19:29 | #37
  38. November 23rd, 2008 at 03:32 | #38
  39. November 23rd, 2008 at 19:44 | #39
  40. November 24th, 2008 at 19:33 | #40
  41. November 26th, 2008 at 08:06 | #41
  42. November 26th, 2008 at 20:19 | #42
  43. November 26th, 2008 at 23:18 | #43
  44. November 27th, 2008 at 21:31 | #44
  45. November 27th, 2008 at 23:01 | #45
  46. November 28th, 2008 at 03:22 | #46
  47. November 28th, 2008 at 23:58 | #47
  48. November 29th, 2008 at 07:20 | #48
  49. November 29th, 2008 at 19:54 | #49
  50. November 29th, 2008 at 23:44 | #50
  51. November 30th, 2008 at 04:28 | #51
  52. December 1st, 2008 at 01:37 | #52
  53. December 1st, 2008 at 03:58 | #53
  54. December 1st, 2008 at 17:39 | #54
  55. December 2nd, 2008 at 10:55 | #55
  56. December 2nd, 2008 at 22:06 | #56
  57. December 3rd, 2008 at 13:01 | #57
  58. December 4th, 2008 at 10:52 | #58
  59. December 4th, 2008 at 19:10 | #59
  60. December 5th, 2008 at 12:14 | #60
  61. December 6th, 2008 at 13:24 | #61
  62. December 7th, 2008 at 02:48 | #62
  63. December 9th, 2008 at 21:16 | #63
  64. December 9th, 2008 at 23:53 | #64
  65. December 10th, 2008 at 01:35 | #65
  66. December 10th, 2008 at 05:21 | #66
  67. December 10th, 2008 at 09:24 | #67
  68. December 10th, 2008 at 11:06 | #68
  69. December 10th, 2008 at 14:03 | #69
  70. December 10th, 2008 at 17:28 | #70
  71. December 10th, 2008 at 20:24 | #71
  72. December 11th, 2008 at 01:42 | #72
  73. December 11th, 2008 at 04:23 | #73
  74. December 11th, 2008 at 09:27 | #74
  75. December 11th, 2008 at 14:02 | #75
  76. December 11th, 2008 at 17:34 | #76
  77. December 11th, 2008 at 20:23 | #77
  78. December 12th, 2008 at 05:16 | #78
  79. December 12th, 2008 at 13:05 | #79
  80. December 12th, 2008 at 20:14 | #80
  81. December 12th, 2008 at 23:32 | #81
  82. December 13th, 2008 at 06:35 | #82
  83. December 13th, 2008 at 13:21 | #83
  84. December 13th, 2008 at 19:10 | #84
  85. December 14th, 2008 at 04:00 | #85
  86. December 14th, 2008 at 05:23 | #86
  87. December 14th, 2008 at 13:58 | #87
  88. December 14th, 2008 at 18:52 | #88
  89. December 15th, 2008 at 00:30 | #89
  90. December 15th, 2008 at 16:05 | #90
  91. December 15th, 2008 at 21:37 | #91
  92. December 16th, 2008 at 05:56 | #92
  93. December 16th, 2008 at 13:50 | #93
  94. December 16th, 2008 at 21:59 | #94
  95. December 17th, 2008 at 05:52 | #95
  96. December 17th, 2008 at 09:37 | #96
  97. December 17th, 2008 at 13:56 | #97
  98. December 17th, 2008 at 20:36 | #98
  99. December 17th, 2008 at 21:49 | #99
  100. December 17th, 2008 at 23:29 | #100
  101. December 18th, 2008 at 06:19 | #101
  102. December 18th, 2008 at 13:14 | #102
  103. December 18th, 2008 at 15:08 | #103
  104. December 19th, 2008 at 04:53 | #104
  105. December 19th, 2008 at 07:34 | #105
  106. December 19th, 2008 at 13:54 | #106
  107. December 19th, 2008 at 15:30 | #107
  108. December 20th, 2008 at 06:20 | #108
  109. December 20th, 2008 at 11:39 | #109
  110. December 22nd, 2008 at 17:21 | #110
  111. December 22nd, 2008 at 20:16 | #111
  112. December 22nd, 2008 at 21:59 | #112
  113. December 23rd, 2008 at 09:00 | #113
  114. December 24th, 2008 at 21:25 | #114
  115. December 24th, 2008 at 21:32 | #115
  116. December 25th, 2008 at 15:34 | #116
  117. December 25th, 2008 at 16:30 | #117
  118. December 25th, 2008 at 22:56 | #118
  119. December 25th, 2008 at 23:45 | #119
  120. December 26th, 2008 at 09:58 | #120
  121. December 26th, 2008 at 15:50 | #121
  122. December 27th, 2008 at 08:38 | #122
  123. December 27th, 2008 at 08:41 | #123
  124. December 27th, 2008 at 21:07 | #124
  125. December 28th, 2008 at 08:10 | #125
  126. December 28th, 2008 at 10:55 | #126
  127. December 28th, 2008 at 12:01 | #127
  128. December 28th, 2008 at 20:10 | #128
  129. December 29th, 2008 at 07:33 | #129
  130. December 31st, 2008 at 01:24 | #130
  131. January 3rd, 2009 at 22:07 | #131
  132. January 4th, 2009 at 13:28 | #132
  133. January 5th, 2009 at 07:55 | #133
  134. January 8th, 2009 at 07:08 | #134
  135. January 8th, 2009 at 19:46 | #135