我正在使用只有命令行界面的亚马逊 Ubuntu EC2 实例。我想为该服务器设置 UI 以使用远程桌面工具进行访问。有什么方法可以将 GUI 应用于 EC2 实例?
这是可以做到的。以下是设置 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服务器
所以我遵循第一个答案,但是当我连接到它时,我的 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 上测试。
su - awsgui
。
killall gnome-panel && sudo gnome-panel &
对于 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/
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
对于 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
我遇到了同样的问题,最后为自己编写了一个操作指南 (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
sudo usermod -aG admin awsgui
之后错过了su - awsgui
vim awsgui/.vnc/xstartup
不起作用,请尝试vim .vnc/xstartup