news 2026/10/1 10:13:02

VNC Viewer连接Linux:TigerVNC/x11vnc配置与排错

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
VNC Viewer连接Linux:TigerVNC/x11vnc配置与排错

一台常年放在机房角落的 Linux 主机,显示器没人看,但里面的图形化工具、打包好的测试程序、只有 GUI 才能跑的临时脚本又必须用;或者你人在外地,要临时看一眼家里那台装了 Linux 的开发机。这类场景下,VNC Viewer 连接 Linux几乎是最省事的一条路。我在 Debian、Ubuntu、Rocky、CentOS 以及各种云主机镜像上来回折腾过十几轮 VNC Viewer 的配置,踩过的坑从"端口不通"到"连上但黑屏",再到"能用却卡得像放幻灯片",最后发现真正决定成败的往往不是软件本身,而是几个极易被忽略的细节:服务端到底监听在哪个地址、桌面跑在 X11 还是 Wayland、显示号和端口的对应关系有没有搞反。这篇就把整套流程从头到尾捋一遍——服务端选型、安装、配置、开机自启,到客户端 VNC Viewer 的实用设置,以及连不上时按什么顺序逐步排查。刚接触 Linux 的新手可以照着抄,需要给团队批量开远程桌面的运维也能拿去改。

1. 先理清 VNC 的完整链路,别急着装软件

1.1 RFB 协议和 5900 端口的那点对应关系

VNC 这个词其实是 Virtual Network Computing 的缩写,底层跑的是 RFB(Remote Framebuffer)协议。它的工作方式很朴素:服务端把屏幕这块"帧缓冲区"的变化切成一堆小矩形块,编码压缩后推给客户端;客户端把鼠标移动、键盘敲击这些事件回传回去。所以你看到的画面,本质上是服务端一遍遍截图发过来的结果,这也解释了为什么 VNC 在播放视频、拖动窗口时会明显发涩——它天生就不是为高帧率画面设计的。

理解这一点之后,端口的事就好办了。VNC 用到的是5900 起步的一串端口,规则是5900 + 显示号。显示号是 VNC 自己的一套编号,跟物理显示器没关系,它更像"这是第几个虚拟桌面"的序号。很多人第一次配置失败,就是栽在这个映射上:

VNC 显示号实际监听端口典型来源
:05900共享当前物理屏幕(x11vnc 默认)
:15901第一个独立虚拟会话
:25902第二个会话,或多用户并行

在 VNC Viewer 里填地址的时候,192.168.1.20:1表示连显示号 1,也就是 5901 端口;而192.168.1.20::5901是两个冒号,表示直接指定端口号。这一个冒号和两个冒号的区别,能让人抓狂半小时,我见过不止一次。

1.2 图形会话不是服务,Wayland 带来的第一道坎

在 Linux 上,"桌面"这个词的含义和 Windows 完全不同。X11 时代的设计是客户端-服务端反过来的:真正跑在远端的是 X Server,负责画图;你的程序反而是 X Client。所以DISPLAY=:1这样的环境变量决定了图形程序往哪儿画。VNC 服务端要做的事,就是自己起一个虚拟的 X Server(比如 TigerVNC 的 Xvnc 进程),然后让桌面环境往上画。

问题出在新版系统上。现在的 GNOME、KDE 默认跑的是Wayland,而 Wayland 出于安全设计,不允许普通程序随便抓取整个屏幕的帧缓冲。这就导致两个后果:一是想在 Wayland 会话里"共享当前物理屏幕",工具会各种报错或者抓到一片黑;二是像 x11vnc 这类依赖 X11 抓屏的方案,在纯 Wayland 下基本失效。

动手之前先确认一下当前的会话类型,一条命令的事:

echo $XDG_SESSION_TYPE loginctl show-session $(loginctl | grep $(whoami) | awk '{print $1}') -p Type

如果输出是wayland,那你有两条路:要么在登录界面切回 X11 会话(GNOME 登录界面右下角那个齿轮里选 "GNOME on Xorg"),要么放弃"共享物理屏"的思路,改用 TigerVNC 起一个独立的虚拟会话。后者其实是更推荐的做法,理由在下一节展开。

2. 服务端选型:TigerVNC、x11vnc 和桌面自带方案的取舍

2.1 TigerVNC:独立会话,适合长期挂着

TigerVNC 是我在绝大多数场景下的首选。它的核心卖点是每个连接可以是一个完全独立的虚拟桌面,跟物理屏幕上登录着谁、有没有人坐在机器前一点关系都没有。你可以同时给三个同事各开一个 :1、:2、:3,互不干扰;也可以自己开一个专门用来跑长任务的图形会话,下班回家接着看。

它依赖的是自带的 Xvnc 进程,本质上是一个"集成了 VNC 能力的 X Server",所以在 Wayland 系统上照样能跑——因为 Xvnc 本身就是 X11 的实现,跟登录会话是不是 Wayland 无关。性能上,TigerVNC 的编码器更新比较积极,Tight、ZRLE 这些编码在普通办公场景下延迟可以接受,色彩深度调低之后跨区域用也不算太难受。

2.2 x11vnc:共享当前物理屏幕,适合现场救火

x11vnc 的定位完全不同:它不创建新会话,而是把已经存在的那块屏幕转发出去。你在 VNC Viewer 里看到的,就是坐在机器前的人正在看的画面,鼠标是同一只,剪贴板也是同一个。这个特性在某些场景下无可替代——比如机器上跑着一个必须本地登录才能启动的授权软件,或者需要给同事演示操作过程,再或者远程协助时让对方看着你动手。

代价是它天然只能有一个"屏幕",多用户同时连上来看到的是同一幅画面,而且强依赖 X11。在纯 Wayland 会话下,它基本没法用。所以我的习惯是:长期远程用 TigerVNC,临时救火用 x11vnc,两个都装,按需启动,互不冲突(注意别抢同一个显示号)。

2.3 装之前先确认桌面环境,别连上才发现是空壳

有一个坑特别常见:服务器版系统装完根本没有图形桌面,你把 VNC 服务端跑起来了,连上去只有一片灰底加一个鼠标。因为 VNC 只是"把画面传出去",画面里有什么内容,得靠桌面环境提供。

最小化安装的桌面,我推荐XFCE 或 LXDE。原因是它们内存占用低(XFCE 完整跑起来大概两三百兆),在 VNC 这种带宽敏感的场景下,渲染负担小、画面刷新更利索。GNOME 也能用,但一个 GNOME 会话动辄吃掉七八百兆内存,加上动画特效,通过 VNC 传输时会明显发顿。

以 Debian/Ubuntu 系为例,一次性把该装的装上:

sudo apt update sudo apt install -y tigervnc-standalone-server tigervnc-common \ xfce4 xfce4-goodies dbus-x11 xterm

Rocky / CentOS / Alma 这边:

sudo dnf install -y tigervnc-server xorg-x11-xinit xterm # 桌面环境自行选择 sudo dnf groupinstall -y "Server with GUI"

注意:dbus-x11这个包在很多教程里被漏掉,但少了它,桌面里的电源管理、通知、部分应用的启动都会莫名其妙失败,表现就是"桌面能进,但点什么都弹不出来"。

3. 把服务端真正跑起来:账户、配置、systemd 三件套

3.1 专用账户与密码文件,权限比内容更重要

我的建议是不要用 root 直接开 VNC 会话。原因有二:一是 root 的图形会话一旦被连上,等于把整台机器交出去了;二是很多桌面组件在 root 下会拒绝启动或者告警。建一个专用账户,比如就叫vncuser:

sudo useradd -m -s /bin/bash vncuser sudo passwd vncuser

接着切到这个账户下生成 VNC 密码:

su - vncuser vncpasswd

vncpasswd会问你两次密码,还会问一句是否设置"仅查看密码"(view-only password)。这个只读密码很有用:给别人演示时用只读密码,对方只能看不能动。生成出来的文件在~/.vnc/passwd,权限必须是 600,否则 TigerVNC 启动时会直接拒绝:

chmod 600 ~/.vnc/passwd

顺便说一句 VNC 密码的长度限制——旧版协议只取前 8 位,虽然后来的版本支持更长密码,但如果你在混合版本环境里用,最好还是把密码当成 8 位有效来设计。更重要的是,VNC 自身的密码认证强度很弱,这一点第 5 节会专门讲怎么补救。

3.2 ~/.vnc/config 和 xstartup 里真正该改的几行

TigerVNC 在新版里把配置从命令行参数挪到了配置文件,位置是~/.vnc/config。这个文件不用写太多,写多了反而容易出错:

session=xfce geometry=1920x1080 depth=24 localhost alwaysshared

逐行解释一下我的取舍:

  • session=xfce只是个标记,真正决定启动什么的是 xstartup 脚本,但某些发行版的启动脚本会读这个值,写上不亏。
  • geometry是虚拟屏幕分辨率。这里有个经验:不要设得比客户端窗口还大太多,否则你在小屏笔记本上连过去,要么得不停滚动,要么缩放后糊成一片。1920x1080 是个稳妥的默认值。
  • depth=24是色彩深度。16 位能省带宽但渐变会有色带,24 位画质好、带宽翻倍,局域网内建议直接 24。
  • localhost这一行是安全开关,让服务端只监听 127.0.0.1。这意味着必须通过 SSH 端口转发才能连上,裸连是连不通的。初次调试时可以先把这行注释掉,等确认能连上了再加回来。
  • alwaysshared允许多个客户端同时看同一个会话(比如你连一个、同事连一个),不加的话默认是独占的,第二个人连上来会被踢。

然后是~/.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" exec startxfce4

写完记得加执行权限,这一步漏掉的话,症状就是"能连上、能看到灰底、但点什么都没反应":

chmod +x ~/.vnc/xstartup

3.3 用 systemd 管理多实例,顺便解决开机自启

手动敲vncserver :1能用,但机器一重启就没了,而且进程崩了不会自动拉起来。正规做法是交给 systemd。

在 RHEL 系(Rocky、CentOS、Alma、Fedora)里,TigerVNC 自带一个模板服务vncserver@.service,你只需要把用户和显示号的映射写进/etc/tigervnc/vncserver.users:

:1=vncuser :2=devuser

然后启动、设置开机自启:

sudo systemctl daemon-reload sudo systemctl enable --now vncserver@:1.service sudo systemctl status vncserver@:1.service

Debian/Ubuntu 这边没有现成的模板,需要自己写一个用户级 unit,放在~/.config/systemd/user/vncserver.service:

[Unit] Description=TigerVNC Service After=sys.target [Service] Type=forking ExecStartPre=-/usr/bin/vncserver -kill :%i > /dev/null 2>&1 ExecStart=/usr/bin/vncserver -depth 24 -geometry 1920x1080 :%i ExecStop=/usr/bin/vncserver -kill :%i [Install] WantedBy=default.target

用户级服务有个容易忽略的点:必须开启 linger,否则用户一登出,服务就被系统回收了。

loginctl enable-linger $USER systemctl --user enable --now vncserver.service

3.4 分辨率、色深和桌面参数之间会互相打架

有几组参数是会相互影响的,分开看都对,凑一起就出问题:

第一组是分辨率与缩放。服务端设 1920x1080,客户端屏幕只有 1366x768,VNC Viewer 默认会做缩放适配,文字会有点虚。如果在意清晰度,把服务端geometry降到和客户端一致反而更舒服。

第二组是色深与压缩等级。24 位色深加高压缩,画质好但 CPU 吃得凶;16 位色深加低压缩,CPU 轻松但画面有块状感。老机器上我一般选 16 位 + 中等压缩,毕竟流畅比好看重要。

第三组是桌面环境的合成器。XFCE 的窗口特效如果全开,通过 VNC 拖动窗口会有明显拖影。在 XFCE 的"窗口管理器微调"里把合成器关掉,或者干脆选"无合成",画面会利索很多。这个调整在本地用几乎无感,但在 VNC 里差别很明显。

4. 第一次连接就连不上?按这个顺序查

4.1 先看端口到底监听在哪儿

排查永远从最底层开始。在服务器上执行:

ss -lntp | grep 590

会看到类似LISTEN 0 5 127.0.0.1:5901或者LISTEN 0 5 0.0.0.0:5901的输出。这里的地址决定了你能不能远程连上:如果是127.0.0.1,说明开了localhost限制,只能从本机或者经过端口转发访问;如果是0.0.0.0或::,才允许外部直接连。

很多人会碰到这种情况:配置文件里明明注释掉了localhost,重启服务后还是监听在 127.0.0.1。原因通常是显示号对应的旧进程没被杀干净,新进程启动失败,端口还挂在旧进程上。这时候先手动杀掉再重启:

vncserver -kill :1 rm -f /tmp/.X11-unix/X1 /tmp/.X1-lock systemctl restart vncserver@:1

4.2 防火墙和 SELinux 放行,两个都别漏

端口监听对了,接下来是防火墙。firewalld 环境下:

sudo firewall-cmd --permanent --add-port=5901/tcp sudo firewall-cmd --reload

ufw 环境下:

sudo ufw allow 5901/tcp

但 RHEL 系还有一关:SELinux。它默认只允许 VNC 监听几个固定端口,你换个非常规端口,服务就会静默失败。查一下有没有被拦:

sudo ausearch -m avc -ts recent

要放行新端口,可以给端口打上 VNC 的标签:

sudo semanage port -a -t vnc_port_t -p tcp 5905

这一步属于典型的"日志里看不出问题、但就是连不上"的坑,我在这上面浪费过整整一个下午。

4.3 黑屏、灰屏、一闪而退,日志写着答案

VNC 连上之后的三种典型异常,症状很像,原因完全不同。日志位置在~/.vnc/*.log,每次启动的报错都写在那儿,排查的第一动作就是 tail 这个文件。

现象大概率原因验证方式
一片黑,只有鼠标桌面环境没启动成功,或启动脚本报错看日志末尾的exec报错
一片灰,有个终端窗口只启动了 xterm,没启动窗口管理器检查 xstartup 最后一行
连上瞬间断开显示号冲突,或 X 锁文件残留ls /tmp/.X*-lock

第一种情况最常见的原因是startxfce4找不到。可能是包没装全,也可能是 PATH 在 systemd 环境下和交互式 shell 不一样。解决办法是在 xstartup 里写全路径:

exec /usr/bin/startxfce4

用which startxfce4确认一下路径再写。

第二种灰屏,是新版 TigerVNC 的默认 xstartup 就是只起一个 xterm,如果安装时覆盖了自己的配置,就会变成这样。重新写好 xstartup 即可。

第三种一闪而退,多半是残留的锁文件。前面 4.1 里那两条rm -f就是干这个的。

4.4 密码明明对,认证却被拒绝

"密码肯定没错"这句话我在自己身上和同事身上都听过无数次,最后查出来的原因五花八门:

  • 密码文件路径不对。systemd 启动时用的 HOME 可能不是你预期的那个,导致读的是别的用户的~/.vnc/passwd。用systemctl cat vncserver@:1看看实际执行了哪些参数。
  • 权限过宽。~/.vnc/passwd权限不是 600,服务端会直接忽略它。
  • 客户端缓存了旧密码。VNC Viewer 会把密码存在本地,改过服务端密码之后,客户端还在拿旧的试。删掉保存的连接重新建一个最快。
  • 认证类型不匹配。有些服务端默认只开VncAuth,某些客户端默认走别的协商方式。可以在配置里显式加一行SecurityTypes=VncAuth,减少协商环节。

小技巧:判断到底是网络问题还是认证问题,看客户端报的是 "connection refused"、"timed out" 还是 "authentication failed"。拒绝连接是端口没开,超时是防火墙或路由拦了,认证失败才是密码的事。三个词对应三个阶段,能省下大量瞎试的时间。

5. 让 VNC 用得不那么危险:隧道、只读和限权

5.1 别把 5901 裸奔在公网上

VNC 协议设计于上世纪九十年代,它自带的密码认证强度不高,而且很多编码和握手过程是明文的。直接把 5900 段端口暴露在公网,等于给整台机器开了扇没锁的门,扫描器几小时内就能找上门。所以只要不是纯内网环境,我的做法一律是:

服务端只监听 127.0.0.1,走 SSH 端口转发访问。

服务端配置里保留localhost那一行,然后客户端这边先建立转发:

ssh -L 5901:127.0.0.1:5901 -N -f vncuser@192.168.1.20

这条命令的意思是:把本地的 5901 端口,通过 SSH 通道转发到远端本机的 5901。跑完之后,在 VNC Viewer 里连127.0.0.1:1就行了。整个传输过程被 SSH 加密,而且这台机器的 5901 端口对外根本不可见,扫描器扫不到。

Windows 上用 VNC Viewer 的话,可以先开一个终端窗口执行转发命令,保持窗口不关;或者用系统自带的 SSH 客户端配合配置文件。VS Code 的 Remote-SSH 也能起到类似效果,它建立的连接本身就带端口转发能力。

5.2 只读模式和视图控制的实际用法

vncpasswd那个"仅查看密码"不是摆设。生成之后,你有两个密码:完整密码和只读密码。给别人看演示、做培训的时候给只读密码,对方能看全屏但动不了鼠标,避免误操作。

在服务端也可以用-viewonly参数直接锁死整个会话,这种模式下所有人都是只能看。反过来,如果想让某个会话只允许一个人操作,就不要加alwaysshared。

另外 VNC Viewer 的菜单里有个 "View only" 勾选项,那是客户端侧的,防的是自己手滑——比如你在看远端跑着的生产任务,怕鼠标误点。

5.3 会话权限的边界,比你想的更重要

一个经常会遇到的认知误区:以为 VNC 会话是个"超级终端"。实际上,通过 VNC 连上去得到的权限,就是启动这个会话的那个用户的权限。用vncuser起的会话,就只能操作vncuser有权限的文件,装软件照样要 sudo 密码。

这其实是好事。给临时协作的人开一个低权限账户的 VNC 会话,再配只读密码,风险可控。千万别图省事用 root 开会话——一旦密码泄露,等于把整台机器交出去。我见过有团队为了"方便运维",直接给 root 开了 VNC 并暴露在办公网,这种做法在合规检查里基本一票否决。

6. VNC Viewer 客户端的实用设置,别忽略这一半

6.1 新建连接时最容易填错的两栏

VNC Viewer 新建连接只有两栏:地址和名称。名称随你写,地址才是关键。这里再强调一次那个冒号规则:

  • 192.168.1.20:1→ 显示号 1 → 实际连 5901 端口
  • 192.168.1.20:2→ 显示号 2 → 实际连 5902 端口
  • 192.168.1.20::5901→ 双冒号 → 直接指定端口号 5901

如果你走了 SSH 转发,地址栏就填127.0.0.1:1。这时候本地转发端口如果被占用,改成127.0.0.1::15901这种形式,同时把 SSH 命令里的本地端口也换成 15901:

ssh -L 15901:127.0.0.1:5901 -N -f vncuser@192.168.1.20

"密码记住"那个选项建议按机器区分对待。自己的开发机勾上无所谓,共享的测试机我一般不勾,免得换人之后还要去清缓存。

6.2 色彩等级、压缩与缩放的实测取舍

VNC Viewer 的属性里有一组 "Picture quality" 设置,从 Low 到 Full 分几档。它的原理是:等级越低,服务端用的编码越激进、允许丢弃的颜色越多。

色彩等级大致色深带宽感受我的使用场景
Full24 位最高,局域网够用看设计稿、调颜色
Medium16 位中等,跨区域可接受日常开发、写代码
Low8 位最低,画面有块状感网络很差时应急

缩放(Scaling)这一栏,局域网内我一般关掉适配,让画面 1:1 显示;只有当客户端屏幕比服务端小时,才打开 "Scale to fit window"。注意缩放是客户端做的,服务端照样按原分辨率渲染,所以并不会省带宽,只是让你不用拖滚动条而已。

6.3 剪贴板、全屏和快捷键冲突

VNC 的剪贴板是双向同步的,但同步的不是"剪贴板历史",只是当前那一条内容。常用的几个交互:

  • 按下功能键(多数版本是 F8)会弹出连接菜单,里面有发送 Ctrl+Alt+Del、切换全屏、断开连接等选项。
  • 全屏模式在客户端侧是快捷键,但你的输入会被送回服务端,所以本地快捷键可能失效。
  • 从本地往远端粘贴大段文本时,偶尔会卡顿,原因是剪贴板内容被拆成多次小包传输。粘贴几百行的配置文件时,建议直接用 scp 传文件,别硬贴。

还有一个容易踩的:服务端和客户端的键盘布局不一致。你本地是中文键盘布局,服务端是英文布局,敲|、~、@这些符号就会错位。解决方式是在服务端把键盘布局显式设置成和你一致,XFCE 里在"键盘"设置里改,命令行可以setxkbmap us或setxkbmap cn试一下。

7. 挂久了才暴露的问题:残留、资源和配置覆盖

7.1 会话残留与僵尸 Xvnc 进程

VNC 服务端跑上几周之后,最容易出现的问题是显示号被"占着"但进程其实已经异常。表现是重启服务失败,报 "A VNC server is already running as :1"。清理步骤我整理成一个固定流程:

vncserver -kill :1 ps aux | grep -i Xvnc rm -f /tmp/.X1-lock /tmp/.X11-unix/X1 ls -la ~/.vnc/ # 检查有没有残留的 .pid 文件

如果ps里还能看到Xvnc进程但kill不掉,那就kill -9强杀。这些 .pid 和 .lock 文件都放在 /tmp 下,某些系统的 /tmp 会被定期清理,如果清理时正好在会话运行中,服务就会处于一种"进程活着但没有锁文件"的诡异状态,重启才能恢复。

7.2 内存和 CPU:桌面环境选型的长期代价

长期挂着的 VNC 会话,内存占用是绕不开的话题。我实测过几组数据(都是空桌面加一个终端,仅供参考):

桌面环境空闲内存占用VNC 下的拖动流畅度
LXDE约 150 MB很流畅
XFCE约 250 MB流畅
MATE约 350 MB流畅
GNOME约 800 MB 以上一般,需关特效

如果是小内存云主机(1GB 或 2GB),我建议直接用 XFCE 甚至 LXDE,把省下来的内存留给真正要跑的业务。另外把桌面里的屏保、自动锁屏、索引服务(tracker、baloo 这类)关掉,它们在后台定时跑,会通过 VNC 把画面刷来刷去,白白吃掉带宽。

7.3 系统升级覆盖配置,怎么提前防

最后说一个容易让人措手不及的情况。~/.vnc/xstartup和~/.vnc/config这两个文件,在某些发行版的包升级时会被覆盖成默认版本。升级之后你发现"昨天还好好的,今天连上又是灰屏",基本就是这个原因。

我的习惯是把整个~/.vnc目录纳入版本管理,或者至少做一份备份副本:

cp -r ~/.vnc ~/.vnc.bak.$(date +%Y%m%d)

系统级配置被覆盖时,包管理器通常会留下.rpmnew或.dpkg-dist后缀的文件,升级后扫一眼/etc/tigervnc/和~/.vnc/,发现这类后缀就说明配置文件被替换了,需要把改动重新合并回去。

另外那个/etc/tigervnc/vncserver.users里的用户名映射,在账户改名或删除之后不会自动清理,会留下一条指向不存在用户的记录,表现为服务启动时报 "user does not exist"。定期对一遍实际账户列表,能省掉不少莫名其妙的报错。

我个人在实际部署中的体会是,VNC 这套东西的复杂度不在安装,而在"环境差异"——同一份配置文件,在 X11 和 Wayland 下、在 RHEL 系和 Debian 系下、在有 SELinux 和没有 SELinux 的机器上,行为完全不同。把这几条外部条件先摸清楚,剩下的事情其实只有三步:监听地址调对、显示号对应无误、认证方式统一。真连不上的时候,别急着改配置,先tail一眼~/.vnc里的日志,九成的问题答案都写在那儿了。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/10/1 10:10:20

Daffy Automation via Rube MCP:基于 Composio 的 Daffy 自动化实操指南

AI 技能AI 插件人工智能工作流自动化 【免费下载链接】awesome-claude-skills A curated list of awesome Claude Skills, resources, and tools for customizing Claude AI workflows 项目地址: https://gitcode.com/GitHub_Trending/aw/awesome-claude-skills 点击…

作者头像 李华
网站建设 2026/10/1 10:08:17

Elixir 模式匹配与守卫完整参考:语义、适用位置与自定义扩展

编程语言编译器标准库语言运行时并发编程 【免费下载链接】elixir Simple from zero to scale 项目地址: https://gitcode.com/GitHub_Trending/el/elixir 点击查看 免费下载 本文是 Elixir 官方参考文档《Patterns and guards》的深度技术指南,完整覆盖…

作者头像 李华
网站建设 2026/10/1 10:08:15

MCP协议重构Excel工作流:AI智能代理与pandas协同实战

1. 项目概述:这不是写个脚本,而是给Excel装上AI神经中枢 “开发自己的第一个MCP——用 AI 智能重构 Excel 处理工作流”,这标题里藏着三个被多数人忽略的硬核事实:第一,“MCP”不是某个新出的Python库,而是…

作者头像 李华
网站建设 2026/10/1 10:04:50

服务运营|MS‘26:强化学习+OR优化外卖平台的展示排序和路径规划

编者按: 你打开外卖App,看到一排餐厅。 你可能以为,这个顺序主要由广告、销量、评分、距离,或者平台想推哪家店决定。但从运营管理的角度看,排序还有另一层含义:它会改变订单未来要走多远、能不能顺路合单、…

作者头像 李华
网站建设 2026/10/1 10:04:14

GPT-6 Astra真正吓人的,不是99.9%:AI开始自己把活干完了

2026 年 9 月 3 日凌晨,OpenAI 扔下 GPT-6 Astra,整个科技圈连夜无眠。刷屏最快的是两张图:一张是 ARC-AGI-3 测试上刺眼的 99.9%,另一张是总裁 Greg Brockman 那句掷地有声的 “Welcome to the AGI era.”(欢迎来到 A…

作者头像 李华