Terowongan TCP modern dan sederhana dalam karat yang memperlihatkan port lokal ke server jarak jauh, melewati firewall koneksi NAT standar. Hanya itu yang dilakukan: tidak lebih, dan tidak kurang.
# Instalasi (membutuhkan karat, lihat alternatif di bawah ini) Kargo Instal Bore-Cli# di mesin lokal Anda Local 8000 ---to bore.pub
Ini akan mengekspos port lokal Anda di localhost:8000
ke internet publik di bore.pub:<PORT>
, di mana nomor port ditetapkan secara acak.
Mirip dengan Localtunnel dan Ngrok, kecuali bore
dimaksudkan untuk menjadi alat yang sangat efisien dan tidak teropini untuk meneruskan lalu lintas TCP yang mudah dipasang dan mudah di-host sendiri, tanpa embel-embel terpasang.
( bore
total sekitar 400 baris kode karat yang aman dan async dan sepele untuk diatur - cukup jalankan satu biner tunggal untuk klien dan server.)
Jika Anda menggunakan macOS, bore
dikemas sebagai formula inti homebrew.
Pembuatan bir menginstal bore-cli
Kalau tidak, cara termudah untuk memasang bor adalah dari binari prebuilt. Ini tersedia di halaman rilis untuk macOS, windows, dan linux. Cukup unzip file yang sesuai untuk platform Anda dan pindahkan bore
yang dapat dieksekusi ke folder di jalur Anda.
Anda juga dapat membangun bore
dari sumber menggunakan kargo, manajer paket karat. Perintah ini menginstal bore
Binary di jalur yang dapat diakses pengguna.
Kargo Pasang bore-cli
Kami juga menerbitkan gambar Docker versi untuk setiap rilis. Gambar ini dibangun untuk arsitektur AMD 64-bit. Mereka ditandai dengan versi spesifik dan memungkinkan Anda untuk menjalankan biner bore
yang terkait secara statis dari wadah "gores" minimal.
Docker run -it --inin -in -rm - -network host Ekzhang/bore <Args>
Bagian ini menjelaskan penggunaan terperinci untuk perintah bore
Cli.
Anda dapat meneruskan port pada mesin lokal Anda dengan menggunakan perintah bore local
. Ini mengambil argumen posisi, port lokal untuk diteruskan, serta opsi wajib --to
, yang menentukan alamat server jarak jauh.
Bore Local 5000 -To Bore.pub
Anda secara opsional dapat melewati opsi --port
untuk memilih port tertentu pada remote untuk diekspos, meskipun perintah akan gagal jika port ini tidak tersedia. Juga, melewati --local-host
memungkinkan Anda untuk mengekspos host yang berbeda pada jaringan area lokal Anda selain alamat loopback localhost
.
Opsi lengkap ditunjukkan di bawah ini.
Memulai proxy lokal ke server jarak jauh Penggunaan: Bore Local [Opsi] --- <to> <cocal_port> Argumen: <cocal_port> Port lokal untuk mengekspos Opsi: -l,--local-host <Host> Host lokal untuk mengekspos [default: localhost] -t, --To <to> Alamat server jarak jauh untuk mengekspos port lokal ke [env: bore_server =] -p, --port <port> Port opsional di server jarak jauh untuk memilih [default: 0] -s, - -Secret <secret> Rahasia opsional untuk otentikasi [env: bore_secret] -H, --Help Informasi Bantuan Cetak
Seperti yang disebutkan dalam instruksi startup, ada contoh publik dari server bore
yang berjalan di bore.pub
. Namun, jika Anda ingin menjadi bore
rumah sendiri di jaringan Anda sendiri, Anda dapat melakukannya dengan perintah berikut:
Bore Server
Hanya itu yang diperlukan! Setelah server mulai berjalan di alamat yang diberikan, Anda kemudian dapat memperbarui perintah bore local
dengan opsi --to <ADDRESS>
untuk meneruskan port lokal ke server jarak jauh ini.
Opsi lengkap untuk perintah bore server
ditunjukkan di bawah ini.
Menjalankan server proxy jarak jauh Penggunaan: Bore Server [Opsi] Opsi: --min-port <min_port> Nomor port TCP minimum yang diterima [default: 1024, env: bore_min_port] --Max-port <ax_port> Nomor port TCP maksimum yang diterima [default: 65535, env: bore_max_port] -s, - -Secret <secret> Rahasia opsional untuk otentikasi [env: bore_secret] -H, -HELP Cetak Informasi Bantuan
Ada port kontrol implisit di 7835
, digunakan untuk membuat koneksi baru berdasarkan permintaan. Pada inisialisasi, klien mengirim pesan "halo" ke server di port kontrol TCP, meminta untuk proxy port jarak jauh yang dipilih. Server kemudian merespons dengan pengakuan dan mulai mendengarkan koneksi TCP eksternal.
Setiap kali server mendapatkan koneksi pada port jarak jauh, ia menghasilkan UUID yang aman untuk koneksi itu dan mengirimkannya kembali ke klien. Klien kemudian membuka aliran TCP terpisah ke server dan mengirim pesan "terima" yang berisi UUID pada aliran itu. Server kemudian memproksikan dua koneksi antara satu sama lain.
Untuk alasan kebenaran dan untuk menghindari kebocoran memori, koneksi yang masuk hanya disimpan oleh server hingga 10 detik sebelum dibuang jika klien tidak menerimanya.
Pada penyebaran kustom bore server
, Anda secara opsional dapat memerlukan rahasia untuk mencegah server digunakan oleh orang lain. Protokol mengharuskan klien untuk memverifikasi kepemilikan rahasia pada setiap koneksi TCP dengan menjawab tantangan acak dalam bentuk kode HMAC. (Rahasia ini hanya digunakan untuk jabat tangan awal, dan tidak ada lalu lintas lebih lanjut yang dienkripsi secara default.)
# di server serverbore -sekretaris my_secret_string# di clientbore local <cocal_port> ---t <to> --secret my_secret_string
Jika sebuah rahasia tidak ada dalam argumen, bore
juga akan mencoba membaca dari variabel lingkungan BORE_SECRET
.
Dibuat oleh Eric Zhang (@Ekzhang1). Berlisensi di bawah lisensi MIT.
Penulis ingin mengucapkan terima kasih kepada para kontributor dan pengelola proyek Tokio karena memungkinkan untuk menulis layanan jaringan yang ergonomis dan efisien di Rust.