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

Linux(含嵌入式设备如泰山派)VNC 完整配置指南:含开机自启动(适配 Ubuntu/Debian 系)

完整配置步骤(含安装、基础配置、开机自启)

阶段 1:安装 VNC 服务器(tightvncserver)

适用于 Ubuntu、Debian 及泰山派等嵌入式 Linux(需确保网络正常):

# 1. 更新 apt 缓存(避免安装时找不到包)
sudo apt update -y# 2. 安装 tightvncserver(轻量、稳定,适配嵌入式设备)
sudo apt install tightvncserver -y# 3. 首次启动 VNC:生成配置文件 + 设置访问密码
vncserver
  • 按提示输入两次 VNC 访问密码(建议 6-8 位,过长可能被截断);
  • 可选 “是否设置 view-only 密码”(仅允许查看不允许操作):需则输入 y 并设置,无需则输入 n
  • 首次启动后,系统会自动生成配置文件 ~/.vnc/xstartup(后续需修改此文件启用图形桌面)。

阶段 2:配置 VNC 图形桌面(修复 “仅显示命令行” 问题)

默认情况下,VNC 仅加载命令行界面,需修改 xstartup 脚本启用图形桌面(适配 Xfce/GNOME,泰山派常用 Xfce):

# 1. 先关闭当前 VNC 会话(避免配置文件被占用)
vncserver -kill :1  # ":1" 表示第一个 VNC 桌面(对应端口 5901)# 2. 编辑 xstartup 配置文件
nano ~/.vnc/xstartup# 3. 删除原有内容,粘贴以下配置(适配 Xfce 桌面,泰山派默认桌面)
#!/bin/sh
# 禁用 X 键盘映射,避免乱码
export XKL_XMODMAP_DISABLE=1
# 清除会话管理器和 DBUS 地址,防止图形桌面冲突
unset SESSION_MANAGER
unset DBUS_SESSION_BUS_ADDRESS
# 启动 Xfce 桌面(若为 GNOME 桌面,替换为 "gnome-session &")
startxfce4 &# 4. 赋予脚本执行权限(否则 VNC 无法加载图形桌面)
chmod +x ~/.vnc/xstartup# 5. 手动启动 VNC 验证配置:若弹出图形桌面则基础配置成功
vncserver
  • 启动成功标志:终端显示 New 'X' desktop is 主机名:1,且无报错。

阶段 3:核心配置 —— 开机自启动(systemd 服务)

这是实现 “重启后 VNC 自动运行” 的关键步骤,通过创建 systemd 服务文件注册 VNC 为系统服务:

步骤 1:创建 VNC 服务文件
# 1. 编辑 systemd 服务文件(文件名建议为 vncserver@.service,支持多桌面)
sudo nano /etc/systemd/system/vncserver@.service
步骤 2:粘贴服务配置(需替换 2 处关键信息)
[Unit]
# 服务描述(自定义,便于识别)
Description=VNC Server for %i
# 服务依赖:网络启动后再启动 VNC(避免网络未就绪导致失败)
After=syslog.target network.target[Service]
# 类型:forking(后台运行模式,VNC 需后台启动)
Type=forking
# 关键:替换为你的用户名(如 root、lckfb,通过 "whoami" 命令查看)
User=root
# PID 文件路径:记录 VNC 进程 ID,用于停止/重启服务(%H 为主机名,%i 为桌面号)
PIDFile=/home/%u/.vnc/%H%i.pid
# 启动前先停止旧会话(避免冲突)
ExecStartPre=-/usr/bin/vncserver -kill %i
# 启动命令:%i 为桌面号(如 :1),-geometry 设分辨率(适配嵌入式屏幕,可改)
ExecStart=/usr/bin/vncserver %i -geometry 1024x600 -depth 24
# 停止命令:关闭对应桌面的 VNC 会话
ExecStop=/usr/bin/vncserver -kill %i[Install]
# 开机自启的目标:多用户模式(嵌入式设备默认启动模式)
WantedBy=multi-user.target
  • 必须修改的内容User=root 中的 root,若你用普通用户(如 lckfb),需改为 User=lckfb(否则 VNC 会因权限问题启动失败);
  • 可选调整-geometry 1024x600 为 VNC 桌面分辨率,可根据需求改为 1280x720(嵌入式设备建议不超过 1024x600,避免卡顿)。
步骤 3:启用并启动 VNC 服务
# 1. 重新加载 systemd 配置(让系统识别新创建的服务文件)
sudo systemctl daemon-reload# 2. 启用开机自启:针对桌面 1(对应端口 5901)
sudo systemctl enable vncserver@:1.service# 3. 立即启动 VNC 服务(无需重启,测试是否能正常运行)
sudo systemctl start vncserver@:1.service# 4. 查看服务状态:确保显示 "active (running)"
sudo systemctl status vncserver@:1.service
  • 成功标志:终端输出中含 active (running),无 failed 或 exited 状态;
  • 若失败:执行 sudo journalctl -u vncserver@:1.service 查看日志,定位错误(常见原因:User 配置错误、xstartup 权限不足)。

阶段 4:验证开机自启(关键测试)

配置后需重启设备,确认 VNC 服务是否自动启动:

# 1. 重启设备(嵌入式设备需等待 1-2 分钟)
sudo reboot# 2. 重启后无需手动执行 vncserver,直接查看服务状态
sudo systemctl status vncserver@:1.service# 3. 进一步验证:查看 VNC 端口(5901)是否在监听(远程可连接的标志)
ss -tuln | grep 5901
  • 若 ss -tuln 输出 tcp LISTEN 0 5 *:5901 *:*,说明 VNC 服务已自动启动,且端口开放。

三、远程连接 VNC(手机 / 电脑均可)

步骤 1:获取设备 IP

在 Linux 终端执行以下命令,获取设备的局域网 IP(如泰山派连接 WiFi 后的 IP):

# 查看 WiFi 接口(wlan0)的 IP(网线连接则看 eth0)
ip addr show wlan0 | grep "inet "
  • 示例输出:inet 192.168.167.72/24,其中 192.168.167.72 即为设备 IP。

步骤 2:用 VNC 客户端连接

  • 电脑端:下载 RealVNC Viewer 或 TightVNC Viewer,输入 设备IP:1(如 192.168.167.72:1),输入之前设置的 VNC 密码,即可连接;
  • 手机端:在应用商店搜索 “VNC Viewer”,按提示输入 IP 和密码,适合移动场景操作。

四、适配嵌入式设备(如泰山派)的注意事项

  1. 防火墙问题:泰山派等嵌入式 Linux 通常未预装 ufw/firewalld,默认无防火墙拦截,无需额外开放端口;若之前安装了 ufw 且启动失败(如内核缺模块),可执行 sudo systemctl stop ufw && sudo systemctl disable ufw 禁用,避免影响 VNC 连接。

  2. 系统目录权限:若执行 sudo 时提示 “uid is 0 but '/etc' is owned by 1000”,需先修复权限(否则服务可能启动失败):

    sudo chown -R root:root /etc /lib /usr
    sudo chmod -R 755 /etc /lib /usr
    
  3. 主机名解析警告:若 sudo 提示 “unable to resolve host localhost.localdomain”,编辑 /etc/hosts 补充映射:

    sudo nano /etc/hosts
    # 添加以下内容(替换 "localhost.localdomain" 为你的主机名,通过 "hostname" 查看)
    127.0.0.1   localhost localhost.localdomain
    ::1         localhost localhost.localdomain
    

五、常见问题排查

  1. VNC 服务启动失败,日志显示 “xstartup 无执行权限”:执行 chmod +x ~/.vnc/xstartup 赋予权限,再重启服务:sudo systemctl restart vncserver@:1.service

  2. 重启后 VNC 服务未启动,状态为 “failed”:查看日志定位原因:sudo journalctl -u vncserver@:1.service,常见问题:User 配置错误(非当前用户名)、xstartup 中桌面命令错误(如 GNOME 用了 startxfce4)。

  3. 远程连接时提示 “连接被拒绝”:① 确认 VNC 服务已启动:sudo systemctl status vncserver@:1.service;② 确认设备 IP 正确(重启后 IP 可能变化,需重新查看);③ 嵌入式设备需与客户端在同一局域网(如同一 WiFi)。

六、总结

通过本文步骤,你将实现:

  1. 手动启动 VNC 服务并加载图形桌面;
  2. VNC 服务 “开机自动运行”,重启后无需手动操作;
  3. 远程设备(电脑 / 手机)可稳定连接 Linux 桌面。

核心关键是 systemd 服务配置—— 通过 /etc/systemd/system/vncserver@.service 文件,将 VNC 注册为系统服务,确保其随系统启动而自动运行,彻底解决 “重启后 VNC 失效” 的问题。

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

相关文章:

  • 网站营销活动泰安市高新区建设局网站
  • 玳瑁的嵌入式日记 --------API总结
  • [xboard] 26 kernel启动流程之initrd、initramfs、ramdisk核心异同
  • 鸿蒙实现滴滴出行项目之侧边抽屉栏以及权限以及搜索定位功能
  • 从OpenAI发布会看AI未来:中国就业市场的重构与突围
  • 乔拓云网站建设wps怎么做网站
  • TensorFlow2 Python深度学习 - TensorFlow2框架入门 - 立即执行模式(Eager Execution)
  • 监控系统2 - framebuffer
  • 大型网站响应式wordpress3.8.3
  • Django `models.Field` 所有常见配置参数的完整清单与说明表
  • 音乐播放器-单html文件
  • 18+网站推广平面设计师素材网站
  • 告别传统SEO!拥抱下一代流量密码:生成式引擎优化(GEO)实战指南
  • 不抽佣美团核销API接口,同时支持美团抖音核销,快速接入
  • 优化网站关键词的技巧建设银行忘记密码网站
  • 网站建设属于服务还是货物为什么asp.net做的网站上传后不显示照片
  • TT直流减速电机(STM32)
  • MQTT协议三个核心函数的详解
  • 马拉松网站建设方案汽车网站管理系统
  • 【企业架构】TOGAF架构标准规范-技术架构
  • 【Proteus仿真】甲单片机(AT89C51)控制乙单片机(AT89C51)
  • 南阳网站推广优化公司discuz和wordpress区别
  • XSLT `<value-of>` 标签详解
  • 做外贸网站注册什么邮箱懒人模板网站
  • 案例-使用Postman向百度首页发送带时间戳的GET请求
  • leetcode排序链表
  • 做经营性的网站备案条件汉字叔叔花了多少钱做网站
  • 效果好企业营销型网站建设手机html5网站源码
  • 浏览器事件循环与内存管理可视化
  • 虚拟机双网卡设置