1. 介绍
最近学习到通过VNC搭建Ubuntu的图像界面,想购买一个境外服务器搭建一个VNC。然后在国内通过Windowx系统 远程访问,实现科学上网。
PS:可以通过各种方式上网。尝试过通过vpn,但没有跑通。这里尝试一下vnc吧。
2. 购买服务器
首先,先购买一台阿里云的境外的轻量应用服务器。
购买链接:
https://www.aliyun.com/product/swas?source=5176.11533457&source=5176.11533457&userCode=w5jkvc5z
选择亚太,或中国香港都可以。
PS:其他国家及地区提供的带宽主要面向非中国内地的用户。如果您在中国内地,使用这些地域会有较长的访问延迟,不建议您使用。
阿里云提示我们,购买后,可能会有比较大的访问延迟。
但是没关系,科学访问本身就不会很稳定。
选择系统镜像:Ubuntu系统 20.04
版本。
由于我们只是试试自用,可选择最低的套餐::
一个月24元的。可以提供每个月1T的流量访问。
如果我们使用的流量费用操过之后,会按照以下费用进行收费:
地域 | 流量单价(元/GB) |
---|---|
中国内地 | 0.8 |
中国(香港) | 1 |
新加坡 | 0.53 |
PS: 所以建议选择新加坡的服务器
但是没有关系,我们服务器的固定流量配额使用操过50%,80%和95%的时候,阿里云会给我们发短信和站内消息通知我们,流量使用情况。
套餐默认提供了ESSD 40GB,所以我们完全可以不用购买额外的数据盘。
PS:毕竟只是想尝试远程访问而已。40G已经完全够我们使用了
可以先选择一个月的先试用一下。如果觉得合适再进行续费增加时长。
后面的按照正常的支付流程,进行付款就可以了。 付款成功后效果如下:
创建成功后,会给我们的手机发送短信,邮件等消息提醒。
我们进入管理控制台界面,就可以看到我们购买的服务器了。
2.1 配置服务器
当我们购买完毕,通过管理控制台访问服务器实例,可以在服务器信息中,看到我们的远程服务器的ip地址。我们通过公网ip地址就可以进行访问了。
我们需要先进行重置密码。创建我们的ubuntu 服务器的root 访问密码。
修改完毕后,我们就可以通过SSH远程访问的方式访问服务器了。
因为默认情况下,轻量应用服务器防火墙就放行了SSH端口。
我们可以自己远程登录之后,修改SSH的默认端口,提高安全性。修复方法可以参考:Linux 更换SSH默认22端口,禁用ping 指令,提高安全性 (zinyan.com)这篇文章的内容。
这里我就不深入介绍了。我们可以使用Xshell等工具远程登录,
因为已经得到到了root密码。公网ip,SSH端口号22。那么使用SSH远程访问就轻松的很了。登录成功后的效果如下所示:
同时可以试试服务器访问google:
root@iZt4nhagr1ztpwhuxdp9eoZ:~# ping google.com
PING google.com (142.251.10.100) 56(84) bytes of data.
64 bytes from sd-in-f100.1e100.net (142.251.10.100): icmp_seq=1 ttl=57 time=2.72 ms
64 bytes from sd-in-f100.1e100.net (142.251.10.100): icmp_seq=2 ttl=57 time=2.75 ms
64 bytes from sd-in-f100.1e100.net (142.251.10.100): icmp_seq=3 ttl=57 time=2.72 ms
64 bytes from sd-in-f100.1e100.net (142.251.10.100): icmp_seq=4 ttl=57 time=2.72 ms
64 bytes from sd-in-f100.1e100.net (142.251.10.100): icmp_seq=5 ttl=57 time=2.71 ms
64 bytes from sd-in-f100.1e100.net (142.251.10.100): icmp_seq=6 ttl=57 time=2.71 ms
64 bytes from sd-in-f100.1e100.net (142.251.10.100): icmp_seq=7 ttl=57 time=2.72 ms
64 bytes from sd-in-f100.1e100.net (142.251.10.100): icmp_seq=8 ttl=57 time=2.71 ms
代表服务器正常了,现在就是在服务器上搭建vnc服务端,然后我们再通过vnc 客户端,远程访问就可以了。
3. 配置VNC
VNC 全称:Virtual Network Console。它可以将ubuntn操作界面映射为图像界面,并在远程windows系统中通过VNC Viewer客户端访问。
下面介绍详细配置步骤。
首先更新apt软件源:apt-get update
root@iZt4nhagr1ztpwhuxdp9eoZ:~# apt-get update
Get:1 http://mirrors.cloud.aliyuncs.com/ubuntu focal InRelease [265 kB]
Get:2 http://mirrors.cloud.aliyuncs.com/ubuntu focal-updates InRelease [114 kB]
Get:3 http://mirrors.cloud.aliyuncs.com/ubuntu focal-security InRelease [114 kB]
Get:4 http://mirrors.cloud.aliyuncs.com/ubuntu focal/universe Sources [9,707 kB]
Get:5 http://mirrors.cloud.aliyuncs.com/ubuntu focal/main Sources [847 kB]
...
Reading package lists... Done
root@iZt4nhagr1ztpwhuxdp9eoZ:~#
出现Reading package lists… Done 就代表更新完毕了。
第二步,安装桌面环境所需要的软件包:例如,系统面板,窗口管理器,文件浏览器,终端等桌面应用程序。
使用命令为:apt install gnome-panel gnome-settings-daemon metacity nautilus gnome-terminal ubuntu-desktop
完整示例如下所示:
root@iZt4nhagr1ztpwhuxdp9eoZ:~# apt install gnome-panel gnome-settings-daemon metacity nautilus gnome-terminal ubuntu-desktop
...
22 upgraded, 1183 newly installed, 0 to remove and 248 not upgraded.
Need to get 687 MB of archives.
After this operation, 2,802 MB of additional disk space will be used.
Do you want to continue? [Y/n] y
上面内容翻译后:
22个升级,1183个新安装,0个要删除,248个未升级。
需要获得687 MB的存档。
此操作之后,将使用2802MB的额外磁盘空间。
当我们输入y
并按回车之后,就会开始进行安装下载操作了。
整个下载过程和安装过程会需要一些时间。最后的Progress 99% 是最慢的。
安装完毕之后会输出:
Processing triggers for libgdk-pixbuf2.0-0:amd64 (2.40.0+dfsg-3ubuntu0.4) ...
Processing triggers for rygel (0.38.3-1ubuntu1) ...
Processing triggers for libc-bin (2.31-0ubuntu9) ...
Processing triggers for sgml-base (1.29.1) ...
root@iZt4nhagr1ztpwhuxdp9eoZ:~#
第三步,就是安装vnc了,安装命令为:apt-get install tightvncserver
。完整示例如下:
root@iZt4nhagr1ztpwhuxdp9eoZ:~# apt-get install tightvncserver
Reading package lists... Done
Building dependency tree
Reading state information... Done
Suggested packages:
tightvnc-java
The following NEW packages will be installed:
tightvncserver
0 upgraded, 1 newly installed, 0 to remove and 248 not upgraded.
Need to get 663 kB of archives.
After this operation, 1,891 kB of additional disk space will be used.
Get:1 http://mirrors.cloud.aliyuncs.com/ubuntu focal/universe amd64 tightvncserver amd64 1.3.10-0ubuntu5 [663 kB]
Fetched 663 kB in 0s (1,562 kB/s)
Selecting previously unselected package tightvncserver.
(Reading database ... 191688 files and directories currently installed.)
Preparing to unpack .../tightvncserver_1.3.10-0ubuntu5_amd64.deb ...
Unpacking tightvncserver (1.3.10-0ubuntu5) ...
Setting up tightvncserver (1.3.10-0ubuntu5) ...
update-alternatives: using /usr/bin/tightvncserver to provide /usr/bin/vncserver (vncserver) in auto mode
update-alternatives: using /usr/bin/Xtightvnc to provide /usr/bin/Xvnc (Xvnc) in auto mode
update-alternatives: using /usr/bin/tightvncpasswd to provide /usr/bin/vncpasswd (vncpasswd) in auto mode
Processing triggers for man-db (2.9.1-1) ...
PS: 如果你的ubuntu 是18.0 的版本,那么安装命令有差异,需要使用:
apt-get install vnc4server
安装完毕后,通过vncserver
命令启动VNC服务。示例如下:
root@iZt4nhagr1ztpwhuxdp9eoZ:~# vncserver
You will require a password to access your desktops.
Password:
我们第一次启动,需要配置VNC的登录密码。(PS:密码长度为8位,如果长度超过了,系统将会自动截取前8位字符。请注意哦)
我们输入的密码不会显示出来,输入之后回车就会让我们再次确认 Verify。我们再次输出密码。
当我们两次密码输入完毕后,会出现:Would you like to enter a view-only password 是否设置为仅查看密码。我们选择n
示例如下:
You will require a password to access your desktops.
Password:
Verify:
Would you like to enter a view-only password (y/n)? n
出现以下内容代表我们配置成功了:
New 'Zinyan.com' desktop is iZt4nhagr1ztpwhuxdp9eoZ:1
Creating default startup script /root/.vnc/xstartup
Starting applications specified in /root/.vnc/xstartup
Log file is /root/.vnc/iZt4nhagr1ztpwhuxdp9eoZ:1.log
通过cp
命令,备份VNC的xstartup配置文件。示例如下:(PS:也可以不备份,只是备份之后,我们修改错误了配置还可以用备份进行恢复而已)
root@iZt4nhagr1ztpwhuxdp9eoZ:~# cp ~/.vnc/xstartup ~/.vnc/xstartup.bak
修改VNC的xstartup配置: vim ~/.vnc/xstartup
示例效果如下:
root@iZt4nhagr1ztpwhuxdp9eoZ:~# vim ~/.vnc/xstartup
在打开的vim编译界面,默认如下所示:
#!/bin/sh
xrdb $HOME/.Xresources
xsetroot -solid grey
#x-terminal-emulator -geometry 80x24+10+10 -ls -title "$VNCDESKTOP Desktop" &
#x-window-manager &
# Fix to make GNOME work
export XKL_XMODMAP_DISABLE=1
/etc/X11/Xsession
~
~
~
~
~
然后修改成下面所示:
#!/bin/sh
export XKL_XMODMAP_DISABLE=1
export XDG_CURRENT_DESKTOP="GNOME-Flashback:GNOME"
export XDG_MENU_PREFIX="gnome-flashback-"
gnome-session --session=gnome-flashback-metacity --disable-acceleration-check & ~
如果不了解vim的使用,可以通过文章:Linux vim 命令介绍和使用 (zinyan.com) 了解,
通过i
键,进入编辑模式,通过Esc
退出编辑模式,通过:wq
保存编辑后的内容。
然后执行重启VNC操作,首先关闭已经启动的vnc服务:
root@iZt4nhagr1ztpwhuxdp9eoZ:~# vncserver -kill :1
Killing Xtightvnc process ID 49841
然后,运行命令,启动一个新的VNC服务:vncserver -geometry 1920x1080 :1
(PS: 1920x1080 是等会远程界面的数据源分辨率)
root@iZt4nhagr1ztpwhuxdp9eoZ:~# vncserver -geometry 1920x1080 :1
New 'Zinyan.com' desktop is iZt4nhagr1ztpwhuxdp9eoZ:1
Starting applications specified in /root/.vnc/xstartup
Log file is /root/.vnc/iZt4nhagr1ztpwhuxdp9eoZ:1.log
输出上面的效果,就代表启动配置完毕了。
4. 开放VNC端口
我们使用VNC Viewer工具远程访问Linux 服务器的时候,是访问的5900和5901端口。
所以我们需要开放这两个端口,开放方式通过阿里云的管理面板中的防火墙进行开启。
通过右侧的添加规则按钮,添加两个自定义规则
规则开放完毕后,我们就可以配置客户端了。
5. windows 安装 VNC View 客户端
在VNC的官网下载地址:Download VNC Viewer | VNC® Connect (realvnc.com)获取最新的客户端。
下载完毕,默认安装后的首次启动页面为:
我们可以不用登录,关闭登录界面。先进行试用在说。
选择 New connection
选项。在打开的Properties
面板中填写我们的服务器相关信息。
主要是VNC Server信息,输入我们的服务器地址,和vnc的端口号。格式为:<Ubuntu服务器公网IP>:<VNC的端口号>
示例: 123.xx.xx.xx:1
(PS:默认的VNC的端口号就是1,我们在启动的过程中时有输出提示)
第二个Name 输入自定义的Ubuntu桌面的名称。例如:zinyan
下面的内容保持不变,点击: OK
按钮就可以了。
然后就会多上一个命名为zinyan 的选项卡了。我们双击启动这个对象时,首次启动会弹出:
我们翻译一下内容就是:
告诉我们这样连接会有被拦截的风险,我们不用在意,可以点击:Continue
继续。
如果不想每次启动的时候进行提示,可以勾选: Don’t warn me about this again.
接着就会弹出输入密码的界面:
这个密码不是ubuntu 服务器的登录密码。而是我们在配置VNC服务的时候,创建的8位数长度的密码。
输入完毕,点击OK,就会开始进行连接了。
连接成功后的效果:
我们就可以通过windows 通过远程窗口进行操作服务器了。
6. 小结
通过在服务器搭建VNC,是可以在windows中通过远程桌面进行控制访问。
但是如果想通过这种方式实现上网浏览网页啥的,并不是很理想。因为延迟是真的太高了。响应速度比较慢。比较适合网络本身稳定的环境下使用吧。
还不如搭建Shadowsocks 代理呢。
评论区