Forwardowanie portów za pomocą aplikacji

0

Witam, przeszukałem forum ale nic nie znalazłem.
Chce z poziomu aplikacji w Delphi ustawić na routerze forwardowanie portów. Wiem że to jest możliwe bo niektóre programy to robią (Skype, Torrenty, Teredo, ProRAT). Czy żeby to zrobić trzeba się logować do routera czy da się to zrobić innym sposobem?

0

UPnP

A Skype, jeżeli oba komputery są za NATem, stosuje metodę "udp hole punching".
"Pokonać" NAT można jeszcze za pomocą Teredo.

0

@oho:załącznik
@Rev:Przykład?

UDP hole punching is a commonly used technique employed in network address translator (NAT) applications for maintaining User Datagram Protocol (UDP) packet streams that traverse the NAT. NAT traversal techniques are typically required for client-to-client networking applications on the Internet involving hosts connected in private networks, especially in peer-to-peer and Voice over Internet Protocol (VoIP) deployments.

Jak działa takie połączenie klient-klient? :P

0

First, both machines open a connection to a non-firewalled server. The server takes note of the source port (which may have been altered by the firewall) and sends this information to the other party to give it an idea of what port future connections might be coming from.

Client A then attempts to connect to a range of ports on client B’s machine. All these requests will fail at client B’s firewall, of course. However, in the process a side effect has occurred. Client A has told its own firewall to allow traffic from all of client B’s scanned ports! Now, when client B attempts to connect to client A, assuming its outgoing port was previously scanned (which it likely will be), the request will get through to client A’s machine.

Przy użyciu Teredo nie musisz mieć nawet serwera pośredniczącego, jego rolę pełni serwer transportu, np. Microsoftowy.

Oczywiście są pewne przypadki (konkretne konfiguracje routerów), w których udp hole punching po prostu nie zadziała. Jeżeli nie mamy możliwości zmiany tej konfiguracji to trzeba użyć serwera pośredniczącego jako zupełnego proxy.

0

Bez serwera nie da rady?
Tzn. nie mogę określić żeby A skanował porty X-Y na B?
Np. A skanuje porty 500-600 na B, czy wtedy B może się połączyć do A?

A zresztą nie rozumiem, jak można zrobić połączenie klient-klient?

Celem jest uruchomienie serwera za takim routerem i podłączanie się do niego klientem, ale żeby serwer sam otwierał port na tym "globalnym" IP.

1 użytkowników online, w tym zalogowanych: 0, gości: 1