提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
文章目录
前言
在远程运维和跨网络访问场景中,安全、稳定、高效的内网穿透方案是必不可少的。对于需要远程控制图形界面的用户来说,VNC(Virtual Network Computing)是一种常见的远程桌面解决方案。而在内网环境中,传统的端口映射、VPN等方法往往存在配置复杂、安全隐患或受限于网络环境的问题。
Tailscale 是基于 WireGuard 的零配置 VPN 解决方案,能够轻松实现不同网络间的安全互联。结合 TigerVNC,我们可以在无需复杂端口映射的情况下,实现远程桌面访问,并确保数据传输的安全性。
本文将介绍如何利用 Tailscale 实现内网穿透,并结合 TigerVNC 搭建远程桌面环境,以便在不同网络环境下安全访问远程设备的桌面。
本文是介于作者需要在家能够访问公司服务器的图形桌面,而进行的配置需要
一、安装tailscale
curl -fsSL https://tailscale.com/install.sh | sh
tailscale up
这里安装的时候遇到一个问题:由于yum源配置比较乱,即有红帽7,又有rockylinux的yum源,安装的时候造成yum源冲突,故只需要使用阿里云的centos7的网络源即可安装成功,rockyLinux的yum源配置可以暂时移到其它位置,然后yum clean all && yum repolist -v,重新加载yum缓存,再执行安装,如果安装速度较慢,可以多等待一会,如果进程退出,可重新yum -y install 会从断点继续安装
二、服务器登录tailscale
tailscale up
这一步在服务器执行,执行之后会提示一个url地址,用服务器浏览器或者复制这个url到你的winds电脑,在winds浏览器登录这个地址,如果需要注册,按照提示步骤正常注册即可。
三、查看服务器IP
tailscale ip -4
你会看到类似 100.x.x.x
的 Tailscale 内网 IP 地址。
四、winds下载tailscale
从Tailscale官网下载 Windows 版本并安装。
安装步骤可以无脑下一步完成后,打开 Tailscale 应用,使用和你服务器URL登录注册时的同一账号登录,那么你会在设备中看到两个设备,如图,当两个设备都是绿色,表示设备处于开机,并能够正常连接(我这里,realserver是我的Linux服务器,我关机了,服务停了,所以是不能连接的)
当两个设备都是绿色时,可以从winds去ping你的Linux的100.x.x.x的IP,也可以从Linux去ping你的winds服务器,正常情况两者都能互相ping通,那么就可以在winds上利用xshell或者其他终端工具在任意网络、任何地点连接你的服务器了。不过,亲测之后,发现,延迟真的很高(或许跟开了代理有关),所以推荐另一款工具natapp,注册配置简单,唯一的问题是只能通过域名访问,免费版,每次在服务器启动服务,端口会发生变化,但是、远程连接执行命令确实不卡。
五、如果你的tailscale配置好了,那么远程vnc配置就很简单了
1.安装VNC组件(root用户)。通过yum-y install命令方式安装VNC组件。这里使用的还是阿里云的网络源
命令:yum -y install tigervnc tigervnc-server
2.复制配置文件,将用户改为root用户,cp /lib/systemd/system/vncserver@.service /lib/systemd/system/vncserver@:1.service
使用vim方式编辑vncserver@:1.service文件。将其中的ExecStart一行的“<USER>”改为“root”,并添加“PIDFile=/root/.vnc/%H%i.pid”。
3.设置VNC登录密码(root用户)。在终端上输入vncpasswd命令,根据提示设置VNC客户端的登录密码和确认密码。设置过程中输出信息会提示“Would you like to enter a view-only password (y/n)?”,即是否设置浏览模式的密码,输出“y”,继续输入该模式的密码,也可以选择“n”跳过这个密码设置。
4.修改VNC客户端窗口分辨率(root用户)。用VI编辑器打开/usr/bin/vncserver文件,找到分辨率这一项将其设置为适合自己显示器的分辨率。找到geomertry这行,调整分辨率。
5.启动VNC服务,且允许开机自启动设置。 命令: systemctl start vncserver@:1.service systemctl enable vncserver@:1.service
6.查看服务监听的端口号5901,设置防火墙和selinux放行流量,或者将两者直接关闭,
六、在winds安装vnc客户端
网址:Download VNC Viewer by RealVNC®。下载安装,无脑下一步即可
安装完成之后在“VNC View”窗口的空白处单击右键,再弹出的菜单中选择【New connection】命令,创建一个新的VNC连接
在弹出的【VNCViewer】配置对话框中,在【VNCServer】后输入待创建连接的VNC服务端IP地址与端口号(VNC默认端口从5900开始),格式为“IP地址:端口号”,设置完毕,单击【OK]按钮,完成新连接的创建。
新连接创建后,在【VNCViewer]窗口中会出现一个图标,在其上单击鼠标右键,选择弹出菜单中的[Connect]命令,连接 VNC服务端。或者双击该图标也是建立连接
特别注意:如果连接超时,可以关闭代理之后再试,我就是开着代理,反复超时,后来才发现这个问题
在弹出的【Encryption】对话框中,单击【Continue】按钮,允许远程连接。
弹出【Authentication】对话框,在【Password】后面输入VNC服务端的密码,输入完毕后单击【OK】按钮确认。
若密码正确,即可成功远程连接到VNC服务端的桌面。当然实际效果受网速和分辨率影响,可能达不到这么清晰的程度,如果是自己虚拟机做实验,那效果应该还是可以的。如果是真实的远程主机,那效果就差很多,如果不常用桌面操作的话,也能勉强满足远程桌面控制的需求。