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

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

143013 次浏览

下面是设置 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来查看桌面(对于 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 INPUT-p tcp —— dport 5901-j ACCEPT

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

Vncserver

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

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实例的完全限定名,然后单击 Connect。

18)当提示登录到 xrdp 时,确保选择了 esman-Xvnc 模块,并使用您在步骤8中创建的新密码输入用户名 ubuntu。启动会话时,端口号为 -1。

19)当系统连接时,连接日志屏幕上会显示几条状态消息。密切关注这些状态消息,并注意显示的 VNC 端口号。如果希望稍后返回到会话,请在 xrdp 登录对话框的端口字段中指定此数字。

详情请见: Https://aws.amazon.com/premiumsupport/knowledge-center/connect-to-linux-desktop-from-windows/
Http://c-nergy.be/blog/?p=5305

因此,我遵循第一个答案,但我的 vnc 查看器给我灰色屏幕,当我连接到它。我找到了这个 问问 Ubuntu 链接来解决这个问题。

与之前的答案唯一不同的是,您需要安装这些额外的软件包:

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

然后使用这个 ~/. vnc/xstart 文件:

#!/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 上测试。

对于 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/Domain 和端口1访问 GUI

Stackoverflow.com : 1

在自动气象站和数字海洋上进行测试。

对于 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/

LXDE/Lubuntu


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

Ssh-L 5901: localhost: 5901-i“ xxx.pem”ubuntu@xxx. amazonaws.com 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-desk < br/>

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

Sudo nano/etc/lightdm/lightdm.conf

4. 将下列内容复制粘贴到 Lightdm.conf并保存

[ SeatDefault ]
Allow-guest = false
User-session = LXDE
# user-session = Lubuntu < br/>

5. setup vncserver (将要求您为 vncserver 创建密码)

Vncserver
Sudo 回声“ lxpanel &/usr/bin/lxsession-s LXDE &”> > ~/. vnc/xstart < br/>

6. 重新启动实例并重新连接

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

7. 启动 vncserver

几何图形1280x800

8. 在远程桌面客户端(例如 Remmina)中,将 Server 设置为 Localhost: 5901,协议设置为 VNC

我也遇到了同样的问题,最后我为自己写了一个操作指南(https://dugas.ch/lord_of_the_files/run_your_unity_ml_executable_in_the_cloud.html)

这里的响应对于启动和运行一个解决方案很有帮助,但我建议您了解不同层的基础知识,这些知识可以在 Unix 中创建一个正常运行的 GUI/OpenGL 环境/远程桌面。同样重要的是,你是想让东西在 GPU 上运行,还是在 CPU 上运行。

enter image description here

在这种思维模式下,自己启动每个组件可以更清楚地了解什么是在做什么。

简而言之,你想要:

  • 启动 x 服务器(GPU/CPU)
  • 启动桌面环境
  • 启动 vnc 服务器
  • 在 vnc 端口上启用防火墙通信(在 AWS 控制台中)

最棘手的部分是让 x-server 运行,要么使用 nvidia 驱动程序和虚拟屏幕(GPU)直接使用 xorg,要么使用 Xvfb (CPU)

例如使用 Xvfb (CPU) :

  • X 服务器
Xvfb :0 -screen 0 1024x768x24 +extension GLX +render -noreset >> xsession.log 2>&1 &
  • 桌面环境
DISPLAY=:0 startxfce4
  • VNC 服务器
x11vnc -display :0 -usepw -rfbport 5901