GNU/Linux >> Linux の 問題 >  >> Ubuntu

リモートubuntu16.10サーバーにXfceデスクトップをセットアップし、VNC経由でアクセスします

リモートサーバーでデスクトップを実行する

通常、リモートLinuxサーバーで作業する場合はsshターミナルを使用します。ただし、サーバー上でGUIアプリを実行し、それをかなりの時間実行し続ける必要がある場合があります。

最近、似たようなことをしなければならなかったので、デスクトップでUbuntuサーバーをセットアップし、VNC経由でアクセスしました。

アイデアは単純です。選択したデスクトップ環境をサーバーにインストールします。このチュートリアルでは、GnomeやKDEなどの大きなものに比べてフットプリントが軽いXfceを使用します。

次に、vncサーバーを使用してデスクトップ環境を起動し、ローカルデスクトップマシンからvncクライアントを介してアクセスするXディスプレイセッションを作成します。

デスクトップ環境とVNCサーバーをインストールする

Xfceは軽量デスクトップであり、リモートサーバーでの使用に最適です。まず、xfceパッケージとtightvncサーバーをインストールします。実際のインストールを行う前に、パッケージキャッシュを更新することをお勧めします。

sudo apt-get update
sudo apt-get install xfce4 xfce4-goodies tightvncserver

これはパッケージをインストールするだけで、何も開始しないことに注意してください。このガイドの後半で、独自の設定でvncserverを起動します。

dpkgプロセスが予期せず終了した場合は、次のコマンドを実行する必要があります-

# sudo dpkg --configure -a

vncの新しいユーザーを作成する

次に行うことは、vncセッション中に使用されるUNIXユーザーを作成することです。ユーザー名は何でもかまいません。 adduserコマンドを使用します。

# adduser mike
Adding user `mike' ...
Adding new group `mike' (1001) ...
Adding new user `mike' (1001) with group `mike' ...
Creating home directory `/home/mike' ...
Copying files from `/etc/skel' ...
Enter new UNIX password:
Retype new UNIX password:
passwd: password updated successfully
Changing the user information for mike
Enter the new value, or press ENTER for the default
        Full Name []:
        Room Number []:
        Work Phone []:
        Home Phone []:
        Other []:
Is the information correct? [Y/n]
#

vncserverは、このUNIXユーザーでデスクトップ環境を起動します。つまり、リモートデスクトップで作業するときは、このユーザーになる必要があります

ユーザーの「vncパスワード」を設定します

vncサーバーは、vncクライアントを介してvncサーバーにログインするために使用される個別のパスワードを維持します。このパスワードは、UNIXユーザーのパスワードとは異なります。 vncpasswdコマンドを使用して構成されます。

最初に、前の手順で作成したユーザー「mike」に切り替えて、vncサーバーのパスワードを設定します。

# su - mike

次に、vncpasswdコマンドを使用します

$ vncpasswd
Using password file /home/mike/.vnc/passwd
VNC directory /home/mike/.vnc does not exist, creating.
Password:
Verify:
Would you like to enter a view-only password (y/n)?
[email protected]:~$

passwdファイルは存在せず、このステップで初めて作成されたことに注意してください。

以前にvncserverコマンドをすでに実行している場合は、ファイルが作成されています。初めてvncserverを実行すると、デフォルトの起動スクリプトが作成されます

$ vncserver
You will require a password to access your desktops.
Password:
Password too short
[email protected]:~$ vncserver
You will require a password to access your desktops.
Password:
Verify:
Would you like to enter a view-only password (y/n)? n
New 'X' desktop is desktop:1
Creating default startup script /home/enlightened/.vnc/xstartup
Starting applications specified in /home/enlightened/.vnc/xstartup
Log file is /home/enlightened/.vnc/desktop:1.log

ただし、vncserverコマンドを実行する必要はありません。起動スクリプトを使用して自動的に起動されます。

xstartupスクリプトを作成する

次の重要なファイルはxstartupスクリプトです。どのXアプリを起動するかについての説明が含まれています。デスクトップ環境は、起動する必要のあるXアプリケーションです。

ファイルがすでに存在する場合は、最初にファイルのバックアップを取ります

mv ~/.vnc/xstartup ~/.vnc/xstartup.bak

次に、nanoを使用して編集します

[email protected]:~$ nano .vnc/xstartup

注-これは、ユーザーvncのホームディレクトリ、つまり/home/mike/.vnc/xstartup

内にあります。

xstartupスクリプトに次の行を入力します

#!/bin/bash
xrdb $HOME/.Xresources
startxfce4 &

startxfce4コマンドは、xfceデスクトップを起動します。ファイルを保存して閉じます。

xstartupファイルを実行可能にします。これは、vncserverがこのファイルを実行できるようにするために必要です。

$ chmod +x ~/.vnc/xstartup

vncサービスファイルを作成する

次のステップは、サービスコマンドを使用してvncサーバーを起動でき、毎回vncserverコマンドを実行する必要がないように、vncサービスファイルを作成することです。

USER変数に正しいユーザー名を入力してください。これは、vncサーバーがデスクトップセッションを開始するために使用するユーザーです。

[email protected]:~# sudo nano /etc/init.d/vncserver

次のスクリプトを貼り付けます

#!/bin/bash
PATH="$PATH:/usr/bin/"
export USER="mike"
DISPLAY="1"
DEPTH="16"
GEOMETRY="1024x768"
OPTIONS="-depth ${DEPTH} -geometry ${GEOMETRY} :${DISPLAY}"
. /lib/lsb/init-functions

case "$1" in
start)
log_action_begin_msg "Starting vncserver for user '${USER}' on localhost:${DISPLAY}"
su ${USER} -c "/usr/bin/vncserver ${OPTIONS}"
;;

stop)
log_action_begin_msg "Stoping vncserver for user '${USER}' on localhost:${DISPLAY}"
su ${USER} -c "/usr/bin/vncserver -kill :${DISPLAY}"
;;

restart)
$0 stop
$0 start
;;
esac
exit 0

ファイルを保存して閉じます。実行可能にする

# chmod +x /etc/init.d/vncserver

サービスを開始する

これですべてが読み取られます。 vncserverを実行し、ステップをテストするときが来ました。

最初にsystemctlをリロードして、vncserver起動スクリプトを使用できるようにします。

systemctl daemon-reload

次に、vncserverを起動します。ポート5901でサーバーを起動します

# service vncserver start

実行されていることを確認します

[email protected]:~# service vncserver status
● vncserver.service
   Loaded: loaded (/etc/init.d/vncserver; bad; vendor preset: enabled)
   Active: active (exited) since Thu 2017-03-02 05:36:42 UTC; 6s ago
     Docs: man:systemd-sysv-generator(8)
  Process: 24877 ExecStart=/etc/init.d/vncserver start (code=exited, status=0/SUCCESS)
Mar 02 05:36:40 bintu systemd[1]: Starting vncserver.service...
Mar 02 05:36:40 bintu vncserver[24877]:  * Starting vncserver for user 'vnc' on localhost:1...
Mar 02 05:36:40 bintu su[24885]: Successful su for vnc by root
Mar 02 05:36:40 bintu su[24885]: + ??? root:vnc
Mar 02 05:36:40 bintu su[24885]: pam_unix(su:session): session opened for user vnc by (uid=0)
Mar 02 05:36:42 bintu vncserver[24877]: New 'X' desktop is bintu:1
Mar 02 05:36:42 bintu vncserver[24877]: Starting applications specified in /home/vnc/.vnc/xstartup
Mar 02 05:36:42 bintu vncserver[24877]: Log file is /home/vnc/.vnc/bintu:1.log
Mar 02 05:36:42 bintu systemd[1]: Started vncserver.service.
$ cat ~/.vnc/*.pid
18577
18731
# ps -ef | grep tightvnc
vnc      24574     1  0 05:32 ?        00:00:00 Xtightvnc :1 -desktop X -auth /home/vnc/.Xauthority -geometry 1024x768 -depth 16 -rfbwait 120000 -rfbauth /home/vnc/.vnc/passwd -rfbport 5901 -fp /usr/share/fonts/X11/misc/,/usr/share/fonts/X11/Type1/,/usr/share/fonts/X11/75dpi/,/usr/share/fonts/X11/100dpi/ -co /etc/X11/rgb
root     24744 10412  0 05:33 pts/0    00:00:00 grep --color=auto tightvnc
[email protected]:~#

VNCサーバーの開いているポートを確認します。 vncクライアントから接続する場合は正しいポート番号が必要です

# netstat -nlp | grep vnc
tcp        0      0 0.0.0.0:5901            0.0.0.0:*               LISTEN      24574/Xtightvnc
tcp        0      0 0.0.0.0:6001            0.0.0.0:*               LISTEN      24574/Xtightvnc
unix  2      [ ACC ]     STREAM     LISTENING     5225386  24574/Xtightvnc     /tmp/.X11-unix/X1

スクリプトを直接呼び出すことでVncサーバーを起動することもできます。

# /etc/init.d/vncserver start
[ ok ] Starting vncserver (via systemctl): vncserver.service.
[email protected]:~#

vncserverを停止するには

# service vncserver stop

デスクトップにvncviewerクライアントをインストールする

これで、vncサーバーがGUIデスクトップ環境で稼働しているので、vncクライアントをインストールしてリモートデスクトップにアクセスします。

Ubuntuにxtightvncviewerをインストールします。

$ sudo apt-get install xtightvncviewer

次に、vncviewerコマンドを使用してリモートvncサーバーに接続します。

$ vncviewer -quality 5 -encodings "copyrect tight hextile zlib corre rre raw" -compresslevel 5 IPADDR:5901

転送される画像データを圧縮して高速化するために、低品質の圧縮エンコーディングを使用しています。

KRDCのような他のvncビューアを使用すると遅くなる可能性があります。

リソース

詳細については、これらの便利なリンクを確認してください-

http://tightvnc.com/vncviewer.1.htmlhttps://www.digitalocean.com/community/tutorials/how-to-install-and-configure-vnc-on-ubuntu-16-04

https://www.digitalocean.com/community/tutorials/how-to-install-and-configure-vnc-on-ubuntu-14-04
https://www.digitalocean.com/community/tutorials / how-to-setup-vnc-for-ubuntu-12


Ubuntu
  1. Ubuntuリモートデスクトップ:セットアップして接続する方法

  2. Ubuntu 13.04 /Ubuntu12.10にVNCサーバーをインストールします

  3. CentOS / RHELおよびFedoraでVNCサーバー(Linuxリモートデスクトップアクセス)をセットアップする方法

  1. Ubuntu 22.04Windows10からのリモートデスクトップアクセス

  2. UbuntuとLinuxMintでX11VNCサーバーをセットアップする方法

  3. Ubuntuにvncサーバーとクライアントをインストールします

  1. Ubuntu 20.04Windows10からのリモートデスクトップアクセス

  2. Ubuntu20.04にVNCをインストールして構成する方法

  3. Ubuntu18.04にVNCをインストールして構成する方法