问题描述
我正在使用一个只有命令行界面的亚马逊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
在vnc客户端中,提供公共DNS加上”:1″(例如www.example.com:1)。输入vnc登录密码。确保使用普通连接。不要使用密钥文件。
控制台上的端口打开
sudo iptables -A INPUT -p tcp –dport 5901 -j ACCEPT
如果出现灰色窗口问题。主要是因为”.vnc/xstartup”文件位于不同的用户上。因此,还要在同一用户而不是”awsgui”用户上运行vnc服务器。
vncserver
次佳解决方案
所以我遵循第一个答案,但是当我连接到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上测试。
第三种解决方案
对于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
经过AWS和数字海洋测试。
对于AWS,必须在防火墙上允许端口5901
杀死会议
$ vncserver -kill :1
参考:
请参考本指南以创建永久会话作为服务
第四种方案
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安装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
第五种方案
对于LXDE /Lubuntu
1.连接到您的实例(本地转发端口5901)
ssh -L 5901:localhost:5901 -i “xxx.pem” ubuntu@xxx.amazonaws.com
2.安装软件包
须藤apt更新&& sudo apt升级sudo apt-get安装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-几何1280×800
8.在您的远程桌面客户端(例如Remmina)中,将Server设置为localhost:5901,将协议设置为VNC
参考资料