Dieses Projekt wird verwendet, um eine TCP/UDP -Port -Zuordnung von einer ISP -NAT -öffentlichen Adresse an die lokale private Adresse zu erstellen. Wenn alle NAT-Schichten mit vollem Zapfen (NAT-1) sind, kann jeder Host über die zugeordnete öffentliche Adresse auf interne Dienste zugreifen. Im Bindungsmodus durchläuft der gesamte Verkehr dieses Programm nicht.
中文文档
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 443Im TCP -Modus wird in diesem Programm eine TCP -Port -Zuordnung in zwei Schritten festgelegt:
In diesem Programm wird dann das vom Argument angegebene Skript aufgerufen, um die öffentliche Adresse nach der Festlegung der Portzuordnung zu informieren. Das Skript kann den DNS -Datensatz für den externen Zugriff aktualisieren.
Bitte beachten Sie, dass Sie die Firewall öffnen müssen, um den Zugriff auf den Bind -Port zu ermöglichen.
GOTO -Netzwerk -> Firewall -> Verkehrsregeln
Fügen Sie eine Verkehrsregel hinzu:
Wenn die Portbindung fehlschlägt, weil sie bereits verwendet wird, versucht dieses Programm herauszufinden, welcher lokale Serviceprozess den Port einnimmt und die Port -Wiederverwendung aus der Ferne aktiviert. Dies funktioniert in Linux Kernel 5.6 und später und muss als Root ausgeführt werden.
# 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Ähnlich wie beim Bind -Modus wird dieses Programm auf den gebundenen Port anhören, eingehende Verbindungen akzeptiert und sie an die Zieladresse weiterleiten.
Eine andere Möglichkeit besteht darin, den DNAT von Firewall zu verwenden, um weiterzuleiten, und auf diese Weise sollte der Bindmodus verwendet werden.
GOTO -Netzwerk -> Firewall -> Portwarts
Fügen Sie eine Portwartregel hinzu:
{public-addr} {public-port} {ip4p} {private-port} {protocol} {private-addr}
Das IP4P -Adressformat verwendet IPv6 -Sonderadressen, um IPv4 -Adressen und -Ports für eine einfache Verteilung über DNS AAAA -Datensätze zu codieren.
2001::{port}:{ipv4-hi16}:{ipv4-lo16}
MIT