ChatGPT解决这个技术问题 Extra ChatGPT

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

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

@user3071284 这篇文章很棒,只是少了一步 - 在您的实例安全组中打开 RDP 端口 (3389)。
不幸的是,该链接现在不可用。
我的解决方案是确保 xstartup 文件是可执行的: chmod +x ~/.vnc/xstartup

s
sugunan

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

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

vnc服务器


我认为您在 sudo usermod -aG admin awsgui 之后错过了 su - awsgui
请记住在您的安全组中打开端口 5901 以使其正常工作。感谢您的详细回答!
尝试了几个指南,包括这个,我只得到灰色背景 - 没有 ubuntu 桌面。
我这样做为我解决了灰色背景digitalocean.com/community/questions/…
如果 vim awsgui/.vnc/xstartup 不起作用,请尝试 vim .vnc/xstartup
C
Community

所以我遵循第一个答案,但是当我连接到它时,我的 vnc 查看器给了我灰屏。我发现这个 Ask Ubuntu link 可以解决这个问题。

与先前答案的唯一区别是您需要安装这些额外的软件包:

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


这在上一个答案之上对我有用,并且在运行 vnc 命令之前完成了 su - awsgui
在遵循大多数关于如何在aws 上使用tightvncserver 设置ubuntu 桌面的教程之后,这一步是必要的。如果没有这一步,所有教程都不适合我。
按照这些步骤操作后,您可能需要重新启动操作系统。我遵循了这个答案,必须先重新启动。
我尝试了上述步骤,我可以在 RealVNC 上看到 Ubuntu。但我只能看到终端和桌面。不知何故,缺少其他 UI 部分,如工具栏、应用程序等。是否有任何其他步骤或任何解决方法?
在终端中运行以下命令:killall gnome-panel && sudo gnome-panel &
Q
Quake231

对于 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 停止连接并出现连接超时错误。你知道为什么会这样吗?
W
Welz

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 后按回车键,会提示输入两次新密码。

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模块,并使用您在步骤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


虽然这在理论上可以回答问题,但it would be preferable在此处包含答案的基本部分,并提供链接以供参考。
我无法在 xrdp.ini 文件中找到 [xrdp1] 部分。
A
Arash Joorabchi

对于 LXDE/Lubuntu

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

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

2.安装包

sudo apt update && sudo apt upgrade sudo apt-get install xorg lxde vnc4server lubuntu-desktop

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

须藤纳米/etc/lightdm/lightdm.conf

4.将以下内容复制并粘贴到lightdm.conf中并保存

[SeatDefaults] allow-guest=false 用户会话=LXDE #user-session=Lubuntu

5.设置vncserver(你会被要求为vncserver创建一个密码)

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

6. 重启您的实例并重新连接

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

7.启动vncserver

vncserver -几何1280x800

8. 在您的远程桌面客户端(例如 Remmina)中,将服务器设置为 localhost:5901,将协议设置为 VNC


D
Dugas

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

这里的回答对于启动和运行一个解决方案很有用,但我建议了解不同层的基础知识,这会导致在 Unix 中正常运行的 GUI / OpenGL 环境 / 远程桌面。您是否希望事物在 GPU 或 CPU 上运行也很重要。

https://dugas.ch/lord_of_the_files/images/run-your-unity-components.png

在这种心态下,自己启动每个组件可以更清楚地知道什么在做什么。

简而言之,您想要:

启动 x 服务器(GPU / CPU)

启动桌面环境

启动 vnc 服务器

在 vnc 端口上启用防火墙流量(在 AWS 控制台中)

最棘手的部分是让 x-server 运行,或者直接使用 xorg 使用 nvidia 驱动程序和虚拟屏幕 (GPU) 或使用 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