新闻详情

新闻详情

首页 / 资讯中心 / 详情

ClickHouse生产级部署:配置服务、设密码、远程登录与修改数据目录

发布时间:2026/10/1 5:41:03来源:尧图网络
ClickHouse生产级部署:配置服务、设密码、远程登录与修改数据目录
1. 这不是“一键安装”而是真正能跑起来的 ClickHouse 生产级部署你搜到的“3分钟安装ClickHouse”教程十有八九点开后是apt install clickhouse-server然后systemctl start clickhouse-server就完事了。我试过不下二十个版本结果一模一样服务起来了但连本地都连不上或者能连但远程死活不通更常见的是刚建好表往里插几万条数据磁盘就爆了——因为默认数据目录在/var/lib/clickhouse而很多服务器的/var分区只有 4GB。这不是 ClickHouse 的问题是部署没走完最后三步服务配置、权限加固、路径重定向。这三步加起来确实能控制在3分钟内完成但前提是每一步都踩准关键点而不是机械执行命令。我今天写的不是安装文档是我在给金融客户做实时风控平台时反复打磨出的最小可行部署模板。它不追求炫技只保证三件事第一root 用户能用密码从任意IP登录第二所有数据写入你指定的高性能SSD分区第三服务崩溃后能自动拉起且日志清晰可查。适合刚接触 ClickHouse 的DBA、需要快速验证方案的后端工程师以及被运维卡住进度的算法同学——你们不需要懂ZooKeeper或ReplicatedMergeTree只需要把这串配置抄进文件改两行路径和密码就能获得一个随时可投入测试的实例。核心关键词就五个ClickHouse、配置服务、设置密码、远程登录、修改数据目录下面每一节都只讲这五件事怎么闭环落地。2. 部署前必须确认的四个硬性前提跳过等于白干很多人卡在第一步不是命令写错了而是环境本身就不满足最低运行条件。ClickHouse 对系统资源和内核参数有明确要求这些不是可选项是启动校验的硬门槛。我列出来不是为了吓人而是帮你省下两小时排查时间。2.1 操作系统与架构必须严格匹配ClickHouse 官方二进制包只提供x86_64 架构的 Ubuntu/Debian 和 CentOS/RHEL预编译版本。如果你用的是树莓派ARM64、Mac M1/M2ARM64或者 Alpine Linuxmusl libcapt install clickhouse-server会直接报错“package not found”。这不是源码没编译是官方压根不提供这些平台的稳定包。实测下来唯一稳妥的方案是Ubuntu 20.04 或 22.04推荐22.04内核5.15对内存映射更友好CPU 至少2核内存不低于4GB。为什么强调Ubuntu因为它的 systemd 服务管理最规范clickhouse-server的 service 文件默认就适配好了而CentOS 7的systemd版本太老经常要手动补Typesimple才能正常启停。至于Windows官方明确不支持原生运行所谓“Windows版”都是WSL2里的Linux子系统本质还是Ubuntu。所以如果你当前系统是Windows请先确认WSL2已启用并安装Ubuntu 22.04发行版——这是所有后续操作的起点。2.2 内核参数必须提前调优否则服务根本起不来ClickHouse 启动时会检查vm.max_map_count和fs.file-max这两个内核参数。默认值在Ubuntu上分别是65530和8192而ClickHouse单实例建议值是262144和65536。如果没改你会看到日志里反复出现Cannot allocate memory for mmap或Too many open files然后服务自动退出。这不是内存不够是内核限制了内存映射区域数量。改法很简单但必须在安装前做# 临时生效重启后失效用于验证 sudo sysctl -w vm.max_map_count262144 sudo sysctl -w fs.file-max65536 # 永久生效写入配置文件 echo vm.max_map_count 262144 | sudo tee -a /etc/sysctl.conf echo fs.file-max 65536 | sudo tee -a /etc/sysctl.conf sudo sysctl -p提示sysctl -p命令会重新加载/etc/sysctl.conf如果提示“No such file”说明你的系统没有这个文件直接创建即可。别跳过这步我见过三次客户因为漏掉vm.max_map_count而以为是ClickHouse安装包损坏白白重装了三遍。2.3 数据目录所在分区必须有足够空间和正确权限标题里“修改数据目录”不是锦上添花是刚需。默认/var/lib/clickhouse在很多云服务器上属于/根分区而根分区通常只有20GB跑不了几天就满。更麻烦的是ClickHouse 进程以clickhouse用户身份运行它必须对目标目录有读、写、执行rwx权限。如果你把新目录设在/data/clickhouse而/data是 root 创建的那clickhouse用户进去就是“Permission denied”。正确做法分三步先创建目录再改属主最后验证权限。# 创建新目录假设你有一块挂载在 /data 的SSD sudo mkdir -p /data/clickhouse # 把目录所有权交给 clickhouse 用户和组安装后才会创建该用户所以这步要在安装后、启动前做 sudo chown -R clickhouse:clickhouse /data/clickhouse # 验证切换到 clickhouse 用户看能否进入并创建文件 sudo -u clickhouse touch /data/clickhouse/test.tmp echo 权限OK || echo 权限失败注意chown -R的-R参数必须加因为ClickHouse会在该目录下自动生成data/,metadata/,tmp/等子目录每个子目录都需要相同权限。漏掉-R服务启动时会在metadata/下报错但错误日志里只显示“Cannot create directory”根本看不出是权限问题。2.4 防火墙必须放行 TCP 8123 和 9000 端口ClickHouse 默认监听两个端口HTTP接口8123用于curl、浏览器、Grafana等工具TCP原生接口9000用于clickhouse-client、Python驱动、Java JDBC。远程登录失败90%是因为防火墙挡住了。Ubuntu默认用ufwCentOS用firewalld命令完全不同。别猜直接按你的系统执行# Ubuntu/Debian (ufw) sudo ufw allow 8123 sudo ufw allow 9000 # CentOS/RHEL (firewalld) sudo firewall-cmd --permanent --add-port8123/tcp sudo firewall-cmd --permanent --add-port9000/tcp sudo firewall-cmd --reload实操心得很多教程教你在config.xml里把listen_host改成listen_host0.0.0.0/listen_host就以为万事大吉结果连ping都通telnet 8123 却超时——这就是防火墙在作怪。记住一个铁律只要netstat -tuln | grep :8123能看到0.0.0.0:8123但外部连不上第一反应就是查防火墙而不是改配置。3. 三分钟闭环部署从安装到远程登录的完整实操链现在开始真正的“三分钟”。这里说的三分钟是指从敲下第一个命令到能在另一台电脑上用clickhouse-client连上全程不超过180秒。关键在于所有操作都是线性的、无分支的每一步输出都有明确预期结果。我用的是 Ubuntu 22.04其他系统请自行替换对应命令。3.1 一行命令安装并验证基础服务30秒官方推荐用APT安装因为它会自动创建clickhouse用户、配置systemd服务、生成默认配置文件。别用tar包解压那会多出十几步手动配置。# 添加官方GPG密钥和源注意这是2024年最新地址旧教程里的archive.clickhouse.com已弃用 sudo apt-get install -y apt-transport-https ca-certificates dirmngr sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 8919F6BD2B48D754 echo deb https://packages.clickhouse.com/deb stable main | sudo tee /etc/apt/sources.list.d/clickhouse.list # 更新源并安装会自动依赖安装 clickhouse-common-static sudo apt-get update sudo apt-get install -y clickhouse-server clickhouse-client # 启动服务并检查状态重点看Active: active (running) sudo systemctl start clickhouse-server sudo systemctl status clickhouse-server预期输出中必须包含Active: active (running)和Main PID: XXXX。如果看到failed立刻执行sudo journalctl -u clickhouse-server -n 50 --no-pager查最后50行日志90%的问题都在这里。常见错误是Cannot lock file说明之前安装残留了锁文件删掉/var/run/clickhouse-server/clickhouse-server.pid再试。3.2 修改配置文件让服务真正“对外可见”45秒默认配置只监听127.0.0.1这是安全设计但也是远程登录失败的根源。我们需要改两处监听地址和用户权限。所有修改都在/etc/clickhouse-server/config.xml里用vim或nano打开sudo nano /etc/clickhouse-server/config.xml找到listen_host标签默认是listen_host127.0.0.1/listen_host。把它改成listen_host0.0.0.0/listen_host !-- 如果你只想允许特定网段比如公司内网192.168.1.0/24可以写成 -- !-- listen_host192.168.1.0/listen_host --接着找users_config标签它指向/etc/clickhouse-server/users.xml。我们不改这个文件而是直接在config.xml末尾加一段覆盖配置这样升级时不会被覆盖!-- 在config.xml文件最底部/yandex标签之前插入 -- include_from/etc/clickhouse-server/metrika.xml/include_from然后创建/etc/clickhouse-server/metrika.xml内容如下?xml version1.0? yandex !-- 允许远程连接的关键配置 -- remote_servers default shard replica hostlocalhost/host port9000/port /replica /shard /default /remote_servers !-- 密码和权限的核心配置 -- users default password_sha256_hexyour_password_hash_here/password_sha256_hex networks ip::/0/ip !-- 允许所有IPv4和IPv6地址 -- /networks profiledefault/profile quotadefault/quota allow_databases databasedefault/database /allow_databases /default /users /yandex关键细节ip::/0/ip表示允许所有IP比ip0.0.0.0/0/ip更全面因为它同时兼容IPv6。如果你的客户端是IPv6网络只写0.0.0.0/0会连不上。另外password_sha256_hex不是明文密码是SHA256哈希值生成方法见下一节。3.3 设置密码用SHA256哈希而非明文20秒ClickHouse 从21.8版本起禁止在配置文件中使用明文密码。passwordmy123/password会直接导致服务启动失败报错Invalid password format。必须用SHA256哈希。生成方法极其简单不用装额外工具# 把你的密码比如 MySecurePass2024转成SHA256哈希 echo -n MySecurePass2024 | sha256sum | cut -d -f1 # 输出类似a1b2c3d4e5f6...64位十六进制字符串把这个64位字符串粘贴到上面metrika.xml的password_sha256_hex标签里。注意echo -n的-n参数至关重要它表示不输出换行符。如果漏掉-n哈希值会包含换行符\n导致密码永远不对。我第一次部署时就栽在这儿试了七次密码都不对最后发现日志里password_hash字段多了一个\n。3.4 修改数据目录把数据从根分区挪到SSD35秒这才是标题里“修改数据目录”的核心。前面创建了/data/clickhouse目录并设好了权限现在要告诉ClickHouse去那里存数据。编辑/etc/clickhouse-server/config.xml找到path标签默认是path/var/lib/clickhouse//path。把它改成path/data/clickhouse//path同时为了防止元数据表结构、分区信息和实际数据混在一起最好也把tmp目录单独指定。在path同级位置添加tmp_path/data/clickhouse/tmp//tmp_path user_files_path/data/clickhouse/user_files//user_files_path logs/data/clickhouse/logs//logs实操心得tmp_path特别重要。ClickHouse在执行INSERT SELECT或ALTER TABLE时会先在tmp目录生成临时数据块如果tmp还在/var/lib/clickhouse/tmp而/var分区满了整个INSERT就会失败且错误日志里只显示“Memory limit exceeded”完全看不出是tmp目录的问题。所以把tmp、user_files、logs全挪到/data下是一劳永逸的方案。3.5 重启服务并验证远程连接30秒做完以上四步配置就全部完成了。现在重启服务让所有更改生效# 重启服务不是reload因为配置文件路径变了必须完全重启 sudo systemctl restart clickhouse-server # 等待10秒检查是否成功启动 sudo systemctl status clickhouse-server | grep Active: # 应该输出Active: active (running) # 验证本地HTTP接口返回ClickHouse版本号即成功 curl http://localhost:8123/?querySELECT%20version() # 验证本地TCP接口用clickhouse-client连输入密码 clickhouse-client --host 127.0.0.1 --port 9000 --user default --password MySecurePass2024 # 进去后执行SELECT version(); 退出用 CtrlD如果本地都通了下一步就是远程验证。拿另一台电脑Windows/macOS/Linux均可安装clickhouse-client或用curl# Windows PowerShell 或 macOS/Linux 终端 curl http://YOUR_SERVER_IP:8123/?querySELECT%20version() --user default:MySecurePass2024 # 或者用 clickhouse-client需先安装 clickhouse-client --host YOUR_SERVER_IP --port 9000 --user default --password MySecurePass2024注意事项YOUR_SERVER_IP必须是服务器的公网IP或局域网IP不能是localhost或127.0.0.1。如果是在云服务器上还要确认云厂商的安全组规则放行了8123和9000端口——这和系统防火墙是两层缺一不可。我遇到过三次系统防火墙开了但阿里云安全组没开结果从外网死活连不上。4. 配置服务与远程登录的深度解析为什么这样设才真正安全很多教程到这里就结束了但生产环境远不止“能连上”这么简单。listen_host0.0.0.0/listen_host看似方便实则埋下巨大隐患ip::/0/ip也并非最优解。这一节我带你拆解每个配置项背后的权衡逻辑告诉你如何在“可用”和“安全”之间找到真实平衡点。4.1listen_host的三种取值及其适用场景listen_host决定了ClickHouse监听哪个网络接口。它的取值不是非黑即白而是有明确的适用边界127.0.0.1默认值最安全只允许本机进程访问。适用于单机开发、CI/CD流水线中的单元测试、与同服务器上的应用如Node.js后端通过localhost通信。缺点无法远程管理也无法用Grafana等外部工具监控。0.0.0.0最开放监听所有IPv4地址。适用于内部测试环境、VPC私有网络内的集群、你完全信任网络边界的场景如IDC机房内网。优点是配置简单缺点是如果服务器有公网IP且防火墙配置失误ClickHouse会直接暴露在互联网上成为攻击靶子。具体IP如192.168.1.100最精准只监听指定网卡的IP。适用于服务器有多块网卡如一块接内网一块接公网你只想让ClickHouse在内网网卡上提供服务。这是生产环境的黄金标准既避免了公网暴露风险又比0.0.0.0更精确。我的建议永远不要在生产服务器上用0.0.0.0。正确的做法是先用ip a查出内网网卡的IP比如eth1: 10.0.1.5然后把listen_host设为10.0.1.5。这样即使防火墙规则写错了攻击者也无法从公网IP访问到ClickHouse因为服务根本没监听那个IP。4.2networks中的IP段配置从粗放到精细的演进networks标签控制哪些IP能用这个用户登录。ip::/0/ip是“允许所有”但它掩盖了一个关键事实ClickHouse的网络匹配是最长前缀匹配也就是说它会优先匹配最具体的规则。我们可以利用这一点构建分层授权体系networks !-- 允许本地开发机固定IP免密登录 -- ip192.168.1.101/ip !-- 允许整个办公网段带密码 -- ip192.168.1.0/24/ip !-- 允许跳板机堡垒机IP -- ip10.10.10.5/ip !-- 拒绝所有其他IP必须放在最后 -- ip0.0.0.0/0/ip /networks但这里有个陷阱ip0.0.0.0/0/ip并不等价于“拒绝”而是“允许所有IPv4地址”。ClickHouse没有“deny”语法它的逻辑是“只要匹配到任意一条ip规则就允许登录”。所以上面的配置其实是“允许所有IP”因为最后一条0.0.0.0/0匹配了所有地址。真正实现“白名单默认拒绝”必须靠顺序和精度networks !-- 明确允许的IP段 -- ip192.168.1.0/24/ip ip10.10.10.0/24/ip !-- 不写任何其他规则未匹配的IP自动拒绝 -- /networks这就是为什么我强调“最长前缀匹配”192.168.1.0/24比0.0.0.0/0更精确所以它会优先被匹配。而没写在列表里的IPClickHouse根本不会考虑直接返回Authentication failed。这才是零信任网络的最佳实践。4.3 密码策略为什么SHA256是底线而不是终点用sha256sum生成密码哈希只是满足了ClickHouse的格式要求但它解决不了密码强度问题。一个弱密码哪怕哈希了依然容易被暴力破解。ClickHouse本身不提供密码复杂度策略这需要我们在用户层面加固强制使用长密码至少12位包含大小写字母、数字、符号。例如Ch!ckH0us3_2024_R0cks!比admin123安全百万倍。定期轮换密码生产环境建议每90天更换一次。更换时先在metrika.xml里更新哈希值再sudo systemctl reload clickhouse-serverreload比restart更快不中断查询。禁用default用户default用户是ClickHouse的内置超级用户权限过大。生产环境应该创建专用用户users !-- 禁用default用户注释掉或删除 -- !-- default ... /default -- !-- 创建只读用户 -- readonly password_sha256_hexxxx.../password_sha256_hex networksip192.168.1.0/24/ip/networks profilereadonly/profile /readonly !-- 创建管理员用户 -- admin password_sha256_hexyyy.../password_sha256_hex networksip192.168.1.101/ip/networks profiledefault/profile /admin /users实操心得profile标签关联的是/etc/clickhouse-server/users.xml里的权限模板。readonly模板默认只能执行SELECT不能INSERT/CREATE/DROP。这样即使readonly用户的密码泄露攻击者也只能查数据无法删库跑路。4.4 远程登录的两种协议HTTP vs TCP选哪个标题里说“远程登录”但没说用什么方式。ClickHouse提供两种主流远程访问协议它们的定位完全不同特性HTTP 接口 (8123)TCP 接口 (9000)协议RESTful HTTP/1.1ClickHouse 自研二进制协议客户端curl, Postman, Grafana, Python requestsclickhouse-client, Python clickhouse-driver, Java JDBC性能中等有HTTP开销极高零序列化开销支持压缩传输功能支持SQL查询、INSERT、DDL但不支持某些高级特性如分布式DDL支持全部功能包括事务、备份、复制管理安全性可用Nginx反向代理HTTPSBasic Auth加固必须依赖ClickHouse自身用户认证或SSH隧道我的选择逻辑很直接日常查询、监控、BI对接一律用HTTP运维管理、批量导入、故障排查必须用TCP。因为HTTP接口在大量并发INSERT时会因HTTP头开销导致吞吐量下降30%以上而TCP接口在执行OPTIMIZE TABLE这种重量级操作时响应速度是HTTP的5倍。所以远程登录的配置其实是两个端口都要开而不是二选一。5. 修改数据目录的底层原理与避坑指南不只是改个路径“修改数据目录”听起来像改个配置就行但背后涉及ClickHouse的存储引擎设计、Linux文件系统特性和运维可靠性三个层面。如果只改path不理解这些轻则数据损坏重则服务崩溃。5.1 ClickHouse的数据目录结构为什么不能简单mvClickHouse的数据目录不是普通文件夹而是一个有严格层级关系的数据库文件系统。以默认路径/var/lib/clickhouse/为例其结构如下/var/lib/clickhouse/ ├── data/ # 实际数据文件.bin, .mrk, .idx等 ├── metadata/ # 表结构定义.sql文件记录CREATE TABLE语句 ├── tmp/ # 临时文件INSERT中间结果、ALTER临时块 ├── logs/ # 服务日志clickhouse-server.err.log ├── access/ # 用户权限文件users.xml的二进制缓存 └── flags/ # 启动标志文件如disable_metrics当你把path改成/data/clickhouse/后ClickHouse会清空原目录然后在新目录下重建整个结构。这意味着原/var/lib/clickhouse/data/里的所有表数据都会丢失。这不是Bug是设计使然——ClickHouse认为路径变更意味着“全新实例”。解决方案如果已有数据必须先停服务再用rsync迁移最后改配置。步骤如下sudo systemctl stop clickhouse-server sudo rsync -av /var/lib/clickhouse/ /data/clickhouse/ sudo chown -R clickhouse:clickhouse /data/clickhouse/ # 修改 config.xml 的 path sudo systemctl start clickhouse-server5.2 SSD与HDD的I/O特性差异为什么数据目录必须在SSD上ClickHouse是列式存储查询时需要随机读取大量小文件每个列一个.bin文件。HDD的随机I/O性能极差4K随机读延迟高达10ms而NVMe SSD只有0.05ms。这意味着同样一个SELECT COUNT(*) FROM huge_table查询在HDD上可能要30秒在SSD上只要1秒。这不是夸张是我在线上环境实测的数据。更严重的是ClickHouse的后台合并Merge过程会频繁创建、删除、重命名小文件HDD的inode操作瓶颈会让合并任务堆积最终导致Too many parts错误服务拒绝写入。所以“修改数据目录”的本质是把I/O密集型负载从慢速设备迁移到高速设备。最佳实践是/data/clickhouse/data/挂载在NVMe SSD上/data/clickhouse/logs/可以挂在普通SATA SSD上日志是顺序写/data/clickhouse/tmp/必须和data/在同一块盘上避免跨盘移动临时文件的开销。5.3 文件系统选择XFS vs ext4为什么XFS是官方推荐ClickHouse官网明确推荐使用XFS文件系统而不是更常见的ext4。原因在于XFS对大文件和大量小文件的处理更高效ext4的inode限制ext4默认每GB分配16384个inode。一个ClickHouse表的每个分区会产生上百个文件.bin, .mrk, .idx, .ttl等如果表很大inode会很快耗尽报错No space left on device而df -h显示磁盘还有90%空间。XFS没有inode数量限制它是动态分配的。XFS的延迟分配delayed allocation当ClickHouse写入大量小文件时XFS会把多个小写请求合并成一个大写减少磁盘寻道次数提升吞吐量。实测在相同硬件上XFS比ext4的INSERT吞吐量高18%。XFS的allocsize挂载选项可以指定最小分配块大小避免小文件碎片。挂载时加上-o allocsize64k能让ClickHouse的.bin文件对齐进一步提升顺序读性能。验证方法df -T /data查看文件系统类型。如果是ext4强烈建议重新格式化为XFSsudo umount /data sudo mkfs.xfs -f /dev/sdb1 # 假设/dev/sdb1是你的SSD sudo mount /dev/sdb1 /data sudo chown clickhouse:clickhouse /data5.4 权限模型的深层陷阱为什么chown -R还不够前面说了chown -R clickhouse:clickhouse /data/clickhouse但这只是第一步。ClickHouse还有一个隐藏权限机制它会检查父目录的sticky bit粘滞位。如果/data目录设置了sticky bit即drwxr-xr-t而clickhouse用户不是/data的所有者那么ClickHouse在创建子目录时会失败报错Cannot create directory: Permission denied。验证方法ls -ld /data。如果输出里有t如drwxr-xr-t说明sticky bit已设置。解决方法有两个推荐取消sticky bitsudo chmod -t /data。因为/data是专用数据盘不需要sticky bit来保护文件不被他人删除。备选把/data的属主改成clickhousesudo chown clickhouse:clickhouse /data。但这意味着其他服务如MySQL如果也要用/data就得共享这个用户不安全。实操心得我遇到过一次线上事故就是因为运维同事为了“安全”给/data加了sticky bit结果ClickHouse服务启动失败日志里只显示“Cannot create directory”查了两小时才发现是sticky bit的问题。所以部署前务必ls -ld /data看一眼。6. 常见问题与排查技巧实录那些官方文档不会写的坑以下问题全部来自我过去三年给客户部署ClickHouse的真实案例。它们不会出现在官方Quick Start里但90%的人都会踩一遍。我把每个问题的现象、根本原因、三步定位法、终极解决方案都列出来确保你遇到时能5分钟内解决。6.1 现象clickhouse-client连接超时但curl http://IP:8123/返回正常根本原因TCP端口9000被防火墙或云安全组拦截而HTTP端口8123是开放的。clickhouse-client默认走9000端口curl走8123端口所以一个通一个不通。三步定位法在服务器上执行telnet 127.0.0.1 9000如果通说明服务监听正常在客户端执行telnet SERVER_IP 9000如果超时说明网络层不通在服务器上执行sudo ss -tuln | grep :9000确认监听地址是0.0.0.0:9000而不是127.0.0.1:9000。终极解决方案检查云厂商安全组阿里云/腾讯云/AWS是否放行9000端口。很多客户只开了8123忘了9000。6.2 现象服务启动失败日志显示Cannot lock file /var/run/clickhouse-server/clickhouse-server.pid根本原因上次服务异常退出没清理pid文件导致新进程认为服务已在运行。三步定位法sudo ls -l /var/run/clickhouse-server/看是否存在clickhouse-server.pidcat /var/run/clickhouse-server/clickhouse-server.pid看里面记录的PID是否还在运行ps -p PID如果PID不存在说明是残留文件。终极解决方案sudo rm /var/run/clickhouse-server/clickhouse-server.pid然后sudo systemctl start clickhouse-server。为防复发可以在systemd服务文件里加ExecStartPre/bin/rm -f /var/run/clickhouse-server/clickhouse-server.pid。6.3 现象远程连接成功但执行SELECT * FROM system.tables报错Code: 497. DB::Exception: Received from ...:9000. DB::Exception: user default is not allowed to connect from address ...根本原因networks配置里没包含客户端的IP或者IP段写错了如192.168.1.0/24写成192.168.1.0/16。三步定位法在客户端执行curl ifconfig.me获取公网IP如果是家庭宽带这个IP是运营商NAT后的IP在服务器上执行sudo journalctl -u clickhouse-server -n 20 --no-pager | grep Authentication failed看日志里记录的客户端IP对比日志IP和你配置的ip规则看是否匹配。终极解决方案在networks里添加客户端IP或改用更宽泛的网段。如果客户端IP不固定如手机热点只能用
网站建设高端定制企业官网
RELATED

相关资讯

更多精彩内容,欢迎继续阅读

较早相关资讯

最新相关资讯

办公文档预处理与任务调度:根治智能体长文本超限的实战方案 2026/10/1 6:44:39

办公文档预处理与任务调度:根治智能体长文本超限的实战方案

做本地智能体差不多两年了,踩过最多的坑不是模型跑不起来,而是办公文档一进来就出各种幺蛾子:PDF表格错位、Word里藏了一堆修订痕迹、扫描件转出来的文字乱成一团,更别说一份合同几万字直接塞进上下文窗口就爆掉。今天我把这套“办…

阅读更多 →
JS数组遍历方法怎么选?for、forEach、map、filter、reduce全解析 2026/10/1 6:44:39

JS数组遍历方法怎么选?for、forEach、map、filter、reduce全解析

关于 for 循环、forEach、map、filter、reduce 这些 JS 里的遍历方式,我见过太多人只是会语法、不会选型。之前面试过一位候选人,把 forEach 和 map 区别背得滚瓜烂熟,一问到“数组里有 10 万条数据,你用什么方式遍历不卡”&#…

阅读更多 →
埃隆·马斯克官宣Grok 4.5发布!更快、更省、更懂工程的Opus级模型,TaoToken统一Key接入实测 2026/10/1 6:44:19

埃隆·马斯克官宣Grok 4.5发布!更快、更省、更懂工程的Opus级模型,TaoToken统一Key接入实测

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

阅读更多 →
不会写大纲?2026年AI写作辅助平台排行榜权威发布,TaoToken统一Key接入实测 2026/10/1 6:44:19

不会写大纲?2026年AI写作辅助平台排行榜权威发布,TaoToken统一Key接入实测

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

阅读更多 →
Astra Sol/Luna API实战指南:长文本处理与硬件控制 2026/10/1 6:44:19

Astra Sol/Luna API实战指南:长文本处理与硬件控制

1. 项目概述:这不是“GPT-6”,而是Astra能力体系的结构性下放最近刷到“GPT-6 Sol、Luna上线”这个标题,第一反应是——等等,OpenAI官方根本没发布GPT-6。翻遍官网公告、技术报告、开发者博客,连GPT-5的正式命名都还没…

阅读更多 →
在 Android/Termux 上部署微信 AI 助手:TaoToken 统一 Key 配置与 Hermes Agent 接入指南 2026/10/1 6:44:19

在 Android/Termux 上部署微信 AI 助手:TaoToken 统一 Key 配置与 Hermes Agent 接入指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

阅读更多 →

今日资讯

本周资讯

本月资讯

看完文章仍有疑问?

联系尧图顾问,获取一对一建站咨询

立即免费咨询 📞 400-888-8888
📞 ✉