rtun هي أداة لعرض منافذ TCP وUDP على الإنترنت عبر خادم البوابة العامة. يمكنك كشف خادم ssh وmosh على جهاز خلف جدار الحماية وNAT.
الثنائيات المترجمة متوفرة في صفحة الإصدار. لإنشاء مستودعاتك الخاصة، قم باستنساخ المستودع وقم بما يلي:
$ git clone https://github.com/snsinfu/reverse-tunnel
$ cd reverse-tunnel
$ make
أو،
$ go build -o rtun github.com/snsinfu/reverse-tunnel/agent/cmd
$ go build -o rtun-server github.com/snsinfu/reverse-tunnel/server/cmd
صور عامل ميناء متاحة:
الاستخدام السريع:
$ 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/rtun
انظر الملف التمهيدي لصورة عامل الإرساء.
قم بإنشاء ملف تكوين باسم 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]
قد ترغب في إنشاء auth_key
باستخدام openssl rand -hex 32
. يتم تحديد الوكلاء من خلال مفاتيحهم ولا يجوز للوكلاء سوى استخدام المنافذ المدرجة في القائمة البيضاء المدرجة في ملف التكوين.
ثم قم بتشغيل خادم البوابة:
$ ./rtun-server
يمكن الآن للوكلاء الاتصال بخادم البوابة وبدء الاتصال النفقي العكسي. يستخدم الخادم والوكيل WebSocket للاتصال، لذلك يمكن وضع خادم البوابة خلف وكيل HTTPS العكسي مثل العلبة. بهذه الطريقة يمكن تأمين النفق بواسطة TLS.
يدعم rtun-server
الحصول على شهادة TLS وتجديدها تلقائيًا. قم بتعيين عنوان التحكم على :443
domain
لاسم المجال لخادم البوابة العامة.
control_address: :443
lets_encrypt:
domain: rtun.example.com
لا يمكن للمستخدم غير الجذر استخدام المنفذ 443 افتراضيًا. ربما ترغب في السماح rtun-server
بالربط بالمنفذ المميز باستخدام setcap
على Linux:
sudo setcap cap_net_bind_service=+ep rtun-server
قم بإنشاء ملف تكوين باسم 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:60000
وتشغيل الوكيل:
$ ./rtun
ملاحظة: عند استخدام TLS على الخادم، يجب أن يبدأ عنوان URL للبوابة بـ wss://
بدلاً من ws://
. في هذه الحالة، من المرجح أن يكون رقم المنفذ هو الرقم الافتراضي:
gateway_url : wss://the-gateway-server.example.com
رخصة معهد ماساتشوستس للتكنولوجيا.