README | 中文文档
!!! Hinweis: mnh
befindet sich derzeit in der Entwicklung, die APIs
und command line options
sind möglicherweise nicht abwärtskompatibel!!!
mnh
ist ein Tool, das die Offenlegung eines Ports hinter NAT ermöglicht.
mnh
erstellt ein ip:port
Paar für Ihren NAT-Server, das für den öffentlichen Zugriff verwendet werden kann.
--------------------------------
| Help Server (NOT behind NAT) | <------(query for ip:port pair)-------------
-------------------------------- |
^ |
| |
| ---------(Use some way to send ip:port pair)------------- |
| | | or |
| | ↓ |
------------------------ ~~~~~~~~~~~~ ----------
| Service (behind NAT) | <-------- { Internet } <---------- | Guests |
------------------------ ~~~~~~~~~~~~ ----------
Der Netzwerktyp Ihres Servers sollte Full-Cone-NAT sein.
Wenn Sie nicht wissen, was es bedeutet, machen Sie sich keine Sorgen, fahren Sie einfach fort.
Wenn sich Ihr Server hinter einer Firewall oder einem Haushaltsrouter befindet, müssen Sie wahrscheinlich UPnP aktivieren oder eine Portweiterleitung zu Ihrem Server auf Ihrem Router durchführen, da dieser möglicherweise den gesamten eingehenden Datenverkehr blockiert.
Bitte überprüfen Sie mnh_server.
Derzeit wird nur
mnhv1
-Protokoll unterstützt. Weitere Protokolle wie STUN werden in Zukunft hinzugefügt.
Usage:
mnh {tcp|udp} --server <server> [flags]
Flags:
-s, --server string Help server address(Example: "server.com", "server.com:6641")
If only specify hostname, it will try SRV resolve.
If SRV failed, it will use default port(6641).
-i, --id string A unique id to identify your machine
-m, --mode string Run mode.
TCP support: demoWeb proxy (default "demoWeb")
UDP support: demoEcho proxy (default "demoEcho")
-p, --port int The local hole port which incoming traffics access to
-t, --service string Target service address. Only need in proxy mode (default "127.0.0.1:80")
-r, --routerForward A comma-split list which will be used sequentially to request router to do port forwarding (default: "upnp,notice")
upnp: UPnP protocol
notice: Will notice you to do port forwarding manually
none: Do port forwarding manually
-x, --event-hook Execute command when event triggered:
escape:
%%: percent sign
%e: Event: connecting fail success disconnected
%m: Error message
%p: Local hole port
%a: Hole addr
-h, --help help for mnh
Beispiel:
Führen Sie zum Testen einen Webserver aus:
./mnh tcp --server server.com --id test
Führen Sie zum Testen einen UDP-Echo-Server aus:
./mnh udp --server server.com --id udpEcho --mode demoEcho
Machen Sie einen lokalen Webserver verfügbar:
./mnh tcp --server server.com --id web --mode proxy --service 127.0.0.1:80
mnh
wird versuchen, den Router aufzufordern, standardmäßig eine Portweiterleitung mit upnp
-Protokoll durchzuführen.
Wenn dies fehlschlägt, wird ein notice
angezeigt.
Sie können diese beiden Funktionen durch set --routerForward none
deaktivieren. Stellen Sie dabei sicher, dass Sie die Portweiterleitung korrekt eingerichtet haben. (Siehe Voranfragen)
./mnh tcp --server server.com --id web --mode proxy --service 127.0.0.1:80 --port 8888 --routerForward none