首页/网络/常用端口速查/3632 distcc 分布式编译

3632 distcc 分布式编译

distcc 的默认端口:把 C/C++ 编译任务分发到多台机器加速构建,内网构建农场的老牌工具。

常用端口速查网络更新于 2026-10-13

distcc 与 3632 端口

distcc 是一套分布式 C/C++ 编译工具:本地只做预处理,把展开后的源码分发给多台运行 distccd 的机器并行编译,再把目标文件取回本地链接。3632 是 distccd 的监听端口,IANA 登记名为 distributed compiler,2002 年 11 月由 Martin Pool 注册,属厂商自用的常规端口而非 RFC 标准。它只解决编译阶段,不负责调度与依赖管理,通常配合 make -j 与内网构建农场使用。

基本信息

服务distccd(distcc 守护进程)
端口/协议TCP 3632(IANA 登记,可自定义)
分发内容预处理后的 .i/.ii 源码加编译选项
服务端关键参数--daemon --allow <网段> --listen <地址> --jobs <并发>
客户端环境变量DISTCC_HOSTS=host/n,n 为该机可用槽位数
适用平台Linux/Unix,两端编译器版本须一致
权限要求客户端普通用户;distccd 可降权运行
安全等级仅构建网段,禁止公网暴露

典型使用场景

  • 大型 C/C++ 项目编译加速:本机核数不足时把编译分散到构建农场
  • 嵌入式交叉编译:为每个目标架构准备一套 distccd 与对应工具链
  • CI 构建机扩容:用多台普通机器堆出可观的并发编译能力
  • 老项目增量构建:已有 Makefile 时改动成本最低的加速方案
  • 团队共享编译资源:统一工具链镜像后多人共用同一编译池

服务端与客户端配置

服务端与客户端配置
distccd --daemon --allow 10.0.0.0/8 --listen 0.0.0.0 --jobs 8  # 只允许内网构建网段接入
export DISTCC_HOSTS='localhost/4 10.0.1.11/8 10.0.1.12/8'    # 本地 4 槽加远端各 8 槽
make -j32 CC='distcc gcc' CXX='distcc g++'                    # 用 distcc 包装编译器
DISTCC_VERBOSE=1 make -j8                                     # 出问题时打印分发细节
distccmon-text 2                                              # 实时观察任务落在哪台机器
ss -lntp | grep 3632                                          # 核对监听地址与进程
echo 'int main(void){return 0;}' > t.c && distcc gcc -c t.c   # 最小自测,确认包装链正常

常见现象与处置

现象可能原因处置方向
编译全部回退本地远端 distccd 未启动或 DISTCC_HOSTS 写错先看本机监听与槽位解析是否正确
连接被拒防火墙未放行 3632 或被 --allow 拒绝按网段放行并核对客户端源地址
远端报头文件缺失两端工具链或头文件版本不一致统一镜像与编译器版本
结果异常但不报错编译器补丁级别不同导致优化差异锁定 gcc/clang 版本与补丁
各构建机负载不均槽位数与 CPU 核数不匹配按核数调整 host/n 中的 n
distcc 只加速编译不加速链接,链接阶段仍在本地串行;若瓶颈在链接、模板展开或生成头文件,收益会明显低于预期,先做一次构建耗时剖析再决定是否上分布式编译。
distccd 会以自身运行用户的权限执行编译器调用,早期版本在来源未限制时曾被利用执行任意命令。务必用 --allow 限定网段、避免以 root 运行,并让防火墙默认拒绝 3632 入站。

易错点

  • 图省事写 --allow 0.0.0.0/0:任何能连通 3632 的主机都能让 distccd 代跑编译,等于交出一个命令执行入口
  • 两端编译器版本不一致:报错信息会把排查方向带偏,甚至产出带错的目标文件,必须用同一工具链镜像
  • 把 distcc 当万能加速:链接密集、模板密集与大量生成头文件的项目收益很低,投入产出比可能为负
  • distccd 以 root 运行:编译链路上的任何缺陷都会被放大成 root 权限风险,应创建专用低权用户

数据来源与参考

  • distcc 官方文档(默认端口 3632)
  • IANA 端口注册表(distcc)

相关工具

​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌