通过构建公司内网 croc 中继服务器提高大文件传输速度
TuBrief 편집팀
2026년 7월 19일
0
Computing/Software원본 영상을 바탕으로 AI의 도움을 받아 작성했습니다. 원본 영상이 기준입니다.
커뮤니티의 다른 글
댓글 (0)
Log in to leave a comment
아직 작성된 글이 없습니다
원본 영상을 바탕으로 AI의 도움을 받아 작성했습니다. 원본 영상이 기준입니다.
Log in to leave a comment
아직 작성된 글이 없습니다
如果您是一位 IT 从业者,因为安全规定无法使用外部云存储,每次传输大文件时都要经历繁琐的审批流程而浪费时间,那么这篇文章就是您的解决方案。croc 使用 PAKE 协议,即使是中继服务器也无法查看数据内容。本文整理了如何在不违反安全策略的前提下确保传输速度的方法。
不通过外部服务器,而是将中继服务器直接放置在 DMZ 区域,可以省去安全团队的审批流程。croc 使用 TCP 9009 端口进行控制信号交换,并使用 9010 到 9013 端口进行数据传输。固定这些端口范围即可进行防火墙策略注册。
请使用 Docker 运行容器以隔离环境。
`bash
docker network create --driver bridge croc-dmz-net
docker run -d --name croc-relay
-p 9009:9009 -p 9010-9013:9010-9013
-e CROC_PASS='비밀번호'
docker.io/schollz/croc:latest
`
为了避免在公司内部服务器上每次都输入服务器地址和密码,请在配置文件 (~/.bashrc) 中添加以下设置。
`bash
export CROC_RELAY="내부서버IP:9009"
export CROC_PASS='비밀번호'
`
这样做可以省去经过外部服务器所需的等待审批时间。
每次服务器重启时手动启动中继是不高效的。请创建一个 systemd 单元文件来保持进程始终运行。使用 nobody 账号而非 root 账号可以最大程度降低发生安全事故时的损失。
创建 /etc/systemd/system/croc-relay.service 文件。
`ini
[Unit]
Description=croc relay service
[Service]
User=nobody
ExecStart=/usr/local/bin/croc relay --ports "9009,9010,9011,9012,9013"
Restart=always
RestartSec=5
[Install]
WantedBy=multi-user.target
`
编写完成后,执行 systemctl daemon-reload 并使用 systemctl enable --now croc-relay.service 命令启动服务。即使服务器崩溃,也会在 5 秒内自动恢复。
在迁移数百 GB 的项目文件夹时,必须防止文件丢失。请使用 tar 打包并确认校验和的方式。
传输脚本示例如下:
`bash
tar -czf data.tar.gz ./project_folder
sha256sum data.tar.gz > checksum.txt
croc send data.tar.gz checksum.txt
croc recv [코드]
sha256sum -c checksum.txt && tar -xzf data.tar.gz
`
这种方法可以规避 CVE-2023-43616 等解压漏洞,并确保在传输后立即验证数据是否损坏。
当数据传输量达到 TB 级别时,默认设置会产生瓶颈。为防止会话断开,请在 /etc/sysctl.conf 中添加套接字参数。
`bash
net.ipv4.tcp_keepalive_time=60
net.core.rmem_max=134217728
`
将 TCP keepalive 周期缩短至 60 秒,可以解决状态保持型防火墙强制断开会话的问题。如果多个团队同时使用此服务器,请按照 9010-9014、9020-9024 等方式为每个团队分配端口范围并分别运行容器。只要固定好防火墙设置,各团队之间就不会产生干扰,从而实现稳定的传输。