rtun adalah alat untuk mengekspos port TCP dan UDP ke Internet melalui server gateway publik. Anda dapat mengekspos server ssh dan mosh pada mesin di belakang firewall dan NAT.
Biner yang dikompilasi tersedia di halaman rilis. Untuk membuat repositori Anda sendiri, kloning repositori dan buat:
$ git clone https://github.com/snsinfu/reverse-tunnel
$ cd reverse-tunnel
$ makeAtau,
$ go build -o rtun github.com/snsinfu/reverse-tunnel/agent/cmd
$ go build -o rtun-server github.com/snsinfu/reverse-tunnel/server/cmd Gambar Docker tersedia:
Penggunaan cepat:
$ docker run -it
-p 8080:8080 -p 9000:9000
-e RTUN_AGENT="8080/tcp @ samplebfeeb1356a458eabef49e7e7"
snsinfu/rtun-server
$ docker run -it --network host
-e RTUN_GATEWAY="ws://0.1.2.3:9000"
-e RTUN_KEY="samplebfeeb1356a458eabef49e7e7"
-e RTUN_FORWARD="8080/tcp:localhost:8080"
snsinfu/rtunLihat readme gambar buruh pelabuhan.
Buat file konfigurasi bernama rtun-server.yml :
# Gateway server binds to this address to communicate with agents.
control_address : 0.0.0.0:9000
# List of authorized agents follows.
agents :
- auth_key : a79a4c3ae4ecd33b7c078631d3424137ff332d7897ecd6e9ddee28df138a0064
ports : [10022/tcp, 60000/udp] Anda mungkin ingin membuat auth_key dengan openssl rand -hex 32 . Agen diidentifikasi berdasarkan kuncinya dan agen hanya dapat menggunakan port yang masuk daftar putih yang tercantum dalam file konfigurasi.
Kemudian, mulai server gateway:
$ ./rtun-serverSekarang agen dapat terhubung ke server gateway dan memulai penerowongan terbalik. Server dan agen menggunakan WebSocket untuk komunikasi, sehingga server gateway dapat ditempatkan di belakang proksi terbalik HTTPS seperti caddy. Dengan cara ini terowongan dapat diamankan dengan TLS.
rtun-server mendukung akuisisi otomatis dan pembaruan sertifikat TLS. Tetapkan alamat kontrol ke :443 dan domain ke nama domain server gateway publik.
control_address: :443
lets_encrypt:
domain: rtun.example.com
Pengguna non-root tidak dapat menggunakan port 443 secara default. Anda mungkin ingin mengizinkan rtun-server mengikat ke port istimewa menggunakan setcap di Linux:
sudo setcap cap_net_bind_service=+ep rtun-server
Buat file konfigurasi bernama rtun.yml :
# Specify the gateway server.
gateway_url : ws://the-gateway-server.example.com:9000
# A key registered in the gateway server configuration file.
auth_key : a79a4c3ae4ecd33b7c078631d3424137ff332d7897ecd6e9ddee28df138a0064
forwards :
# Forward 10022/tcp on the gateway server to localhost:22 (tcp)
- port : 10022/tcp
destination : 127.0.0.1:22
# Forward 60000/udp on the gateway server to localhost:60000 (udp)
- port : 60000/udp
destination : 127.0.0.1:60000Dan jalankan agen:
$ ./rtun Catatan: Saat Anda menggunakan TLS di server, URL gateway harus dimulai dengan wss:// alih-alih ws:// . Dalam hal ini, nomor port kemungkinan besar adalah nomor default:
gateway_url : wss://the-gateway-server.example.com Lisensi MIT.