วิธีตั้งค่า GUI บนเซิร์ฟเวอร์ Amazon EC2 Ubuntu


139

ฉันใช้อินสแตนซ์ amazon Ubuntu EC2 ซึ่งมีเฉพาะอินเทอร์เฟซบรรทัดคำสั่ง ฉันต้องการตั้งค่า UI สำหรับเซิร์ฟเวอร์นั้นเพื่อเข้าถึงโดยใช้เครื่องมือเดสก์ท็อประยะไกล มีวิธีใดบ้างในการนำ GUI ไปใช้กับอินสแตนซ์ EC2


@ user3071284 บทความนี้ดีมากขาดไปอีกขั้นตอนเดียว - เพื่อเปิดพอร์ต RDP (3389) ในกลุ่มความปลอดภัยอินสแตนซ์ของคุณ
Noam Manos

1
ขออภัยที่ลิงก์ไม่สามารถใช้งานได้ในขณะนี้
KK2491

วิธีแก้ปัญหาสำหรับฉันคือการตอบให้แน่ใจว่าไฟล์ xstartup สามารถเรียกใช้งานได้: chmod + x ~ / .vnc / xstartup
Christopher Broderick

คำตอบ:


202

นี้สามารถทำได้ ต่อไปนี้เป็นขั้นตอนในการตั้งค่า GUI

สร้างผู้ใช้ใหม่ด้วยรหัสผ่านเข้าสู่ระบบ

sudo useradd -m awsgui
sudo passwd awsgui
sudo usermod -aG admin awsgui

sudo vim /etc/ssh/sshd_config # edit line "PasswordAuthentication" to yes

sudo /etc/init.d/ssh restart

การตั้งค่าเครื่อง ubuntu ที่ใช้ ui บน AWS

ในกลุ่มความปลอดภัยเปิดพอร์ต 5901 จากนั้น ssh ไปยังอินสแตนซ์เซิร์ฟเวอร์ รันคำสั่งต่อไปนี้เพื่อติดตั้งเซิร์ฟเวอร์ ui และ vnc:

sudo apt-get update
sudo apt-get install ubuntu-desktop
sudo apt-get install vnc4server

จากนั้นรันคำสั่งต่อไปนี้และป้อนรหัสผ่านเข้าสู่ระบบสำหรับการเชื่อมต่อ vnc:

su - awsgui

vncserver

vncserver -kill :1

vim /home/awsgui/.vnc/xstartup

จากนั้นกดปุ่มแทรกเลื่อนไปรอบ ๆ ไฟล์ข้อความด้วยลูกศรบนแป้นพิมพ์และลบเครื่องหมายปอนด์ (#) จากจุดเริ่มต้นของสองบรรทัดใต้บรรทัดที่ระบุว่า "ยกเลิกการใส่ข้อคิดเห็นสองบรรทัดต่อไปนี้สำหรับเดสก์ท็อปปกติ" และในบรรทัดที่สองให้เพิ่ม "sh" เพื่อให้บรรทัดอ่าน

exec sh /etc/X11/xinit/xinitrc. 

เมื่อคุณทำเสร็จแล้วให้กด Ctrl + C บนแป้นพิมพ์พิมพ์: wq แล้วกด Enter

จากนั้นเริ่มเซิร์ฟเวอร์ vnc อีกครั้ง

vncserver

คุณสามารถดาวน์โหลดxtightvncviewerเพื่อดูเดสก์ท็อป (สำหรับ Ubutnu) ได้จากที่นี่https://help.ubuntu.com/community/VNC/Clients

ในไคลเอนต์ vnc ให้ DNS สาธารณะบวก ": 1" (เช่น www.example.com:1) ป้อนรหัสผ่านเข้าสู่ระบบ vnc ตรวจสอบให้แน่ใจว่าใช้การเชื่อมต่อปกติ อย่าใช้ไฟล์สำคัญ

ดูคำแนะนำเพิ่มเติมได้ที่นี่: http://www.serverwatch.com/server-tutorials/setting-up-vnc-on-ubuntu-in-the-amazon-ec2-Page-3.html

สามารถดาวน์โหลดไคลเอนต์ Mac VNC ได้จากที่นี่: https://www.realvnc.com/en/connect/download/viewer/

พอร์ตเปิดบนคอนโซล

sudo iptables -A INPUT -p tcp --dport 5901 -j ยอมรับ

หากปัญหาหน้าต่างสีเทามา ส่วนใหญ่เป็นเพราะไฟล์ ".vnc / xstartup" กับผู้ใช้รายอื่น ดังนั้นเรียกใช้เซิร์ฟเวอร์ vnc บนผู้ใช้คนเดียวกันแทนผู้ใช้ "awsgui"

vncserver


13
ฉันคิดว่าคุณหายไปsu - awsguiหลังจากนั้นsudo usermod -aG admin awsgui
Konstantin K

14
อย่าลืมเปิดพอร์ต 5901 ในกลุ่มความปลอดภัยของคุณเพื่อให้ใช้งานได้ ขอบคุณสำหรับคำตอบโดยละเอียด!
Daniel Magliola

11
ลองใช้คำแนะนำสองสามคำรวมถึงคำแนะนำนี้และฉันได้รับเฉพาะพื้นหลังสีเทา - ไม่มีเดสก์ท็อป Ubuntu
ประแจ

5
ฉันทำสิ่งนี้ซึ่งแก้ไขพื้นหลังสีเทาให้ฉันdigitalocean.com/community/questions/…
timhc22

8
ลองvim .vnc/xstartupถ้าvim awsgui/.vnc/xstartupไม่ได้ผล
TomasVeras

79

ดังนั้นฉันจึงทำตามคำตอบแรก แต่โปรแกรมดู vnc ของฉันทำให้ฉันมีหน้าจอสีเทาเมื่อฉันเชื่อมต่อกับมัน และฉันพบลิงก์ Ask Ubuntu นี้เพื่อแก้ปัญหานั้น

ข้อแตกต่างเพียงอย่างเดียวกับคำตอบก่อนหน้าคือคุณต้องติดตั้งแพ็คเกจพิเศษเหล่านี้:

apt-get install gnome-panel gnome-settings-daemon metacity nautilus gnome-terminal

และใช้ไฟล์ ~ / .vnc / xstartup นี้:

#!/bin/sh

export XKL_XMODMAP_DISABLE=1
unset SESSION_MANAGER
unset DBUS_SESSION_BUS_ADDRESS

[ -x /etc/vnc/xstartup ] && exec /etc/vnc/xstartup
[ -r $HOME/.Xresources ] && xrdb $HOME/.Xresources
xsetroot -solid grey
vncconfig -iconic &

gnome-panel &
gnome-settings-daemon &
metacity &
nautilus &
gnome-terminal &

อย่างอื่นเหมือนกันหมด

ทดสอบบน EC2 Ubuntu 14.04 LTS


2
สิ่งนี้ใช้ได้ผลกับฉันเหนือคำตอบก่อนหน้าและsu - awsguiทำก่อนที่จะเรียกใช้คำสั่ง vnc
Vincenzo Pii

1
ขั้นตอนนี้จำเป็นเพื่อให้ใช้งานได้หลังจากทำตามแบบฝึกหัดส่วนใหญ่เกี่ยวกับวิธีการตั้งค่าเดสก์ท็อป ubuntu บน aws ด้วย tightvncserver ไม่มีบทช่วยสอนใดที่เหมาะกับฉันหากไม่มีขั้นตอนนี้
techdog

1
คุณอาจต้องรีบูตระบบปฏิบัติการของคุณหลังจากทำตามขั้นตอนเหล่านี้แล้ว .. ฉันทำตามคำตอบนี้และต้องรีบูตก่อน
tno2007

ฉันลองทำตามขั้นตอนข้างต้นแล้วและสามารถเห็น Ubuntu บน RealVNC แต่ฉันเห็นเฉพาะเทอร์มินัลและเดสก์ท็อป ส่วน UI อื่น ๆ เช่น Toolbar, Applications และอื่น ๆ หายไป มีขั้นตอนอื่น ๆ หรือวิธีแก้ไขสำหรับสิ่งนี้หรือไม่?
Vinayak

เรียกใช้สิ่งต่อไปนี้ในเทอร์มินัล: killall gnome-panel && sudo gnome-panel &
Octocat

17

สำหรับ Ubuntu 16.04

1) ติดตั้งแพ็คเกจ

$ sudo apt update;sudo apt install --no-install-recommends ubuntu-desktop
$ sudo apt install gnome-panel gnome-settings-daemon metacity nautilus gnome-terminal vnc4server

2) แก้ไขไฟล์ / usr / bin / vncserver และแก้ไขดังต่อไปนี้

ค้นหาบรรทัดนี้

"# exec /etc/X11/xinit/xinitrc\n\n".

และเพิ่มบรรทัดเหล่านี้ด้านล่าง

"gnome-session &\n".
"gnome-panel &\n".
"gnome-settings-daemon &\n".
"metacity &\n".
"nautilus &\n".
"gnome-terminal &\n".

3) สร้างรหัสผ่าน VNC และเซสชัน vnc สำหรับผู้ใช้โดยใช้คำสั่ง "vncserver"

lonely@ubuntu:~$ vncserver
You will require a password to access your desktops.
Password:
Verify:
xauth: file /home/lonely/.Xauthority does not exist
New 'ubuntu:1 (lonely)' desktop is ubuntu:1
Creating default startup script /home/lonely/.vnc/xstartup
Starting applications specified in /home/lonely/.vnc/xstartup
Log file is /home/lonely/.vnc/ubuntu:1.log

ตอนนี้คุณสามารถเข้าถึง GUI โดยใช้ IP / โดเมนและพอร์ต 1

stackoverflow.com:1

ทดสอบบน AWS และมหาสมุทรดิจิทัล

สำหรับ AWS คุณต้องอนุญาตพอร์ต 5901 บนไฟร์วอลล์

เพื่อฆ่าเซสชั่น

$ vncserver -kill :1

อ้างถึง:

https://linode.com/docs/applications/remote-desktop/install-vnc-on-ubuntu-16-04/

ดูคู่มือนี้เพื่อสร้างเซสชันถาวรเป็นบริการ

http://www.krizna.com/ubuntu/enable-remote-desktop-ubuntu-16-04-vnc/


มันใช้งานได้ แต่หลังจากรีบูตเครื่อง ssh หยุดการเชื่อมต่อด้วยข้อผิดพลาดการหมดเวลาการเชื่อมต่อ คุณมีความคิดว่าทำไมมันถึงเกิดขึ้น?
Shan Khan

9

1) เปิดอินสแตนซ์ Ubuntu บน EC2
2) เปิดพอร์ต SSH ในการรักษาความปลอดภัยอินสแตนซ์
3) ทำ SSH เพื่ออินสแตนซ์
4) ดำเนินการ:

sudo apt-get update    sudo apt-get upgrade

5) เนื่องจากคุณจะเชื่อมต่อจาก Windows Remote Desktop ให้แก้ไขไฟล์ sshd_config บนอินสแตนซ์ Linux ของคุณเพื่ออนุญาตการตรวจสอบรหัสผ่าน

sudo vim /etc/ssh/sshd_config

6) เปลี่ยน PasswordAuthentication เป็น yes จากนั้นบันทึกและออก
7) รีสตาร์ท SSH daemon เพื่อให้การเปลี่ยนแปลงนี้มีผล

sudo /etc/init.d/ssh restart

8) รับสิทธิ์รูทชั่วคราวและเปลี่ยนรหัสผ่านสำหรับผู้ใช้อูบุนตูเป็นรหัสผ่านที่ซับซ้อนเพื่อเพิ่มความปลอดภัย กดปุ่ม Enter หลังจากพิมพ์คำสั่ง passwd ubuntu และคุณจะได้รับแจ้งให้ป้อนรหัสผ่านใหม่สองครั้ง

sudo –i
passwd ubuntu

9) เปลี่ยนกลับไปที่บัญชีผู้ใช้ ubuntu และ cd ไปที่โฮมไดเร็กทอรีของ ubuntu

su ubuntu
cd

10) ติดตั้งฟังก์ชันเดสก์ท็อป Ubuntu บนอินสแตนซ์ Linux ของคุณคำสั่งสุดท้ายอาจใช้เวลาถึง 15 นาทีจึงจะเสร็จสมบูรณ์

export DEBIAN_FRONTEND=noninteractive
sudo -E apt-get update
sudo -E apt-get install -y ubuntu-desktop

11) ติดตั้ง xrdp

sudo apt-get install xfce4
sudo apt-get install xfce4 xfce4-goodies

12) กำหนดให้ xfce4 เป็นตัวจัดการหน้าต่างเริ่มต้นสำหรับการเชื่อมต่อ RDP

echo xfce4-session > ~/.xsession

13) คัดลอก. xsession ไปยังโฟลเดอร์ / etc / skel เพื่อให้ xfce4 ถูกตั้งค่าเป็นตัวจัดการหน้าต่างเริ่มต้นสำหรับบัญชีผู้ใช้ใหม่ที่สร้างขึ้น

sudo cp /home/ubuntu/.xsession /etc/skel

14) เปิดไฟล์ xrdp.ini เพื่ออนุญาตให้เปลี่ยนพอร์ตโฮสต์ที่คุณจะเชื่อมต่อ

sudo vim /etc/xrdp/xrdp.ini

(ยังไม่ได้ติดตั้ง xrdp ก่อนติดตั้ง xrdp ด้วย sudo apt-get install xrdp จากนั้นแก้ไขไฟล์ที่กล่าวถึงข้างต้น)

15) มองหาส่วน [xrdp1] และเปลี่ยนข้อความต่อไปนี้ (จากนั้นบันทึกและออกจาก [: wq])

port=-1
- to -
port=ask-1

16) รีสตาร์ท xrdp

sudo service xrdp restart

17) ใน Windows ให้เปิดไคลเอ็นต์การเชื่อมต่อเดสก์ท็อประยะไกลวางชื่อแบบเต็มของอินสแตนซ์ Amazon EC2 ของคุณสำหรับคอมพิวเตอร์แล้วคลิกเชื่อมต่อ

18) เมื่อได้รับแจ้งให้เข้าสู่ระบบ xrdp ตรวจสอบให้แน่ใจว่าได้เลือกโมดูล sesman-Xvnc แล้วและป้อนชื่อผู้ใช้ ubuntu ด้วยรหัสผ่านใหม่ที่คุณสร้างในขั้นตอนที่ 8 เมื่อคุณเริ่มเซสชันหมายเลขพอร์ตคือ -1

19) เมื่อระบบเชื่อมต่อข้อความสถานะต่างๆจะแสดงบนหน้าจอบันทึกการเชื่อมต่อ ให้ความสนใจกับข้อความสถานะเหล่านี้และจดบันทึกหมายเลขพอร์ต VNC ที่แสดง ถ้าคุณต้องการกลับไปที่เซสชันในภายหลังให้ระบุหมายเลขนี้ในช่องพอร์ตของกล่องโต้ตอบการเข้าสู่ระบบ xrdp

ดูรายละเอียดเพิ่มเติม: https://aws.amazon.com/premiumsupport/knowledge-center/connect-to-linux-desktop-from-windows/
http://c-nergy.be/blog/?p=5305


2
ในขณะที่สิ่งนี้อาจตอบคำถามในทางทฤษฎีแต่ควรรวมส่วนสำคัญของคำตอบไว้ที่นี่และระบุลิงก์สำหรับการอ้างอิง
Bhargav Rao

3
ฉันไม่พบส่วน [xrdp1] ในไฟล์ xrdp.ini
Sudhir

3

สำหรับ LXDE / Lubuntu


1. เชื่อมต่อกับอินสแตนซ์ของคุณ (พอร์ตส่งต่อภายใน 5901)

ssh -L 5901: localhost: 5901 -i "xxx.pem" ubuntu@xxx.amazonaws.com

2. ติดตั้งแพ็คเกจ

sudo apt update && sudo apt อัพเกรด
sudo apt-get install xorg lxde vnc4server lubuntu-desktop

3. สร้าง /etc/lightdm/lightdm.conf

sudo nano /etc/lightdm/lightdm.conf

4. คัดลอกและวางสิ่งต่อไปนี้ลงในlightdm.confและบันทึก

[SeatDefaults]
allow-guest = false
user-session = LXDE
# user-session = Lubuntu

5. ตั้งค่า vncserver (คุณจะถูกขอให้สร้างรหัสผ่านสำหรับ vncserver)

vncserver
sudo echo "lxpanel & / usr / bin / lxsession -s LXDE &" >> ~ / .vnc / xstartup

6. รีสตาร์ทอินสแตนซ์ของคุณและเชื่อมต่อใหม่

sudo รีบูต
ssh -L 5901: localhost: 5901 -i "xxx.pem" ubuntu@xxx.amazonaws.com

7. เริ่ม vncserver

vncserver - เรขาคณิต 1280x800

8. ในไคลเอนต์เดสก์ท็อประยะไกลของคุณ (เช่น Remmina) ตั้งค่าเซิร์ฟเวอร์เป็นlocalhost: 5901และโปรโตคอลเป็น VNC

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.