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

TigerVNCで実際の表示(スクレイピング)のためにvncサーバーを起動する方法

VNCは、ネットワーク接続を介して(リモートまたはローカル)コンピューターのデスクトップに接続して制御するためのデスクトップ共有アプリケーション(仮想ネットワークコンピューティング)です。

ただし、Linuxシステムでは、多くのVNCサーバーアプリケーションは仮想デスクトップへの接続のみを許可し、実際のデスクトップへの接続は許可しません。このハウツーは、TigerVNCサーバーを介してLinuxデスクトップ上の実際のアクティブなセッションに接続するためのソリューションを提供します。

要件
  • 完全に機能するLinuxデスクトップ環境
  • ルート権限(TigerVNCサーバーをインストールするため)
  • Linuxシェルの基本的な知識

最新のパッケージを入手するには、更新することをお勧めします。

 [メール保護]:〜$ sudo apt-get update 

このハウツーは、Debian / GNU Linux 9.5(ストレッチ)とUbuntu18.04でテストされました

TigerVNCをインストール

まず、TigerVNCサーバーをインストールする必要があります。

 [メール保護]:〜$ sudo apt-get install tigervnc-scraping-server 

ほとんどのDebianベースのシステムには、tigervnc-scraping-serverと呼ばれる小さなパッケージがあり、これをインストールする必要があることに注意してください。仮想デスクトップにも接続する場合にのみ、実行中のデスクトップセッションに接続する機能を使用するために、メインのTigerVNCサーバー(パッケージ名:tigervnc-standalone-server)をインストールする必要はありません。

TigerVNCサーバーは、アクティブなセッションへのアクセスを許可するための小さなアプリケーション(x0vncserver)を提供します。

次に、自宅に.vncディレクトリを作成します。

 [メール保護]:〜$ mkdir -p〜/ .vnc 

vncセッションのパスワードを作成します:

 [メール保護]:〜$ vncpasswd 
パスワード:
確認:
表示専用のパスワード(y / n)を入力しますか? n

VNCサーバーの起動

x0vncserverの簡単な説明:

 x0tigervncserverはTigerVNCサーバーであり、VNC、TigerVNC、または互換性のあるビューアを介してXディスプレイにリモートアクセスできます。 Xvnc(1)とは異なり、仮想ディスプレイは作成されません。代わりに、既存のXサーバー(通常、物理画面に接続されているサーバー)を共有するだけです。

コンピューターにTigerVNCサーバーが正常にインストールされ、vncpasswdコマンドでパスワードが作成されたので、vncサーバーの起動を開始できます。アクティブなセッションに参加していることを確認し、(ユーザーとして)次のように記述します。

 [メール保護]:〜$ x0vncserver -passwordfile〜/ .vnc / passwd -display:0 

2018年10月10日水曜日22:17:16
ジオメトリ:デスクトップジオメトリが設定されています〜1920x1080 + 0 + 0
メイン:XTest拡張機能が存在します-バージョン2.2
メイン:ポート5900でリッスンしています

オプション-passwordfile〜/ .vnc / passwd vncpasswdで以前に作成したパスワードファイルを読み取ります 指図。 2番目のオプション-display:0 つまり、ディスプレイのセッションに接続することを意味します:0、通常はアクティブなセッションです。

これで、デフォルトのvncポート5900で任意のvncビューアアプリケーションを使用して実際のデスクトップにアクセスできます。

Ctrl-cを押すと、いつでもこのプロセスを停止できます。

バックグラウンドで実行する場合は、次のように入力します。

 [メール保護]:〜$ x0vncserver -passwordfile〜/ .vnc / passwd -display:0> / dev / null 2>&1&

これで、すべての出力標準出力とエラーが/ dev / nullにリダイレクトされ、最後に&が付いた状態でバックグラウンドで実行されます。ただし、Ctrl-cを押してvncサーバーを停止することはできなくなります。代わりに、プロセスIDを強制終了する必要があります(以下の「vncサーバーの停止」のセクションを参照)。

その他のオプションと構文については、x0vncserverのマニュアルを確認してください。

VNCサーバーを停止しています

vncサーバーがバックグラウンドで実行されている場合、それを停止するには、プロセスIDを知っている必要があります。

 [メール保護]:〜$ ps -fu user | grep [x] 0vncserver 
user 1328 1 0 23:11 pts / 2 00:00:00 /usr/bin/x0vncserver -display:0 -passwordfile /home/user/.vnc/passwd -rfbport 5900

出力は次のようになります。pid1328に注意してください。vncサーバーを停止するには、このプロセスを「強制終了」する必要があります。

 [メール保護]:〜$ kill -9 1328 

killコマンドのオプション-9は、プロセスIDにKILLシグナルを送信して、プロセスIDが確実に停止するようにします。

VNCサーバーを実行するためのスクリプト

githubにx0vncserverアプリケーションを起動および停止するためのスクリプトがあります。テストの目的で、psmiscパッケージもダウンロードします。

 [メール保護]:〜$ sudo apt-get install git psmisc 

次に、gitコマンドを使用してstartvncスクリプトをダウンロードします。

 [メール保護]:〜$ git clone https://github.com/sebestyenistvan/runvncserver 
'runvncserver'へのクローン作成...
リモート:オブジェクトの列挙:77、完了。
リモート:オブジェクトのカウント:100%(77/77)、完了。
リモート:オブジェクトの圧縮:100%(57/57)、完了。
リモート:合計77(デルタ25)、再利用60(デルタ18)、パック再利用0
オブジェクトの解凍:100%(77/77)、完了。

出力は上記のようになります。

startvncスクリプトをrunvncserverディレクトリから自宅にコピーします。

 [メール保護]:〜$ cp〜/ runvncserver / startvnc〜

スクリプトを実行するには、権限を実行可能ファイルに変更します。

 [メール保護]:〜$ chmod + x〜/ startvnc 

次に、スクリプトを実行します。

 [メール保護]:〜$ ./startvnc 

使用法:./ startvnc start | stop | restart | status

このスクリプトは、ホームに.vncディレクトリがあり、vncpasswdを作成した場合にのみ機能します(〜/ .vnc / passwdファイルをチェックします)。以前に.vncディレクトリとパスワードを作成しました。

実際のディスプレイでvncサーバーを起動するには、次のように入力します。

 [メール保護]:〜$ ./startvnc start 
ディスプレイでVNCサーバーを起動しています:0 [ok]

次のオプションを使用してvncサーバーが実行されているかどうかをテストできます:

 [メール保護]:〜$ ./startvnc status 
VNCサーバーのステータス:[実行中](pid:1328)

いくつかの例:

または、(psmiscパッケージの)fuserコマンドを使用してシステムの5900TCPポートを確認します。

 [email protected]:〜$ fuser -vn tcp 5900 
USERPIDアクセスコマンド
5900 / tcp:user user 0 vncサーバーがポート5900で実行されている場合は、次のような出力が得られます。

このスクリプトの詳細については、readmeファイルを参照してください:

 [メール保護]:〜$ less runvncserver / README.md 

スクリプトは、出力が保存されるログファイルを作成します。何か問題が発生した場合、またはx0vncserverを起動または停止できない場合は、〜/ .vnc / logfile

の下のログファイルを確認してください。

VNCサーバーを自動的に起動します

アクティブデスクトップセッションに自動的にアクセスする場合は、ホームディレクトリの.xsessionrcファイルを編集する必要があります。

 [メール保護]:〜$ echo "/ home / user / startvnc start> / dev / null 2>&1">>〜/ .xsessionrc 

ユーザーをユーザー名に置き換えると、Xセッションの開始時に自動的に実行されます。スクリプトはそのアクティビティを〜/ .vnc / logfileに記録します。問題が発生した場合は、そこでログファイルを確認できます。

メモ

このチュートリアルでは、VNC仮想デスクトップのセットアップについては扱いません。

セキュリティ

x0vncserverはデフォルトで暗号化を使用しないことに注意してください。したがって、インターネット上で慎重に使用してください。リモートで使用する場合は、ssh経由でトンネリングできます。ただし、VNCセッションを暗号化するための解決策を見つけることができる他のハウツーがあります。

または、ssvncパッケージを確認することもできます。

VNCビューア

VNCビューアを探している場合は、たとえば次のようにたくさんあります。

  • gvncviewer
  • tigervnc-viewer
  • xtightvncviewer
  • xvnc4viewer
ジオメトリ

実際のディスプレイのx0vncserverは、:0ディスプレイで実行中のデスクトップと同じジオメトリを使用します。したがって、-geometryオプションを小さいサイズに設定すると、スケーリングされず、デスクトップサイズの一部が表示されます。

フィードバック

フィードバックをお気軽に書いてください。このチュートリアルまたは別のシステムでスクリプトをテストした場合。


Linux
  1. Sambaに接続するためのドメインを確認する方法は?

  2. Ubuntu Server 16.0 Ltsで「レイズネットワークで開始ジョブが実行されている」を修正するにはどうすればよいですか?

  3. Linux で VNC サーバーの解像度を変更する方法

  1. CentOS / RHEL 6 :NTP サーバーとの NTP 同期を強制する方法

  2. Golang Web サーバーをバックグラウンドで実行するにはどうすればよいですか?

  3. LinuxでTomcatサーバーを起動するには?

  1. 起動時にVncサーバーを起動する方法は?

  2. tr コマンド - 文字列 \n を実際の改行 (\n) に置き換える方法

  3. Raspberry Pi で Python Selenium を使用するために PhantomJS をインストールするにはどうすればよいですか?