우분투 19.04를 사용하고 있습니다. 부팅 중에 Ubuntu 컴퓨터의 VNC 서버가 열리도록 하고 싶습니다. 모니터가 연결되어 있지 않습니다. 전체 Ubuntu 데스크탑을 원격으로 실행할 수 있기를 원합니다.
SSH 서버가 작동하도록 관리했으며 x11vnc 서버를 Mac VNC 클라이언트에 표시할 수도 있습니다.
그러나 이것은 Ubuntu에 수동으로 로그인하고 명령을 실행하는 경우에만 작동합니다.
x11vnc -auth guess -forever -loop -noxdamage -repeat -rfbauth /home/USERNAME/.vnc/passwd -rfbport 5900 -share
Mac에서 SSH 터널을 생성하고 localhost:5900 연결을 사용하여 연결할 수 있습니다.
다음으로 부팅 중에 x11vnc가 열리도록 하기 위해 다음과 같이 했습니다.
sudo nano /lib/systemd/system/x11vnc.service
다음 텍스트를 저장했습니다(123은 내 gdm UID 번호입니다).
[Unit] Description=Start x11vnc at startup. After=multi-user.target [Service] Type=simple ExecStart=/usr/bin/x11vnc -loop -forever -bg -rfbport 5900 -xkb -noxrecord -noxfixes -noxdamage -shared -norc -auth /run/user/123/gdm/Xauthority -rfbauth /etc/x11vnc.pass [Install] WantedBy=multi-user.target
다음 명령을 실행했습니다.
sudo systemctl enable x11vnc.service sudo systemctl daemon-reload sudo systemctl start x11vnc.service
재부팅했지만 Ubuntu 컴퓨터에 로그인하지 않았습니다.
SSH에 연결하고 Mac에서 터널을 성공적으로 생성했습니다.
VNC 서버에 연결을 시도했지만 실패했습니다.
그런 다음 Ubuntu 컴퓨터에 수동으로 로그인했습니다.
VNC 서버에 연결을 시도했는데 성공적으로 연결되었지만 검은색 화면이 나타납니다.
그래서 Ubuntu 세션에 수동으로 로그인할 때만 서비스가 시작되는 것을 볼 수 있습니다.
내가 달성하려는 것을 달성할 수 있는 방법이 있나요? 또한 다른 서버를 사용할 의향이 있습니다. x11vnc만 사용하므로 새 데스크탑을 설치할 필요가 없습니다.
답변1
VNC 서버를 실행하는 방법에는 두 가지가 있습니다.
- 물리적 콘솔과 병렬로 실행 - VNC 세션은 독립적이며 물리적 콘솔 사용자가 무엇을 할 수 있는지 볼 수 없습니다.
- 실제 콘솔과 통합: 디스플레이가 공유되므로 실제 좌석에서 나와 VNC를 통해 동일한 세션에 연결할 수 있으며 그 반대도 가능합니다.
물리적 콘솔은 일반적으로 xauth로 보호됩니다. VNC 서버를 통합하는 방법은 사용자에 따라 다릅니다.디스플레이 관리자. 나는 사용할 것이다광DM예를 들어.
Lightdm은 파일을 생성 /run/lightdm/root/
하고 x11vnc에 다음과 같이 사용하도록 지시할 수 있습니다.-display :0 -auth '/run/lightdm/root/:0'
또는 -findauth
잘 알려진 디스플레이 관리자에 대해 옵션을 사용할 수도 있습니다.
따라서 systemd 서비스를 시작하지 마십시오. 먼저 다양한 옵션을 사용하여 x11vnc를 수동으로 시작하고 연결할 수 있는지 확인하세요.
/lib/systemd/system/x11vnc.service
또한 패키지가 업데이트되면 덮어쓰게 되므로 편집하려고 하지 마세요 . 복사본을 만들 /etc/systemd/system/
거나 필요한 설정만 덮어쓰는 것이 더 좋습니다./etc/systemd/system/x11vnc.service.d/custom.conf
나는 일한다 x11vnc.service
:
[Unit]
Description=VNC Server for X11
Requires=graphical.target
After=graphical.target
[Service]
ExecStart=/usr/local/bin/x11vnc-lightdm
[Install]
WantedBy=graphical.target
/usr/local/bin/x11vnc-lightdm
:
#!/bin/bash
OPTS=
exec /usr/bin/x11vnc \
$OPTS \
-rfbauth /root/.vnc/passwd -forever -loop -display :0 -auth '/run/lightdm/root/:0'