Настройване на картографиране на портове (пренасочване на портове) в Windows с помощта на netsh
Какво е това и защо е необходимо
В Windows, като се започне от версията на Windows XP, е възможно да се конфигурира пренасочване на портове (пренасочване на портове или картографиране на портове) без никакви външни програми (и дори без използване на вградената защитна стена!).
Защо това може да е необходимо? Например, за да конфигурирате друг (допълнителен) порт, на който услугата ще "виси". Например, в допълнение към порт 80 (на който се намира apache), можете също да "отворите" порт 1580 или 65123, който всъщност ще изпълнява същата роля като порт 80, но ще бъде "таен" порт. Или можете да "скриете" действителните сървъри по този начин: разрешете връзки към някакъв локален порт (към localhost, 127.0.0.1) и след това "препратете" тази връзка към друг сървър (и към друг порт).
Ограничение: тези пренасочвания засягат само TCP портовете, UDP трафикът не може да бъде пренасочван по този начин.
Как да направите картографиране на портове (пренасочване на портове) чрез netsh
За да направи това, netsh има портпрокси контекст, който се намира в контекста на интерфейса. За да създадете картографиране на портове, стартирайте от командния ред (в Windows Vista и по-нови - като администратор):
Проверка дали съпоставянето на портове е конфигурирано правилно
Първо проверяваме дали нашето правило се е появило в списъка с netsh правила: netsh интерфейс portproxy покажи всички
Ако правилото се появи, уверете се, че портът, който сме конфигурирали, слуша. За да направите това, изпълнете командата: netstat -ano findstr : например: netstat -ano findstr :5556
Ако портът не слуша (т.е. не се извършва картографиране на порт), тогава тази команда няма да покаже нищо. Ако нашата идея е успешна, ще видим нещо като това съобщение: TCP. 5556 0.0.0.0:0 СЛУШАНЕ.
В случай на проблеми с връзката, проверете дали имате правилно конфигурирана (или деактивирана) защитна стена (която може да блокира връзките към порта, който отваряте).
Премахване на картографиране на портове
За да премахнете всички правила за пренасочване (най-простият случай), просто изпълнете командата (не забравяйте, че командният ред трябва да се стартира като администратор!): netsh interface portproxy reset
След това се уверете, че всички правила са премахнати: командата netsh interface portproxy show all не трябва да показва нищо.
Ако искате да изтриете само едно правило за пренасочване на порт, командата е малко по-сложна: netsh интерфейс portproxy delete v4tov4 listenport= listenaddress=
например: netsh интерфейс portproxy delete v4tov4 listenport=5556 В този пример ние премахваме съпоставянето на портове, което е конфигурирано на локалната машина на порт 5556.
Промяна на настройките за картографиране на портове чрез netsh
Забележка: Можете да промените стойностите на всички параметри за съществуващ запис на портпрокси сървър. Ако не са дадени стойности, не се правят промени.