Proyek ini digunakan untuk membuat pemetaan port TCP/UDP dari alamat publik ISP NAT ke alamat pribadi lokal. Jika semua lapisan NAT adalah kerucut penuh (NAT-1), host apa pun dapat mengakses layanan internal melalui alamat publik yang dipetakan. Dalam mode Bind, semua lalu lintas tidak melalui program ini.
中文文档
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 443Dalam mode TCP, program ini akan membuat pemetaan port TCP dalam dua langkah:
Program ini kemudian akan memanggil skrip yang ditentukan oleh argumen untuk menginformasikan alamat publik setelah pemetaan port ditetapkan. Skrip dapat memperbarui catatan DNS untuk akses eksternal.
Harap dicatat bahwa Anda perlu membuka firewall untuk mengizinkan akses ke port BIND.
Goto Network -> Firewall -> Aturan Lalu Lintas
Tambahkan aturan lalu lintas:
Jika pengikatan port gagal karena sudah digunakan, program ini akan mencoba untuk mengetahui proses layanan lokal mana yang menempati port dan mengaktifkan penggunaan kembali port dari jarak jauh. Ini berfungsi di Kernel Linux 5.6 dan yang lebih baru, dan perlu dijalankan sebagai root.
# 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 443Mirip dengan Bind Mode, program ini akan mendengarkan di port terikat, menerima koneksi yang masuk, dan meneruskannya ke alamat target.
Cara lain adalah dengan menggunakan DNAT Firewall untuk maju, dan dengan cara ini harus menggunakan mode BIND.
Goto Network -> Firewall -> Port Forwards
Tambahkan aturan port ke depan:
{public-addr} {public-port} {ip4p} {private-port} {protocol} {private-addr}
Format alamat IP4P menggunakan alamat khusus IPv6 untuk menyandikan alamat dan port IPv4 untuk distribusi yang mudah melalui catatan DNS AAAA.
2001::{port}:{ipv4-hi16}:{ipv4-lo16}
Mit