当前位置: 首页 > news >正文

在线解决window和linux对linux远程问题

远程控屏不用愁!TigerVNC 帮你轻松搞定跨设备桌面访问

最近在处理维护 Linux 服务器时,发现他还在纠结 “没有图形界面怎么操作”—— 其实不用这么麻烦!今天就给大家分享一款我常用的远程桌面工具:**TigerVNC**。它开源免费、轻量流畅,不管是 Windows 控 Linux,还是 Linux 控 Linux,都能轻松实现图形化远程操作,尤其适合需要管理带桌面服务器的小伙伴。

一、先搞懂:TigerVNC 到底好用在哪?

![](https://i-blog.csdnimg.cn/img_convert/a094f4f63138b79a6ef3d9721e8f6c6d.jpeg)

很多人用过 TeamViewer、AnyDesk,但这类工具要么有免费额度限制,要么在低带宽下卡顿明显。而 TigerVNC 的优势,刚好戳中了 “实用党” 的需求:

  • 零成本无限制:完全开源,个人、企业用都不用花钱,也没有连接时长、设备数量的束缚。
  • 轻量不占资源:安装包才几十 MB,运行时内存占用低,老旧服务器也能流畅跑。
  • 跨平台不挑设备:Windows、macOS、Linux 都能装,我常常用 Windows 笔记本控公司的 CentOS 服务器,操作跟本地桌面没区别。
  • 安全可控:支持密码认证,还能搭配 SSH 隧道加密,远程传文件、改配置都放心。

不过要注意:TigerVNC 更适合 “有桌面环境的设备”—— 比如你的 Linux 服务器本来就装了 GNOME、XFCE 桌面,用它远程访问才顺手;如果是纯命令行的服务器,得先装桌面环境哦。

二、实操:CentOS 系统装 TigerVNC,3 步搞定

我以大家常用的 CentOS 为例(Ubuntu 步骤类似,后面会提差异),假设服务器已经有桌面环境,只需要装 TigerVNC 服务器端,跟着做就行:

1. 先装 TigerVNC 服务器

打开服务器的终端,用 yum 命令安装(CentOS 自带的包管理器,不用额外找安装包):
sudo yum install -y tigervnc-server

等进度条跑完,就安装完成了。如果是 Ubuntu/Debian 系统,把命令换成sudo apt install -y tigervnc-standalone-server就行。

2. 设个 VNC 密码(关键!)

注意:这个密码不是服务器的登录密码,是专门用于 VNC 连接的,建议设 6-8 位,好记又安全。

先切换到你常用的用户(别用 root,不安全),比如我的用户叫 “linda”:

su - linda  # 切换用户
vncpasswd   # 设置VNC密码

按提示输入密码,再确认一遍。会问 “要不要设仅查看密码”—— 选 “n” 就行,不然自己远程时只能看不能操作,麻烦。

3. 配置开机启动,不怕服务器重启

装完后如果服务器重启,VNC 服务会掉,得配置成开机自启。

首先创建一个服务文件,告诉系统怎么启动 VNC:

sudo nano /etc/systemd/system/vncserver@.service

把下面的内容复制进去,注意把 “linda” 换成你的用户名,“/home/linda” 换成你的家目录:

[Unit]
Description=TigerVNC服务(端口:%i)
After=network.target  # 网络通了再启动服务
[Service]
Type=forking
User=linda  # 你的用户名
Group=linda # 你的用户组
WorkingDirectory=/home/linda  # 你的家目录
# 启动前先关掉旧的会话,避免冲突
ExecStartPre=-/usr/bin/vncserver -kill :%i > /dev/null 2>&1
# 启动VNC,分辨率1920x1080(可改),端口对应:%i
ExecStart=/usr/bin/vncserver -depth 24 -geometry 1920x1080 :%i
# 停止服务的命令
ExecStop=/usr/bin/vncserver -kill :%i
[Install]
WantedBy=multi-user.target

按Ctrl+O保存,Ctrl+X退出编辑器。

然后启动服务并设为开机自启(这里用 “1” 表示端口,对应 5901,后面会讲端口):

sudo systemctl daemon-reload  # 重新加载服务配置
sudo systemctl enable vncserver@1.service  # 开机自启
sudo systemctl start vncserver@1.service   # 现在启动

最后开放防火墙端口(CentOS 默认开了防火墙,不开放的话连不上):

sudo firewall-cmd --permanent --add-port=5901/tcp  # 开放5901端口
sudo firewall-cmd --reload  # 重启防火墙生效

一件部署的脚步

#!/bin/bash# 安装TigerVNC服务器脚本
# 适用于CentOS系统# 颜色定义
RED='\033[0;31m'
GREEN='\033[0;32m'
YELLOW='\033[1;33m'
NC='\033[0m' # No Color# 打印彩色信息
print_info() {echo -e "${GREEN}[INFO]${NC} $1"
}print_warning() {echo -e "${YELLOW}[WARNING]${NC} $1"
}print_error() {echo -e "${RED}[ERROR]${NC} $1"
}# 检查是否为root用户
check_root() {if [[ $EUID -eq 0 ]]; thenprint_info "当前是root用户,继续执行..."elseprint_error "请使用root权限运行此脚本!"print_info "可以使用: sudo bash $0"exit 1fi
}# 检查系统是否为CentOS
check_os() {if [[ -f /etc/redhat-release ]]; thenprint_info "检测到CentOS系统"elseprint_error "此脚本仅适用于CentOS系统!"exit 1fi
}# 安装TigerVNC服务器
install_tigervnc() {print_info "开始安装TigerVNC服务器..."# 更新系统包yum update -y# 安装EPEL仓库(如果尚未安装)if ! yum repolist | grep -q "epel"; thenprint_info "安装EPEL仓库..."yum install -y epel-releasefi# 安装TigerVNC服务器yum install -y tigervnc-serverif [[ $? -eq 0 ]]; thenprint_info "TigerVNC服务器安装成功!"elseprint_error "TigerVNC服务器安装失败!"exit 1fi
}# 配置VNC服务器
configure_vnc() {print_info "配置VNC服务器..."# 创建VNC服务配置文件cp /lib/systemd/system/vncserver@.service /etc/systemd/system/vncserver@:1.service# 获取当前用户名CURRENT_USER=$(whoami)# 替换配置文件中的用户sed -i "s/<USER>/$CURRENT_USER/g" /etc/systemd/system/vncserver@:1.serviceprint_info "VNC服务配置文件已创建: /etc/systemd/system/vncserver@:1.service"# 重新加载systemdsystemctl daemon-reload
}# 设置VNC密码
set_vnc_password() {print_warning "请设置VNC密码(至少6位)..."su - $SUDO_USER -c "vncpasswd"
}# 启动VNC服务
start_vnc_service() {print_info "启动VNC服务..."# 启用并启动VNC服务systemctl enable vncserver@:1.servicesystemctl start vncserver@:1.service# 检查服务状态if systemctl is-active --quiet vncserver@:1.service; thenprint_info "VNC服务启动成功!"# 显示服务状态systemctl status vncserver@:1.service --no-pager -l# 获取IP地址IP_ADDRESS=$(hostname -I | awk '{print $1}')print_info "VNC服务器已启动,可以通过 ${YELLOW}$IP_ADDRESS:5901${NC} 连接"elseprint_error "VNC服务启动失败!"systemctl status vncserver@:1.service --no-pager -lfi
}# 配置防火墙
configure_firewall() {print_info "配置防火墙..."# 检查firewalld是否运行if systemctl is-active --quiet firewalld; thenprint_info "添加VNC服务到防火墙..."firewall-cmd --permanent --add-service=vnc-serverfirewall-cmd --reloadprint_info "防火墙已配置,允许VNC连接"elseprint_warning "firewalld未运行,跳过防火墙配置"fi
}# 显示使用说明
show_usage() {echoprint_info "=== TigerVNC服务器安装完成 ==="echoprint_info "使用说明:"print_info "1. 连接地址: ${YELLOW}<服务器IP>:5901${NC}"print_info "2. 查看服务状态: systemctl status vncserver@:1.service"print_info "3. 重启VNC服务: systemctl restart vncserver@:1.service"print_info "4. 停止VNC服务: systemctl stop vncserver@:1.service"print_info "5. 修改VNC密码: 运行 vncpasswd 命令"echoprint_warning "安全提示:"print_warning "- 建议使用强密码"print_warning "- 考虑使用SSH隧道进行安全连接"print_warning "- 仅在可信网络中使用VNC"
}# 主函数
main() {echoprint_info "=== TigerVNC服务器安装脚本 ==="echo# 执行安装步骤check_rootcheck_osinstall_tigervncconfigure_vncset_vnc_passwordstart_vnc_serviceconfigure_firewallshow_usage
}# 执行主函数
main

三、怎么连?客户端操作超简单

服务器端弄好后,本地电脑装个 TigerVNC 客户端就能连了。

1. 装客户端

+ **Windows/macOS**:直接去[Ti](https://tigervnc.org/)[gerVN](https://tigervnc.org/)[C 官网](https://tigervnc.org/)下载,选对应系统的 “Viewer” 版本,安装时一路点下一步就行。 + **Linux**:Ubuntu 用sudo apt install tigervnc-viewer,CentOS 用sudo yum install tigervnc-viewer。

2. 3 步连远程桌面

打开客户端,会弹出一个 “VNC Server” 输入框:

  1. 输入服务器地址 + 端口,格式是 “IP: 端口编号”。比如我的服务器 IP 是 192.168.1.100,端口编号是 1(对应 5901),就输192.168.1.100:1。
  2. 点 “Connect”,会提示输入 VNC 密码,就是刚才设的那个。
  3. 密码输对后,就能看到远程服务器的桌面了!鼠标、键盘都能正常用,跟坐在服务器前操作一样。

四、避坑指南:这些问题我踩过,你别再犯

用了这么久 TigerVNC,遇到过几个常见问题,整理出来帮大家省时间:

1. 连接超时 / 连不上?

先检查两个点:
  • 服务器防火墙是不是真的开放了 5901 端口?用sudo firewall-cmd --list-ports看看,有没有 “5901/tcp”。
  • 服务器 IP 对不对?本地能不能 ping 通服务器(Windows cmd 里输ping 服务器IP,Linux 终端输ping 服务器IP)。

2. 连上去是黑屏?

大概率是xstartup脚本配置错了。这个脚本是告诉 VNC “用哪个桌面环境”,按下面改就行:
nano ~/.vnc/xstartup  # 编辑脚本

把内容换成:

#!/bin/sh
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 &
# 用系统默认的桌面会话
exec $HOME/.xsession 2>/dev/null || exec /etc/X11/xinit/xinitrc

保存后给脚本加执行权限:chmod +x ~/.vnc/xstartup,再重启 VNC 服务:sudo systemctl restart vncserver@1.service。

3. 想多个人同时连?

可以开多个 VNC 会话,比如再开一个端口 2(对应 5902):
sudo systemctl enable vncserver@2.service
sudo systemctl start vncserver@2.service
sudo firewall-cmd --permanent --add-port=5902/tcp
sudo firewall-cmd --reload

其他人连接时输服务器IP:2就行,每个会话互不干扰。

五、最后说句心里话

TigerVNC 可能没有 TeamViewer 那么多花里胡哨的功能,但胜在稳定、免费、不绑架用户。如果你经常需要远程管理带桌面的服务器,或者在家访问公司电脑,试试它绝对不亏。

如果操作中遇到其他问题,欢迎在评论区留言,我会尽量帮大家解答~ 觉得有用的话,别忘了点赞收藏,下次需要时就能快速找到啦!

http://www.dtcms.com/a/507734.html

相关文章:

  • 公司企业做网站好做吗深圳市网站备案
  • rabbitmq的多交换机(扇出为例)监听实现
  • 做网站那个好做淘宝联盟网站要多少钱
  • 4A 架构(业务架构、数据架构、应用架构、技术架构)在智慧电网中的实战:从边缘 AI 到云边协同的代码级拆解
  • django 做网站wordpress使用七牛防止降权
  • 定制建站方案当当网站建设的目标
  • 阿里云创建交换分区、设置内存监控预警和自动处理内存占用过大进程的脚本
  • 网站建设费用做什么科目思明自助建站软件
  • php网站开发实战教程app和网站开发语言的区别
  • 引领未来交易:达普韦伯全链路Swap交易所系统开发解决方案
  • 2.CUDA编程模型
  • YOLOV4
  • MES系统如何实现生产过程数据采集与管控?
  • 医保局网站建设dw网页设计作品简单
  • 网站如何更换空间wordpress镜像什么意思
  • 使用Yum安装Redis
  • Verilog和FPGA的自学笔记7——流水灯与时序约束(XDC文件的编写)
  • 蜜蜂及飞行昆虫多类别检测数据集VOC+YOLO格式3630张6类别
  • 从零开始:在 TCP 基础上手动搭建 ModBus TCP 协议
  • 台州的网站建设wordpress动漫展主题
  • 外贸假发 网站南京网站设计制作公司排名
  • 【C++闯关笔记】模板的特化
  • iOS flutter 上架 4.3(a)【flutter 专讲】
  • 【鸿蒙flutter】flutter_echarts和webview_flutter 兼容问题解决
  • flutter 鸿蒙
  • 重庆潼南网站建设公司企业网站建设示范平台
  • 临沂做网站哪家好西安的互联网公司
  • Linux下的DNS配置文件/etc/resolv.conf详解(1)
  • MyBatis 中 #{ } 与 ${ } 的区别与使用场景
  • C++源代码行数统计工具的设计与实现