Udostępnij za pośrednictwem


Aktywowanie repeatera

Aby aktywować połączenie powtarzania, zazwyczaj najpierw uruchom serwer, a następnie uruchom repeater, a następnie uruchom klienta.

Można również najpierw uruchomić repeater, a następnie serwer. Jeśli jednak używasz parametru clicon do nawiązania połączenia odwrotnego, klient musi być zawsze uruchomiony jako ostatni.

Ważny

Podczas korzystania z debugowania zdalnego należy wziąć pod uwagę ważne zagadnienia dotyczące zabezpieczeń. Aby uzyskać więcej informacji, w tym informacje na temat włączania trybu bezpiecznego, zobacz Zabezpieczenia podczas debugowania zdalnego i zagadnienia dotyczące zabezpieczeń dla narzędzi debugowania systemu Windows.

Krok pierwszy: uruchamianie serwera

Serwer może być serwerem debugowania, serwerem przetwarzania lub serwerem połączenia KD. Można to uruchomić tak, jak zwykle, z wyjątkiem tego, że ustawienia protokołu transportu będą używane do łączenia się z repeater, a nie z klientem. Aby uzyskać szczegółowe informacje, zobacz Aktywowanie serwera debugowania, aktywowanie serwera przetwarzanialub aktywowanie serwera połączeń KD.

Jeśli używasz hasła podczas tworzenia serwera, to hasło będzie wymagane podczas dołączania klienta, ale nie podczas tworzenia powtarzania.

Jeśli używasz ukrytego parametru, serwer będzie ukryty jak zwykle. Sam repeater jest zawsze ukryty.

Krok drugi: uruchamianie repeatera

Repeater dołączony do narzędzi debugowania dla systemu Windows nosi nazwę DbEngPrx (dbengprx.exe).

DbEngPrx rozumie następujące protokoły transportu: nazwany potok (NPIPE), TCP i COM.

Jeśli klient i serwer używają protokołu SECURE Sockets Layer (SSL), należy użyć protokołu TCP dla repeatera. Jeśli klient i serwer używają protokołu secure pipe (SPIPE), należy użyć protokołu NPIPE dla repeatera. Repeater przekaże wszelkie odbierane dane — nie interpretuje, szyfruje ani odszyfrowuje żadnych informacji. Wszystkie szyfrowanie i odszyfrowywanie będą wykonywane przez klienta i serwer.

Składnia wiersza polecenia DbEnPrx jest następująca:

dbengprx [-p] -cClientTransport-sServerTransport

Parametry w poprzednich poleceniach mają następujące możliwe wartości:

-p
Powoduje, że funkcja DbEngPrx będzie kontynuować istniejące nawet po usunięciu wszystkich połączeń z nim.

ClientTransport
Określa ustawienia protokołu, które mają być używane podczas nawiązywania połączenia z serwerem. Protokół powinien być zgodny z używanym podczas tworzenia serwera. Składnie protokołu są następujące:

npipe:server=Server,pipe=PipeName[,password=Password] 
tcp:server=Server,port=Socket[,password=Password][,ipversion=6] 
tcp:clicon=Server,port=Socket[,password=Password][,ipversion=6] 
com:port=COMPort,baud=BaudRate,channel=COMChannel[,password=Password] 

Parametry protokołu mają następujące znaczenie:

serwera
Jest to nazwa sieci lub adres IP komputera, na którym został utworzony serwer. Dwa początkowe ukośniki odwrotne (\) są opcjonalne.

potok =PipeName
Jeśli jest używany protokół NPIPE lub SPIPE, PipeName to nazwa nadana potokowi podczas tworzenia serwera.

port =Socket
Jeśli jest używany protokół TCP lub SSL, Socket jest tym samym numerem portu gniazda, który został użyty podczas tworzenia serwera.

interfejsu wiersza polecenia
Określa, że serwer będzie próbował nawiązać połączenie z repeater za pośrednictwem połączenia odwrotnego. ClientTransport musi używać interfejsu wiersza polecenia tylko wtedy, gdy serwer używa interfejsu wiersza polecenia . W większości przypadków powtarzanie jest uruchamiane przed serwerem, gdy jest używane odwrotne połączenie.

port =COMPort
Jeśli jest używany protokół COM, COMPort określa port COM do użycia. Prefiks "COM" jest opcjonalny — na przykład dopuszczalne są zarówno wartości "com2" i "2".

baud=BaudRate
Jeśli jest używany protokół COM, BaudRate powinien odpowiadać szybkości transmisji wybranej podczas tworzenia serwera.

kanał =COMChannel
Jeśli jest używany protokół COM, COMChannel powinien odpowiadać numerowi kanału wybranego podczas tworzenia serwera.

password=Password
Jeśli hasło zostało użyte podczas tworzenia serwera, należy podać hasło w celu utworzenia klienta debugowania. Musi być zgodne z oryginalnym hasłem. W hasłach jest rozróżniana wielkość liter. Jeśli podano nieprawidłowe hasło, komunikat o błędzie określi "Błąd 0x80004005".

ipversion=6
(Narzędzia debugowania dla systemu Windows 6.6.07 i starszych) Wymusza, aby debuger używał adresu IP w wersji 6, a nie w wersji 4 podczas nawiązywania połączenia z Internetem przy użyciu protokołu TCP. W systemie Windows Vista i nowszych wersjach debuger próbuje automatycznie domyślnie ustawić adres IP w wersji 6, co sprawia, że ta opcja jest niepotrzebna.

ServerTransport
Określa ustawienia protokołu, które będą używane, gdy klient nawiązuje połączenie z repeaterem. Możliwe składnie protokołów to:

npipe:pipe=PipeName[,hidden][,password=Password][,IcfEnable] 
tcp:port=Socket[,hidden][,password=Password][,IcfEnable] 
tcp:port=Socket,clicon=Client[,password=Password] 
com:port=COMPort,baud=BaudRate,channel=COMChannel[,hidden][,password=Password] 

Parametry protokołu mają następujące znaczenie:

potok =PipeName
Gdy jest używany protokół NPIPE lub SPIPE, PipeName to ciąg, który będzie służyć jako nazwa potoku. Każda nazwa potoku powinna identyfikować unikatowy repeater. Jeśli spróbujesz ponownie użyć nazwy potoku, zostanie wyświetlony komunikat o błędzie. PipeName nie może zawierać spacji ani cudzysłowów. PipeName może zawierać liczbowykod formatu stylu, taki jak %x lub %d. Repeater zastąpi to identyfikatorem procesu DbEngPrx. Drugi taki kod zostanie zastąpiony identyfikatorem wątku DbEngPrx.

port =Socket
Gdy jest używany protokół TCP lub SSL, Socket jest numerem portu gniazda.

Istnieje również możliwość określenia zakresu portów rozdzielonych dwukropkiem. DbEngPrx sprawdzi każdy port w tym zakresie, aby sprawdzić, czy jest wolny. Jeśli znajdzie bezpłatny port i nie wystąpi błąd, zostanie utworzony repeater. Klient będzie musiał określić rzeczywisty port używany do nawiązywania połączenia z repeaterem. Aby określić rzeczywisty port, wyszukaj repeater; gdy ten repeater jest wyświetlany, port będzie po dwóch liczbach oddzielonych dwukropkiem. Pierwsza liczba będzie rzeczywistym używanym portem; drugi można zignorować. Jeśli na przykład port został określony jako port =51:60, a faktycznie użyto portu 53, wyniki wyszukiwania będą pokazywać wartość "port=53:60". (Jeśli używasz parametru clicon w celu nawiązania połączenia odwrotnego, klient może określić zakres portów w ten sposób, podczas gdy repeater musi określić rzeczywisty używany port).

clicon=Client
Gdy jest używany protokół TCP lub SSL i clicon parametr jest określony, zostanie otwarte odwrotne połączenie. Oznacza to, że moduł powtarzający spróbuje nawiązać połączenie z klientem, zamiast zezwalać klientowi na zainicjowanie kontaktu. Może to być przydatne, jeśli masz zaporę, która uniemożliwia połączenie w zwykłym kierunku. Client określa nazwę sieci lub adres IP komputera, na którym istnieje klient lub zostanie utworzony. Dwa początkowe ukośniki odwrotne (\) są opcjonalne.

Ponieważ moduł powtarzający szuka jednego określonego klienta, nie można połączyć wielu klientów z repeaterem, jeśli używasz tej metody. Jeśli połączenie zostanie odrzucone lub zostanie przerwane, konieczne będzie ponowne uruchomienie repeatera.

Gdy jest używana interfejsu wiersza polecenia, najlepiej jest uruchomić klienta przed utworzeniem repeatera, chociaż jest również dozwolona zwykła kolejność (powtarzanie przed klientem).

port =COMPort
Gdy jest używany protokół COM, COMPort określa port COM do użycia. Prefiks "COM" jest opcjonalny — na przykład dopuszczalne są zarówno wartości "com2" i "2". Nie można użyć tego samego portu COM w ClientTransport i ServerTransport.

baud=BaudRate
Gdy jest używany protokół COM, BaudRate określa szybkość transmisji, z jaką zostanie uruchomione połączenie. Dozwolona jest szybkość transmisji obsługiwana przez sprzęt. Jeśli używasz protokołu COM zarówno w ClientTransport, jak i ServerTransport można określić różne szybkości transmisji, ale naturalnie wolniejsza szybkość będzie limitem szybkości komunikacji klienta i serwera ze sobą.

kanał =COMChannel
Jeśli jest używany protokół COM, COMChannel określa kanał COM, który ma być używany w komunikacji z klientem. Może to być dowolna wartość z zakresu od 0 do 254 włącznie. Można użyć jednego portu COM dla wielu połączeń przy użyciu różnych numerów kanałów. (Różni się to od użycia portów COM dla debugowania — w takiej sytuacji nie można używać kanałów w porcie COM).

ukryte
Uniemożliwia wyświetlanie serwera, gdy inny debuger wyświetla wszystkie aktywne serwery.

password=Password
Wymaga od klienta podania określonego hasła w celu nawiązania połączenia z sesją debugowania. hasło może być dowolnym ciągiem alfanumerycznym.

IcfEnable
Powoduje, że debuger włącza niezbędne połączenia portów dla komunikacji TCP lub nazwanego potoku, gdy zapora połączenia internetowego jest aktywna. Domyślnie zapora połączenia internetowego wyłącza porty używane przez te protokoły. Gdy IcfEnable jest używany z połączeniem TCP, debuger powoduje otwarcie portu systemu Windows określonego przez parametr socket . Gdy IcfEnable jest używany z nazwanym połączeniem potoku, debuger powoduje otwarcie portów używanych dla nazwanych potoków (porty 139 i 445). Debuger nie zamyka tych portów po zakończeniu połączenia.

Krok trzeci: uruchamianie klienta

Klient powinien być klientem debugowania lub klientem inteligentnym — niezależnie od tego, co odpowiada typowi serwera. Aby uzyskać szczegółowe informacje, zobacz Aktywowanie klienta debugowania, aktywowanieklienta inteligentnego lub aktywowanie inteligentnego klienta (trybu jądra).

Jeśli serwer odrzuci połączenie (na przykład jeśli podasz nieprawidłowe hasło), zarówno repeater, jak i klient zostaną zamknięte. Należy ponownie uruchomić oba te elementy, aby ponownie opublikować kontakt z serwerem.