بسم الله الرحمن الرحيم, بدأت في البرنامج وسميته hafnium وهو معدن فلزي اكثر المعادن استقرار وأعلى تحمل للحرارة لدرجة يستخدم في المفاعلات النووية
الاسم لسطر الأوامر يختصر إلى hf وهو اختصار للعنصر في الجدول الذري
لماذا hafnium؟ الاسم يعطي الاستقرار للاداه وتحمل الضغط
تخطيط المشروع كتالي
فكرة المشروع هي فتح منفذ لجهازك المحلي في خادم أخر دون المرور بجدار حماية أو NAT (الفكرة الساسية هي تخطي CGNAT)
امر hf لسطر الاوامر
يتبعه الأوامر التالية
hf genkey
يعطيك مفتاح public وprivate والعميل سيحتاج مفتاح public فقط علشان يتصل بالخادم
في الخادم تتاح الاوامر التالية
hf allow <port> [tcp/udp]
السماح بفتح مفذ ميعن (افتراضيا جميعها مسموح فتحها الا اذا حدد منافذ معينة)
hf disallow <port> [tcp/udp]
يعطل امكانية الحصول على منفذ من جهة العميل
hf list [peers/ports]
يعرض المتصلين او المنافذ المفتوحة
hf disconnect [peer_public_key]
يفصل عميل
hf config [get/set] [key] [value]
يعدل اعدادات معينة مثال
$ hf config set listen_port 80
$ hf config get listen_port
80
في جهة العميل
hf connect <ip_address>:<port> <public_key>
يتصل بالخادم ويولد مفتاح public وprivate للعميل
hf open <port> [tcp/udp]
يفتح منفذ في جهاز العميل للخادم
hf close <port> [tcp/udp]
يغلق منفذ
hf list [peers/port]
يعرض المنافذ والمتصلين
hf disconnect
يفصل الاتصال بالخادم
المشروع موجود في Github وساستخدم تخيص GPL او AGPL