يتم استخدام هذا المشروع لإنشاء رسم خرائط لمنفذ TCP/UDP من عنوان عام ISP NAT إلى العنوان الخاص المحلي. إذا كانت جميع طبقات NAT هي المخاريط الكاملة (NAT-1) ، يمكن لأي مضيف الوصول إلى الخدمات الداخلية من خلال العنوان العام المعين. في وضع الربط ، لا تمر جميع حركة المرور من خلال هذا البرنامج.
中文文档
git clone --recursive https://github.com/heiher/natmap.git
cd natmap
make
# statically link
make ENABLE_STATIC=1
# cross compile
make CROSS_PREFIX= ${cross-toolchain} /bin/x86_64-unknown-linux-
# android
mkdir natmap
cd natmap
git clone --recursive https://github.com/heiher/natmap.git jni
ndk-build Usage:
natmap [options]
Options:
-4 use IPv4
-6 use IPv6
-u UDP mode
-d run as daemon
-i <interface> network interface or IP address
-k <interval> seconds between each keep-alive
-s <addr>[:port] domain name or address of STUN server
-h <addr>[:port] domain name or address of HTTP server
-e <path> script path for notify mapped address
-f <mark> fwmark value (hex: 0x1, dec: 1, oct: 01)
Bind options:
-b <port>[-port] port number range for binding
- <0>: random allocation
- <port>: specified
- <port>-<port>: sequential allocation within the range
Forward options:
-T <timeout> port forwarding timeout in seconds
-t <address> domain name or address of forward target
-p <port> port number of forward target (0: use public port)
# TCP
natmap -s turn.cloudflare.com -h example.com -b 80
# UDP
natmap -u -s turn.cloudflare.com -b 443في وضع TCP ، سيقوم هذا البرنامج بإنشاء تعيين منفذ TCP في خطوتين:
سيقوم هذا البرنامج بعد ذلك باستدعاء البرنامج النصي المحدد بواسطة الوسيطة لإبلاغ العنوان العام بعد إنشاء رسم خرائط المنفذ. يمكن للنص تحديث سجل DNS للوصول الخارجي.
يرجى ملاحظة أنك تحتاج إلى فتح جدار الحماية للسماح بالوصول إلى منفذ الربط.
شبكة GOTO -> جدار الحماية -> قواعد المرور
أضف قاعدة حركة المرور:
إذا فشل ربط المنفذ لأنه قيد الاستخدام بالفعل ، فسيحاول هذا البرنامج معرفة أي عملية خدمة محلية تحتل المنفذ وتمكين إعادة استخدام المنفذ عن بعد. هذا يعمل في Linux kernel 5.6 وبعد ذلك ، ويحتاج إلى تشغيل الجذر.
# TCP
natmap -s turn.cloudflare.com -h example.com -b 80 -t 10.0.0.2 -p 80
# UDP
natmap -u -s turn.cloudflare.com -b 443 -t 10.0.0.2 -p 443على غرار وضع BIND ، سيستمع هذا البرنامج على المنفذ المربوطة ، ويقبل الاتصالات الواردة ، وإعادة توجيهها إلى العنوان المستهدف.
هناك طريقة أخرى تتمثل في استخدام DNAT لجدار الحماية لإعادة توجيهها ، وبهذه الطريقة يجب أن تستخدم وضع الربط.
شبكة GOTO -> جدار الحماية -> المنفذ إلى الأمام
أضف قاعدة الأمام المنفذ:
{public-addr} {public-port} {ip4p} {private-port} {protocol} {private-addr}
يستخدم تنسيق عنوان IP4P عناوين IPv6 الخاصة لتشفير عناوين IPv4 والمنافذ لسهولة التوزيع من خلال سجلات DNS AAAA.
2001::{port}:{ipv4-hi16}:{ipv4-lo16}
معهد ماساتشوستس للتكنولوجيا