Ubuntu 12.10を実行しているサーバーがあり、ログインせずにこのサーバーにリモート接続できる必要があります。
私は多くの解決策を見つけましたが、12.10で動作するものはありません。
x11vnc
VNCで接続するときにグラフィカルなログイン画面が表示されるように、サービスとして(ユーザーログインの前に)起動するように構成する方法について、手順を追って説明してください。
私はLinuxが初めてなので、回答/コメントにできるだけ詳細を記入してください。
ありがとう
Ubuntu 12.10を実行しているサーバーがあり、ログインせずにこのサーバーにリモート接続できる必要があります。
私は多くの解決策を見つけましたが、12.10で動作するものはありません。
x11vnc
VNCで接続するときにグラフィカルなログイン画面が表示されるように、サービスとして(ユーザーログインの前に)起動するように構成する方法について、手順を追って説明してください。
私はLinuxが初めてなので、回答/コメントにできるだけ詳細を記入してください。
ありがとう
回答:
x11vncをインストールします。
sudo apt-get install x11vnc
ユーザーのパスワードを作成します。
x11vnc -storepasswd
sshがセットアップされている場合は、すでにログインしていると仮定してx11vncを起動することができますが、パスワードファイルを使用するように忘れないでください。
x11vnc -usepw
ログインしていない場合は、説明付きのエラーが表示されます。
If NO ONE is logged into an X session yet, but there is a greeter login
program like "gdm", "kdm", "xdm", or "dtlogin" running, you will need
to find and use the raw display manager MIT-MAGIC-COOKIE file.
Some examples for various display managers:
gdm: -auth /var/gdm/:0.Xauth
-auth /var/lib/gdm/:0.Xauth
kdm: -auth /var/lib/kdm/A:0-crWk72
-auth /var/run/xauth/A:0-crWk72
xdm: -auth /var/lib/xdm/authdir/authfiles/A:0-XQvaJk
dtlogin: -auth /var/dt/A:0-UgaaXa
ログインにlightdmを使用していると仮定すると、この問題を修正できるので、次のコマンドでx11vncを起動できます。
sudo x11vnc -xkb -noxrecord -noxfixes -noxdamage -display :0 -auth /var/run/lightdm/root/:0 -usepw
これがルートとしてx11vncを実行するのに最適なアイデアかどうかはわかりません。誰かがsudoを使用せずにログインにアクセスする方法で編集できる可能性があります。
これが実行されると、krdc(KDE用)などのvncクライアントを使用して接続できるようになります。sshセッションを開く必要なく、GNU Screenを使用してx11vncを実行し続けることができます。
http://ubuntuforums.org/showthread.php?t=2039022を使用してこれを理解することができました。
起動時に実行するために使用できるサンプルの起動ジョブを次に示します。/etc/init/x11vnc.confに配置する必要があります。(Ubuntuの新しいバージョンではsystemdが使用されているため、systemd構成のサンプルがある他の回答を参照してください):
# description "start and stop x11vnc"
description "x11vnc"
start on runlevel [2345]
stop on runlevel [^2345]
console log
#chdir /home/
#setuid 1000
#setgid 1000
respawn
respawn limit 20 5
exec x11vnc -xkb -noxrecord -noxfixes -noxdamage -display :0 -auth /var/run/lightdm/root/:0 -usepw
このファイルを作成したら、次のコマンドを実行して起動できます。sudo start x11vnc次の場所でログを確認できます:/var/log/upstart/x11vnc.log
x11vnc
通常のユーザーとして問題なく実行できます。例:ホストにsshしてx11vnc -safer -forever -display :0 2>&1 &
tmuxセッションで実行する(良い方法)と、それはの下で実行され$USER
ます。
上記の回答は問題を解決しますが、次のようにsystemd(15.04+)を使用するUbuntuのバージョンに対するいくつかの修正があります。
-auth guess
x11vnc の新機能を活用してください-これは役立ちます!以下を実行してインストールします。
sudo apt-get install x11vnc
sudo x11vnc -storepasswd yourVNCpasswordHERE /etc/x11vnc.pass
# for Ubuntu 15.04+
sudo nano /lib/systemd/system/x11vnc.service
# for Ubuntu 16.10+
sudo nano /etc/systemd/system/x11vnc.service
これをファイルに挿入します。
[Unit]
Description="x11vnc"
Requires=display-manager.service
After=display-manager.service
[Service]
ExecStart=/usr/bin/x11vnc -xkb -noxrecord -noxfixes -noxdamage -display :0 -auth guess -rfbauth /etc/x11vnc.pass
ExecStop=/usr/bin/killall x11vnc
Restart=on-failure
Restart-sec=2
[Install]
WantedBy=multi-user.target
次に、次から始めます。
sudo systemctl daemon-reload
sudo systemctl start x11vnc
起動時にサービスが開始されることを確認します。
sudo systemctl enable x11vnc
sudo xrandr --fb 1920x1080
。
Restart-sec
あるべきRestartSec
RestartSec
のではなくRestart-sec
。
方法は次のとおりです。
X11VNCサーバーをインストールします(またはUbuntu Software Center-> X11VNC Serverを使用)。
sudo apt-get install x11vnc
VNCパスワードファイルを作成します。
sudo x11vnc -storepasswd yourVNCpasswordHERE /etc/x11vnc.pass
エディターnano(またはgedit、leafpadなど)でジョブファイルを作成します。
sudo nano /etc/init/x11vnc.conf
これをファイルに貼り付けます:
start on login-session-start
script
/usr/bin/x11vnc -xkb -forever -auth /var/run/lightdm/root/:0 -display :0 -rfbauth /etc/x11vnc.pass -rfbport 5900 -bg -o /var/log/x11vnc.log
end script
ファイルを保存します。Upstartイベントlogin-session-startのジョブを作成しました。
それでおしまい!これで、ログインする前であっても、VNCクライアントに接続できるようになります。
x11vnc
毎回自動起動に失敗します。さらに言えば、サービスとしては開始されません。ファイルの構文は正しいx11vnc
ので、シェルから問題なく開始できます。私は何が欠けていますか?
babelmonksはbashスクリプトとして回答し、x11vnc.shとしてコピーして保存し、sudo bash /path/to/file/x11vnc.shで実行します(コメントを投稿するのに十分な担当者がいません)
#!/bin/bash
#install x11vnc & set password
apt-get install x11vnc -y
x11vnc -storepasswd 123456 /etc/x11vnc.pass
#create config file for system service
cat > /lib/systemd/system/x11vnc.service <<-EOF
[Unit]
Description="x11vnc"
Requires=display-manager.service
After=display-manager.service
[Service]
ExecStart=/usr/bin/x11vnc -xkb -noxrecord -noxfixes -noxdamage -display :0 -auth guess -rfbauth /etc/x11vnc.pass
ExecStop=/usr/bin/killall x11vnc
[Install]
WantedBy=multi-user.target
EOF
#restart new services & enable on boot
systemctl daemon-reload
systemctl start x11vnc
systemctl enable x11vnc
スクリプトを使用して簡単にセットアップします:installvncubuntu1604.sh
使用法:
chmod +x ./installvncubuntu1604.sh; sudo ./installvncubuntu1604.sh
構成は次のとおりですsddm
(KDE 5用)。現在、-auth guess
では機能しません。sddm
認証ファイルは毎回異なるため、のようなものが必要です-auth /var/run/sddm/*
。サービスは次のようになります。
[Unit]
Description="x11vnc"
After=multi-user.target
[Service]
ExecStart=/bin/sh -c "/usr/bin/x11vnc -xkb -noxrecord -display :0 -auth /var/run/sddm/* -rfbauth /etc/x11vnc.pass"
ExecStop=/usr/bin/killall x11vnc
[Install]
WantedBy=multi-user.target
afterを配置するmulti-user.target
必要があります。afterが認証ファイルを見つけられない場合はdisplay-manager.service
、認証ファイルを後で生成します。これはManjaro 18でテストされています。x11vnc
sddm
私は自分のシェルを使用しています:https : //github.com/dvdvideo1234/UbuntuBatches/tree/master/x11VNC
start on login-session-start
script
sudo /usr/bin/x11vnc -xkb -auth /var/run/lightdm/root/:0 -noxrecord -noxfixes -noxdamage -rfbauth /var/srv/x11vnc/x11vnc.pass -forever -bg -rfbport <your_port> -o /var/srv/x11vnc/x11vnc.log
end script
ファイルに:
/etc/init/x11vnc.conf
パスワードを要求するログオン画面でも、起動時に自動起動します。
x11vncパッケージをインストールする
#sudo apt-get install x11vnc
次に、パスワードを設定します
#x11vnc -usepw
次に、x11vncの起動スクリプトを作成します
#sudo nano /etc/x11vnc.sh
ファイル内:
/usr/bin/x11vnc -bg -forever -shared -reopen -usepw
次に保存する
#sudo chmod 777 /etc/x11vnc.sh
次に、Control Center => Startup Applicationにスクリプトファイルを追加し、[追加]をクリックします。
> Name-----------x11vnc
> Command-----<map the script file
> Comment------service
すべてのユーザーに追加するにはこれが必要です。
これは、ユーザーのログイン後にのみ実行されます