这是可以做到的。以下是设置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
在安全组中打开端口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
(适用于Ubuntu)以查看桌面: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”文件位于不同的用户下。因此,请在相同的用户下运行VNC服务器,而不是“awsgui”用户。
vncserver
sudo usermod -aG admin awsgui
之后,你漏掉了 su - awsgui
。 - Konstantin Kvim awsgui/.vnc/xstartup
无法工作,请尝试使用 vim .vnc/xstartup
。 - TomasVerasapt-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上进行了测试。
su - awsgui
,并且在之前的答案基础上进行。 - Vincenzo Piikillall gnome-panel && sudo gnome-panel &
- Octocat1) 安装软件包
$ 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和Digital Ocean上测试。
对于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/
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用户账户,进入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
ssh -L 5901:localhost:5901 -i "xxx.pem" ubuntu@xxx.amazonaws.com
sudo apt update && sudo apt upgrade
sudo apt-get install xorg lxde vnc4server lubuntu-desktop
sudo nano /etc/lightdm/lightdm.conf
[SeatDefaults]
allow-guest=false
user-session=LXDE
#user-session=Lubuntu
vncserver
sudo echo "lxpanel & /usr/bin/lxsession -s LXDE &" >> ~/.vnc/xstartup
sudo reboot
ssh -L 5901:localhost:5901 -i "xxx.pem" ubuntu@xxx.amazonaws.com
vncserver -geometry 1280x800
我遇到了同样的问题,最终为自己编写了一份指南(https://dugas.ch/lord_of_the_files/run_your_unity_ml_executable_in_the_cloud.html)
这里的回答可以帮助您快速解决问题,但我建议您了解不同层次的基础知识,以实现在Unix中运行GUI / OpenGL环境/远程桌面。 这也取决于您想让事情在GPU还是CPU上运行。
以这种心态,自己启动每个组件会更清楚地知道它们在做什么。
简而言之,你想要:
最棘手的部分是让 X 服务器运行起来,可以直接使用 xorg 和 NVIDIA 驱动程序以及虚拟屏幕(GPU),或者使用 Xvfb(CPU)。
例如,使用 Xvfb(CPU):
Xvfb :0 -screen 0 1024x768x24 +extension GLX +render -noreset >> xsession.log 2>&1 &
DISPLAY=:0 startxfce4
x11vnc -display :0 -usepw -rfbport 5901