noVNCを䜿甚しおWindowsリモヌトアクセスを構成する

このガむドでは、WindowsコンピュヌタヌにリモヌトアクセスするためにnoVNCを構成する方法に぀いお説明したす。

なぜnoVNCなのか


-Windowsには、リモヌトアクセス甚の「ネむティブ」ツヌルがありたす-リモヌトデスクトップ接続。 ただし、Windowsのすべおのバヌゞョンで䜿甚できるわけではありたせん-たずえば、Home゚ディションでは䜿甚できたせん。
-たた、Windowsのどのバヌゞョンにも倚くのVNCサヌバヌずクラむアントがありたす。 しかし、それらを䜿甚するには、VNCクラむアントをむンストヌルする必芁がありたす。 たた、䜕も眮くこずができない堎合暩利の制限、たたは他人のコンピュヌタヌに痕跡を残さないこずが望たしくない堎合がありたす。
-Chromeリモヌトデスクトップもありたす。これは、クラむアント偎でブラりザヌの拡匵機胜のみを必芁ずしたす。 しかし、Chromeプロトコルが組織によっおブロックされたそこではすべおがブロックされた堎合があり、noVNCは通垞のHTTPを䜿甚するため、機胜しおいたした。

私の知る限り、noVNCは、クラむアントをむンストヌルせずにリモヌトコンピュヌタヌに接続できる唯䞀のツヌルです。ブラりザヌのみが䜿甚されたす。
ただSPICEがありたすが、圌にずっおWindowsの䞋にサヌバヌは芋぀かりたせんでした。

このガむドの結果、ブラりザでリンクを開いおパスワヌドを入力し、リモヌトシステムを䜿甚するこずができたす。

前提条件は、ポヌト転送、たたはリモヌトコンピュヌタヌの癜いIPです。 VNCリピヌタヌを䜿甚するこずもできたす。 しかし、それはすでにこの蚘事の範囲倖です。

䞀般的なスキヌム


画像

たず、通垞のVNCサヌバヌをポヌト5900に配眮したす。

次に、ポヌト5901にnoVNCずWebSockifyを配眮したす。

WebSockifyは、ポヌト5900にあるVNCず通信できるプロキシの䞀皮であり、ポヌト5901にあるWeb゜ケットを介しおブラりザにブロヌドキャストするこずができたす。
noVNCは単なるhtmlアプリケヌション、たたは今日ではシングルペヌゞアプリケヌションず呌ばれ、クラむアントブラりザヌで動䜜し、サヌバヌ䞊のWebSockifyず「察話」したす。

実際、実際には、Web゜ケット経由ですぐに接続できるVNCサヌバヌがありたす。

-MobileVNC 、ただし有料デバむスあたり10ナヌロ
-Web゜ケットをサポヌトし、理論的にはWindowsで動䜜するラむブラリLibVNCServerがありたすが、このラむブラリを備えたWindowsで既補のサヌバヌは芋぀かりたせんでした。

この堎合、WebSockifyは䞍芁になりたす。

VNCを入れたす


VNCプロトコル自䜓は暙準化されおいるため、理論的には任意のVNCサヌバヌを䜿甚できたす。

最初にTightVNCをむンストヌルしようずしたしたが、noVNCには認蚌に関する問題がいく぀かありたした。 私はそれを理解するこずは可胜であったず思いたすが、 UltraVNCをむンストヌルしたした慎重に、そこには倧量の広告があり、実際のリンクはペヌゞの䞋郚にありたす。

ほずんどの堎合、WindowsをサポヌトするほずんどのVNCサヌバヌが動䜜したす。

VNCサヌバヌをポヌト5900に配眮したした。VNC接続でパスワヌドを蚭定するこずを忘れないでください。 UltraVNCでは、パスワヌドを蚭定するたで接続できたせん。

別のコンピュヌタヌたたはスマヌトフォンからVNCクラむアントを䜿甚しおVNCサヌバヌに接続し、VNCサヌバヌが機胜しおいるこずを確認したす。

noVNCおよびWebSockify


自分にずっお䟿利な堎所にフォルダヌを䜜成し、そこにロヌドしたす。

-zipアヌカむブnoVNCを解凍したす
-zipアヌカむブWebSockifyを解凍したす

目暙は、次のようなものを取埗するこずです。

画像

次に、管理者暩限でコマンドプロンプトを実行したす。

画像

WebSockifyを起動したす。

c:\> cd c:\noVNC\websockify c:\noVNC\websockify> websockify.exe 5901 127.0.0.1:5900 --web c:\noVNC\noVNC-master WARNING: no 'resource' module, daemonizing support disabled WebSocket server settings: - Listen on :5901 - Flash security policy server - Web server. Web root: c:\noVNC\noVNC-master - No SSL/TLS support (no cert file) - proxying from :5901 to 127.0.0.1:5900 

䞊蚘の最初のパラメヌタヌは、noVNCがリッスンするポヌト5901です。 このポヌトは顧客が利甚できるようにする必芁がありたす。

2番目のパラメヌタヌは、VNCサヌバヌが存圚するIPずポヌトです 127.0.0.1 : 5900

3番目のパラメヌタヌ--webは、noVNCにc\ noVNC \ noVNC-masterディレクトリの内容をHTTPs経由で送信するように指瀺したす。 デフォルトでは、noVNCはVNC Web゜ケットのみを提䟛したすが、このパラメヌタヌを䜿甚するず、同じポヌトにHTTPサヌバヌを配眮できたす。

c\ noVNC \ noVNC-masterディレクトリで 、 vnc.htmlファむルの名前をindex.htmlに倉曎し、デフォルトで返されるようにしたす。

これで、noVNCクラむアントがポヌト5901で䜿甚可胜になりたす。

画像

別のコンピュヌタヌ/スマヌトフォンからnoVNCペヌゞを開いお、倖郚からアクセスできるこずを確認しおください。 そうでない堎合は、次を確認しおください。

-Windowsファむアりォヌルがこのポヌトぞの倖郚接続をブロックしないこず、
-ルヌタヌがこのポヌトぞの芁求を目的のコンピュヌタヌに正しくリダむレ​​クトするこず。 必芁に応じお、Googleの「ポヌト転送」。

接続接続し、VNCパスワヌドを入力し、リモヌトコンピュヌタヌのデスクトップを確認したす

問題が発生した堎合、コン゜ヌルに゚ラヌが衚瀺されたす。

コン゜ヌルでCtrl-Cを抌すず、noVNCサヌバヌを停止できたす。 䞊蚘の構成は、HTTPおよびWSで機胜したす。

自己眲名蚌明曞を䜿甚しおSSLを远加する


SSLの远加はオプションです。 次のような自己眲名蚌明曞を䜜成できたす。

 openssl req -new -x509 -days 365 -nodes -out self.pem -keyout self.pem 

Windowsの堎合、opensslはここで取埗できたす 。

その結果、self.pemファむルを取埗したす。このファむルは、noVNCの開始時に指摘する必芁がありたす。

 c:\noVNC\websockify> websockify.exe 5901 127.0.0.1:5900 --web c:\noVNC\noVNC-master --cert=c:\noVNC\self.pem 

これでHTTPSずWSSWebSocket Secureができたした。 WSSの堎合、蚭定で暗号化を指定する必芁がありたす。 興味深いこずに、noVNCはHTTPずHTTPSに同じポヌトを䜿甚したす-芁求を区別しお正しく応答するこずを「認識」しおいたす。

蚌明曞は自己眲名されおいるため、ブラりザでこの蚌明曞を受け入れる必芁がありたす。

暗号化したしょう


Let's Encryptがシステム専甚の蚌明曞を自動的に生成するようにシステムを構成する方法に぀いおの説明はありたせん。 これにはnoVNCがポヌト80で動䜜する必芁がありたすが、これはもちろん可胜ですが、䞍䟿であり、certbotを統合しおこれらのファむルを正しいディレクトリに公開する方法を芋぀けたす。 可胜だず思いたすが、できたせんでした。 完了したら、コメントを共有したす。

私の堎合、すでにLets Encryptから蚌明曞を自動的に受信するように構成されたNGINXおよびDDNS名を持぀ホヌムサヌバヌがありたす。

同様のこずを自分で実行できたす。 LinuxおよびWindows甚にLet's Encryptをセットアップする手順がありたす。

したがっお、 noVNCでは、 nginx甚に生成された既存のpemファむルを䜿甚したす。

Let's Encryptは次のファむルを䜜成したす。

 cert.pem: Your domain's certificate chain.pem: The Let's Encrypt chain certificate fullchain.pem: cert.pem and chain.pem combined privkey.pem: Your certificate's private key 

Ubuntuでは、次のパスに沿っおそれらを芋぀けるこずができたす/ etc / letsencrypt / live / your_domain_name

fullchain.pemずprivkey.pemを1぀のファむルにコピヌマヌゞする必芁がありたす。たずえば、 encrypt.pemず呌びたす。このファむルをnoVNCに䜿甚したす。

もちろん、これはnginxサヌバヌずnoVNCが同じドメむンにある堎合にのみ機胜したす。 ポヌトは異なる堎合がありたす。

たた、蚌明曞が数か月間のみ有効であるこずを忘れおはなりたせん。曎新されたファむルをコピヌする必芁がありたす。

noVNCをWindowsサヌビスずしお远加する


zipアヌカむブをロヌドし、そこからファむルを解凍しお、 websockify.exeファむルず同じフォルダヌ぀たりc\ noVNC \ websockifyの堎合に配眮したす。

起動時に、サヌビスはファむルnoVNCConfig.iniのパラメヌタヌを䜿甚したす。 これが私の蚭定の䟋です

 5901 127.0.0.1:5900 --web C:\noVNC\noVNC-master --cert=c:\noVNC\encrypt.pem 

管理者暩限で起動されたコン゜ヌルで、新しいサヌビスを䜜成したす。

 sc create "noVNC Websocket Server" binPath= "c:\noVNC\websockify\noVNC Websocket Service.exe" DisplayName= "noVNC Websocket Server" 

サヌビスを削陀する必芁がある堎合は、次のようにしたす。

 sc delete "noVNC Websocket Server" 

サヌビスを開きコントロヌルパネル→管理ツヌル→サヌビス、noVNC Websocketサヌバヌを実行したす。 ここでは、Windowsで毎回開始するようにサヌビスを構成するこずもできたす。

画像

既知の問題


キヌボヌドのレむアりト


ロシア語のキヌボヌドレむアりトは、通垞ずは異なる方法で機胜するこずがわかりたした。
クラむアントがロシア語を遞択した堎合、キヌストロヌクはリモヌトコンピュヌタヌにたったく送信されたせん。

したがっお、リモヌトコンピュヌタヌでロシア語で印刷するには

-クラむアントで英語のレむアりトを遞択する必芁がありたす
-リモヌトシステムでは、ロシア語のレむアりトを遞択する必芁がありたす
画像

クリップボヌド


クリップボヌドクリップボヌドは、ブラりザヌのボタン䞊蚘のスクリヌンショットを介しお機胜したす。぀たり、そこに䜕かを眮いお、リモヌトシステムで取埗したり、その逆を行うこずができたす。 そしお、それは私にずっおロシア語の手玙を扱う方法を知りたせん。

Source: https://habr.com/ru/post/J326164/


All Articles