
正文
ssh tunneling应用案例-AWS EC2 vnc图形化桌面的支持
提示:扫一扫查出行【扫一扫了解最新限行尾号】
复制提示
一般地,无论是AWS EC2还是阿里云的云主机,linux系统默认都只提供ssh登录方式。如果你是一个技术控,非常希望把图形化界面给折腾出来,这其中就不需有vnc server的支持,除此之外,还涉及到如vnc client如何和vnc server通信的问题。 有两个方案:
1. 手工在安全组中开放更多的端口
2. 通过ssh隧道来桥接vnc client和server的通信链路
第一种方式非常容易理解,我们重点讨论第2种,也就是在不开放更多端口情况下,仅使用ssh的22端口来实现vnc连接
具体地,需要以下的步骤
1. 创建好aws ec2或者阿里云主机
2. 在windows客户端上安装Realvnc
3. ssh到ec2上执行以下命令(以ubutu为例子)安装vncserver及其依赖的组件
sudo apt-get update
sudo apt-get upgrade
sudo apt-get install ubuntu-desktop gnome-panel gnome-settings-daemon metacity nautilus gnome-terminal xfce4 vnc4server
4.启动vncserver,输入vnc password
随后编辑~/.vnc/xstartup文件并替换为以下内容:
#!/bin/sh
# Uncomment the following two lines for normal desktop:
unset SESSION_MANAGER
# exec /etc/X11/xinit/xinitrc
unset DBUS_SESSION_BUS_ADDRESS
startxfce4 &
[ -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 &
5. 重点来了,开启ssh的端口forwarding
ssh -L :localhost: -i amazon.pem ubuntu@ec2––––.compute-.amazonaws.com
再启动vncserver
vncserver -geometry 1340x750
需要注意的是,1340x750是指的我的windows桌面次寸。随后
6.使用Realvnc来连接localhost:5902并且输入上面已经设置过的pasword.(there is a correlation between them (eg. display 1 = vnc port 5901, 6001 and display 2 = vnc port 5902 etc)
https://medium.com/@Arafat./graphical-user-interface-using-vnc-with-amazon-ec2-instances-549d9c0969c5




