如何在Amazon EC2 Ubuntu服务器上设置GUI


136

我正在使用一个只有命令行界面的亚马逊Ubuntu EC2实例。我想设置该服务器的UI,以使用远程桌面工具进行访问。有什么方法可以将GUI应用于EC2实例吗?


@ user3071284这篇文章很棒,只缺少一个步骤-在实例安全组中打开RDP端口(3389)。
Noam Manos

1
不幸的是,该链接现在不可用。
KK2491

对我来说,解决方案是确保xstartup文件是可执行的:chmod + x〜/ .vnc / xstartup
Christopher Broderick

Answers:


200

可以做到的。以下是设置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

在AWS上设置基于ui的ubuntu计算机。

在安全组中,打开端口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

然后,按Insert键,使用键盘箭头在文本文件中滚动,并从“取消注释以下两行用于普通桌面的行”行下面的两行开始删除井号(#)。然后在第二行添加“ sh”,使该行显示为

exec sh /etc/X11/xinit/xinitrc. 

完成后,按键盘上的Ctrl + C,输入:wq并按Enter。

然后再次启动vnc服务器。

vncserver

您可以xtightvncviewer从此处https://help.ubuntu.com/community/VNC/Clients下载以查看桌面(适用于Ubutnu)。

在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输入-p tcp --dport 5901 -j接受

如果出现灰色窗口问题。主要是因为“ .vnc / xstartup”文件位于不同的用户上。因此,还要在同一用户而不是“ awsgui”用户上运行vnc服务器。

vncserver


13
我想您会su - awsgui在之后失踪sudo usermod -aG admin awsgui
Konstantin K

14
切记在安全组中打开端口5901,以使其正常工作。感谢您的详细回答!
Daniel Magliola 2015年

11
尝试了一些指南,包括本指南,但我只有灰色背景-没有ubuntu桌面。
2015年

5
我这样做,它解决了这个灰色的背景,我digitalocean.com/community/questions/...
timhc22

8
尝试vim .vnc/xstartup如果vim awsgui/.vnc/xstartup不起作用
TomasVeras 2015年

76

所以我遵循第一个答案,但是当我连接到vnc查看器时,我的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
在遵循有关如何使用tightvncserver在aws上设置ubuntu桌面的大多数教程之后,必须执行此步骤才能使其工作。没有这一步,所有教程都不会对我有用。
techdog

1
完成以下步骤后,您可能需要重新启动操作系统。.我遵循了此答案,必须先重新启动。
tno2007 '16

我尝试了上述步骤,可以在RealVNC上看到Ubuntu。但是我只能看到终端和桌面。某些其他UI部分(如工具栏,应用程序等)丢失了。是否有其他任何步骤或对此有任何解决方法?
Vinayak

在终端中运行以下命令: killall gnome-panel && sudo gnome-panel &
Octocat'4

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)使用“ vncserver”命令为用户创建VNC密码和vnc会话。

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

现在您可以使用IP /域和端口1访问GUI

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停止连接并显示连接超时错误。你知道为什么会这样吗?
山汗

9

1)在EC2上启动Ubuntu实例。
2)在实例安全性中打开SSH端口。
3)对实例执行SSH。
4)执行:

sudo apt-get update    sudo apt-get upgrade

5)因为您将从Windows远程桌面连接,所以请在Linux实例上编辑sshd_config文件以允许密码验证。

sudo vim /etc/ssh/sshd_config

6)将PasswordAuthentication从no更改为yes,然后保存并退出。
7)重新启动SSH守护程序,以使此更改生效。

sudo /etc/init.d/ssh restart

8)暂时获得root特权,并将ubuntu用户的密码更改为复杂的密码,以增强安全性。键入命令passwd ubuntu后按Enter键,系统将提示您输入两次新密码。

sudo –i
passwd ubuntu

9)切换回ubuntu用户帐户,并cd进入ubuntu主目录。

su ubuntu
cd

10)在Linux实例上安装Ubuntu桌面功能,最后一个命令最多可能需要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。首先使用sudo apt-get install xrdp安装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
我在xrdp.ini文件中找不到[xrdp1]部分。
Sudhir

3

对于LXDE / Lubuntu


1.连接到您的实例(本地转发端口5901)

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

2.安装软件包

sudo apt更新&& sudo apt升级
sudo apt-get install xorg lxde vnc4server lubuntu-desktop

3.创建/etc/lightdm/lightdm.conf

须藤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)中,将Server设置为localhost:5901,将协议设置为VNC

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.