Meningkatkan Kecepatan Transfer Data Berukuran Besar dengan Membangun Server Relay croc di Jaringan Internal
Jika Anda seorang praktisi IT yang membuang-buang waktu menjalani prosedur persetujuan setiap kali perlu memindahkan data berukuran besar karena aturan keamanan yang melarang penggunaan penyimpanan cloud eksternal, artikel ini adalah solusinya. croc menggunakan protokol PAKE sehingga server perantara pun tidak dapat melihat isi data Anda. Berikut adalah rangkuman cara untuk mendapatkan kecepatan transfer tinggi tanpa melanggar kebijakan keamanan.
1. Menghilangkan Antrean Persetujuan Firewall dengan Server Relay Khusus
Dengan menempatkan server relay langsung di area DMZ tanpa melalui server eksternal, Anda dapat melewati prosedur persetujuan tim keamanan. croc mengirim dan menerima sinyal kontrol melalui port TCP 9009, serta menggunakan port 9010 hingga 9013 untuk transmisi data. Dengan mengunci rentang port ini, pendaftaran kebijakan firewall menjadi dimungkinkan.
Jalankan container dengan Docker untuk mengisolasi lingkungan.
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
Agar Anda tidak perlu memasukkan alamat server dan kata sandi setiap kali di server internal, masukkan pengaturan berikut ke dalam file profil (~/.bashrc).
bash export CROC_RELAY="내부서버IP:9009" export CROC_PASS='비밀번호'
Dengan cara ini, waktu tunggu persetujuan transfer data akan hilang karena tidak melalui server eksternal.
2. Menjalankan Server Relay Secara Otomatis dengan systemd
Tidak efisien jika harus menjalankan relay secara manual setiap kali server melakukan reboot. Buat file unit systemd untuk menjalankan proses secara terus-menerus. Menggunakan akun nobody alih-alih root dapat meminimalkan kerusakan jika terjadi insiden keamanan.
Buat file /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
`
Setelah menulisnya, jalankan systemctl daemon-reload dan aktifkan layanan dengan perintah systemctl enable --now croc-relay.service. Jika server mati, layanan akan pulih secara otomatis dalam waktu 5 detik.
3. Menjamin Integritas File Besar dan Tips Transfer
Saat memindahkan folder proyek berukuran ratusan gigabyte, Anda harus mencegah kehilangan file. Gunakan cara menggabungkan file dengan tar dan memverifikasi checksum.
Berikut adalah contoh skrip transfer.
`bash
Sisi pengirim
tar -czf data.tar.gz ./project_folder
sha256sum data.tar.gz > checksum.txt
croc send data.tar.gz checksum.txt
Sisi penerima
croc recv [코드]
sha256sum -c checksum.txt && tar -xzf data.tar.gz
`
Metode ini menghindari kerentanan dekompresi seperti CVE-2023-43616, sekaligus memastikan data tidak rusak segera setelah transfer.
4. Penyesuaian Pengaturan Jaringan untuk Menjaga Kecepatan
Jika volume transfer data mencapai skala terabyte, pengaturan standar akan mengalami bottleneck. Tambahkan parameter soket ke /etc/sysctl.conf agar sesi tidak terputus.
bash net.ipv4.tcp_keepalive_time=60 net.core.rmem_max=134217728
Memperpendek siklus TCP keepalive menjadi 60 detik dapat mengatasi masalah di mana firewall berbasis status secara paksa memutus sesi. Jika beberapa tim menggunakan server ini secara bersamaan, alokasikan rentang port untuk setiap tim, misalnya 9010-9014, 9020-9024, dan jalankan container secara terpisah. Dengan mengunci pengaturan firewall, transfer data yang stabil dapat dilakukan tanpa gangguan antar tim.