आप नेटवर्क पोर्ट फ़ॉरवर्डिंग कॉन्फ़िगर कर सकते हैं सभी Windows संस्करणों में तृतीय-पक्ष टूल का उपयोग किए बिना। पोर्ट फ़ॉरवर्डिंग नियम का उपयोग करके, आप आने वाले TCP कनेक्शन (IPv4 या IPv6) को स्थानीय TCP पोर्ट से किसी अन्य पोर्ट नंबर पर, या यहाँ तक कि किसी दूरस्थ कंप्यूटर के पोर्ट पर रीडायरेक्ट कर सकते हैं। इसके अलावा, विंडोज़ के लिए एक ऐसी सेवा होना जरूरी नहीं है जो एक विशिष्ट टीसीपी पोर्ट पर सुनती हो। विंडोज पोर्ट फ़ॉरवर्डिंग का उपयोग आमतौर पर फायरवॉल को बायपास करने या बाहरी नेटवर्क (NAT / PAT) से आंतरिक होस्ट या सेवा को छिपाने के लिए किया जाता है।
Linux की दुनिया में, पोर्ट फ़ॉरवर्डिंग को काफी सरलता से iptables या फ़ायरवॉल . का उपयोग करके कॉन्फ़िगर किया गया है . विंडोज सर्वर सिस्टम पर, रूटिंग और रिमोट एक्सेस सर्विस (आरआरएएस) का उपयोग आमतौर पर पोर्ट रीडायरेक्शन को कॉन्फ़िगर करने के लिए किया जाता है। हालांकि, पोर्ट फ़ॉरवर्डिंग को कॉन्फ़िगर करने का एक आसान तरीका है, जो किसी भी विंडोज संस्करण में अच्छी तरह से काम करता है।
Netsh Portproxy का उपयोग करके Windows 10 पर पोर्ट फ़ॉरवर्डिंग को कैसे कॉन्फ़िगर करें?
आप पोर्टप्रॉक्सी . का उपयोग करके विंडोज़ में पोर्ट फ़ॉरवर्डिंग को कॉन्फ़िगर कर सकते हैं Netsh . का मोड आदेश। कमांड सिंटैक्स इस प्रकार है:
netsh interface portproxy add v4tov4 listenaddress=localaddress listenport=localport connectaddress=destaddress connectport=destport
कहां
- सुनोपता - आने वाले कनेक्शन को सुनने के लिए एक स्थानीय आईपी पता है (उपयोगी यदि आपके पास एक इंटरफ़ेस पर एकाधिक एनआईसी या एकाधिक आईपी पते हैं);
- सुनो - स्थानीय सुनने वाला टीसीपी पोर्ट नंबर (कनेक्शन चालू है);
- पता कनेक्ट करें - एक स्थानीय या दूरस्थ आईपी पता (या डीएनएस नाम) है जिस पर आप आने वाले कनेक्शन को पुनर्निर्देशित करना चाहते हैं;
- कनेक्टपोर्ट - एक टीसीपी पोर्ट है जिससे कनेक्शन
listenport
. से है को अग्रेषित किया जाता है।
netsh interface portproxy add
का उपयोग करना v4tov6
/v6tov4
/v6tov6
विकल्प, आप IPv4 और IPv6 पतों के बीच पोर्ट फ़ॉरवर्डिंग नियम बना सकते हैं। मान लीजिए कि हमारा काम आरडीपी सेवा को गैर-मानक पोर्ट पर प्रतिक्रिया देना है, उदाहरण के लिए 3340 (पोर्ट को रिमोट डेस्कटॉप सेवा की सेटिंग में बदला जा सकता है, लेकिन हम पोर्ट को प्रदर्शित करना आसान बनाने के लिए आरडीपी का उपयोग कर रहे हैं। अग्रेषित करना)। ऐसा करने के लिए, हमें आने वाले ट्रैफ़िक को TCP पोर्ट 3340 से दूसरे स्थानीय पोर्ट - 3389 (यह डिफ़ॉल्ट RDP पोर्ट नंबर है) पर रीडायरेक्ट करने की आवश्यकता है।
कृपया ध्यान दें कि आपके द्वारा लिनेपोर्ट में निर्दिष्ट स्थानीय पोर्ट नंबर को किसी अन्य सेवा या प्रक्रिया द्वारा नहीं सुना (प्रयुक्त) किया जाना चाहिए। जांचें कि पोर्ट नंबर का उपयोग नहीं किया गया है:
netstat -na|find "3340"
वैकल्पिक रूप से, आप देख सकते हैं कि पॉवरशेल cmdlet टेस्ट-नेटकनेक्शन का उपयोग करके पोर्ट स्थानीय रूप से नहीं सुन रहा है:
Test-NetConnection -ComputerName localhost -Port 3340
Windows 10 पर पोर्ट फ़ॉरवर्डिंग नियम बनाने के लिए, एक व्यवस्थापक के रूप में कमांड प्रॉम्प्ट चलाएँ और निम्न कमांड चलाएँ:
netsh interface portproxy add v4tov4 listenport=3340 listenaddress=10.1.1.110 connectport=3389 connectaddress=10.1.1.110
जहां 10.10.1.110 - इस कंप्यूटर का वर्तमान आईपी पता।
अब, नेटस्टैट टूल का उपयोग यह जांचने के लिए करें कि विंडोज अब स्थानीय पोर्ट 3340 पर सुन रहा है:
netstat -ano | findstr :3340
नोट . यदि यह आदेश कुछ भी नहीं लौटाता है और netsh इंटरफ़ेस पोर्टप्रॉक्सी के माध्यम से पोर्ट अग्रेषण काम नहीं करता है, तो सुनिश्चित करें कि आपके पास iphlpsvc है (आईपी हेल्पर) सेवा आपके कंप्यूटर पर चल रही है।
IPv6 समर्थन नेटवर्क इंटरफ़ेस पर सक्षम होना चाहिए जिसके लिए पोर्ट फ़ॉरवर्डिंग नियम बनाया गया है।
पोर्ट फ़ॉरवर्डिंग के सही संचालन के लिए ये आवश्यक शर्तें हैं। IP हेल्पर सेवा के बिना और IPv6 समर्थन सक्षम किए बिना, पोर्ट पुनर्निर्देशन काम नहीं करेगा।
Windows Server 2003/XP पर पोर्ट फ़ॉरवर्डिंग कार्य करने के लिए, आपको अतिरिक्त रूप से IPEnableRouter सेट करना होगा 1 . के लिए पैरामीटर रजिस्ट्री कुंजी में HKLM\SYSTEM\ControlSet001\Services\Tcpip\Parameters.
आप पता लगा सकते हैं कि पीआईडी का उपयोग करके निर्दिष्ट पोर्ट पर कौन सी प्रक्रिया सुन रही है (हमारे उदाहरण में, पीआईडी 636 है):
tasklist | findstr 636
आइए किसी भी RDP क्लाइंट का उपयोग करके किसी दूरस्थ कंप्यूटर से इस पोर्ट से कनेक्ट करने का प्रयास करें। पोर्ट 3340 को RDP पोर्ट नंबर के रूप में निर्दिष्ट किया जाना चाहिए। यह RDP सर्वर एड्रेस के बाद कोलन के बाद निर्दिष्ट होता है। उदाहरण के लिए, 10.10.1.110:3340
RDP कनेक्शन सफलतापूर्वक स्थापित होना चाहिए।
यदि आप आने वाले TCP कनेक्शन को किसी दूरस्थ कंप्यूटर पर अग्रेषित करना चाहते हैं, तो निम्न कमांड का उपयोग करें:
netsh interface portproxy add v4tov4 listenport=3389 listenaddress=0.0.0.0 connectport=3389 connectaddress=192.168.100.101
यह नियम इस कंप्यूटर से आने वाले सभी आरडीपी ट्रैफिक (स्थानीय टीसीपी पोर्ट 3389 से) को आईपी एड्रेस 192.168.1.100 के साथ रिमोट होस्ट पर रीडायरेक्ट करेगा।
साथ ही, आप स्थानीय पोर्ट को किसी दूरस्थ सर्वर पर अग्रेषित करने के लिए Windows SSH सुरंग का उपयोग कर सकते हैं।Windows में पोर्ट फ़ॉरवर्डिंग नियम प्रबंधित करना
महत्वपूर्ण . सुनिश्चित करें कि आपका फ़ायरवॉल (Microsoft Windows Defender Firewall या एक तृतीय-पक्ष फ़ायरवॉल जिसे अक्सर एंटीवायरस सॉफ़्टवेयर में शामिल किया जाता है) नए पोर्ट से आने वाले कनेक्शन की अनुमति देता है। आप Windows Defender Firewall में इस आदेश के साथ एक नया अनुमति नियम जोड़ सकते हैं:
netsh advfirewall firewall add rule name=”forwarded_RDPport_3340” protocol=TCP dir=in localip=10.1.1.110 localport=3340 action=allow
या New-NetFirewallRule PowerShell cmdlet का उपयोग करना:New-NetFirewallRule -DisplayName "forwarder_RDP_3340" -Direction Inbound -Protocol TCP –LocalPort 3340 -Action Allow
विंडोज डिफेंडर फ़ायरवॉल ग्राफिकल इंटरफ़ेस के माध्यम से पोर्ट 3340 के लिए आने वाला फ़ायरवॉल नियम बनाते समय, इसके साथ किसी प्रोग्राम को जोड़ने की आवश्यकता नहीं है। यह पोर्ट केवल नेटवर्क ड्राइवर द्वारा सुना जाता है।
आप कितने भी Windows पोर्ट फ़ॉरवर्डिंग नियम बना सकते हैं। सभी netsh इंटरफ़ेस पोर्टप्रॉक्सी नियम स्थायी होते हैं और Windows पुनरारंभ होने के बाद सिस्टम में संग्रहीत होते हैं।
साथ ही, ऐसे मामले भी थे जब Windows Server 2012 R2 में सर्वर रीबूट के बाद पोर्ट फ़ॉरवर्डिंग नियम रीसेट किए गए थे। इस मामले में, आपको यह जांचने की आवश्यकता है कि क्या नेटवर्क इंटरफ़ेस पर आवधिक डिस्कनेक्शन है, और क्या ओएस बूट होने पर आईपी पता बदलता है (गतिशील डीएचसीपी के बजाय स्थिर आईपी का उपयोग करना बेहतर होता है)। वर्कअराउंड के रूप में, मुझे सिस्टम स्टार्टअप पर चलने वाले netsh इंटरफ़ेस पोर्टप्रॉक्सी नियमों के साथ विंडोज टास्क शेड्यूलर में एक बैच स्क्रिप्ट जोड़नी थी।विंडोज़ पर सभी सक्रिय टीसीपी पोर्ट फ़ॉरवर्डिंग नियमों की सूची प्रदर्शित करने के लिए, कमांड चलाएँ:
netsh interface portproxy show all
हमारे मामले में स्थानीय पोर्ट 3340 से 3389 तक केवल एक अग्रेषण नियम है:
ipv4 पर सुनें: IPv4 से कनेक्ट करें:पता पोर्ट पता पोर्ट --------------- ---------- ---------- ---------------10.1.1.110 3340 10.1.1.110 3389
युक्ति . आप पोर्टप्रॉक्सी में पोर्ट फ़ॉरवर्डिंग सेटिंग्स को निम्नानुसार सूचीबद्ध कर सकते हैं:
netsh interface portproxy dump
किसी विशिष्ट पोर्ट फ़ॉरवर्डिंग नियम को निकालने के लिए:
netsh interface portproxy delete v4tov4 listenport=3340 listenaddress=10.1.1.110
सभी मौजूदा मैपिंग नियमों को हटाने और पोर्ट फ़ॉरवर्डिंग नियम तालिका को पूरी तरह से साफ़ करने के लिए:
netsh interface portproxy reset
connectaddress
. के रूप में नहीं कर सकते हैं ।
आप UDP ट्रैफ़िक के लिए पोर्ट फ़ॉरवर्डिंग को कॉन्फ़िगर करने के लिए स्थापित RRAS और NAT भूमिका के साथ Windows सर्वर का उपयोग कर सकते हैं। आप ग्राफिकल स्नैप-इन (rrasmgmt.msc
का उपयोग करके सर्वर इंटरफेस के बीच पोर्ट अग्रेषण को कॉन्फ़िगर कर सकते हैं। ) या कमांड के साथ:
netsh routing ip nat add portmapping Ethernet1 udp 0.0.0.0 53 192.168.100.100 53
जोड़ें
एक अन्य पोर्टप्रॉक्सी सुविधा यह दिखाने का अवसर है कि कोई दूरस्थ नेटवर्क सेवा स्थानीय रूप से चल रही है।
उदाहरण के लिए, आइए स्थानीय पोर्ट 5555 से आईपी पते 157.166.226.25 (सीएनएन वेबसाइट) के साथ एक दूरस्थ HTTP सर्वर पर कनेक्शन को पुनर्निर्देशित करें:
netsh interface portproxy add v4tov4 listenport=5555 connectport=80 connectaddress= 157.166.226.25 protocol=tcp
अब यदि आप अपने ब्राउज़र में https://localhost:5555/ पर जाते हैं, तो सीएनएन स्टार्ट पेज खुल जाएगा। इसलिए ब्राउज़र के स्थानीय कंप्यूटर तक पहुँचने के बावजूद, यह बाहरी वेब सर्वर से एक पेज खोलता है।
पोर्ट फ़ॉरवर्डिंग नियमों का उपयोग किसी भौतिक एनआईसी के बाहरी आईपी पते से उसी होस्ट पर चलने वाली वर्चुअल मशीन के पोर्ट पर पोर्ट को अग्रेषित करने के लिए भी किया जा सकता है। हाइपर-V में, आप वर्चुअल स्विच स्तर पर पोर्ट फ़ॉरवर्डिंग को कॉन्फ़िगर कर सकते हैं (नीचे देखें)।
विंडोज़ टीसीपी पोर्ट की एक श्रृंखला को अग्रेषित नहीं कर सकता है। यदि आपको एकाधिक पोर्ट अग्रेषित करने की आवश्यकता है, तो आपको मैन्युअल रूप से एकाधिक पोर्टप्रॉक्सी अग्रेषण नियम बनाना होगा। सबसे आसान तरीका है netsh interface portproxy add
. की सूची बनाना नोटपैड में अलग-अलग पोर्ट नंबर के साथ कमांड और फिर उन्हें निष्पादन के लिए कमांड प्रॉम्प्ट में पेस्ट करें।
हाइपर-V सर्वर में पोर्ट फ़ॉरवर्डिंग
अपने कंप्यूटर पर हाइपर-वी भूमिका का उपयोग करते समय (इसे विंडोज 10 और विंडोज सर्वर दोनों पर स्थापित किया जा सकता है, या एक मुफ्त हाइपर-वी सर्वर के रूप में), आप पावरशेल का उपयोग करके डीएनएटी पोर्ट अग्रेषण नियमों को कॉन्फ़िगर कर सकते हैं। मान लीजिए कि आप अपने हाइपर-V होस्ट को प्राप्त होने वाले सभी https ट्रैफ़िक को होस्ट पर चलने वाली वर्चुअल मशीन के IP पते पर रीडायरेक्ट करना चाहते हैं। ऐसा करने के लिए, हाइपर-V स्टेटिकमैपिंग कमांड का उपयोग करें।
सबसे पहले आपको NAT के साथ एक वर्चुअल स्विच बनाना होगा:
New-VMSwitch -Name "HTTPS-NAT" -SwitchType NAT -NATSubnetAddress 192.168.100.0/24
फिर आपको आवश्यक VM को निर्दिष्ट vswitch से कनेक्ट करना होगा और इस हाइपर- V वर्चुअल स्विच के माध्यम से जुड़ी सभी वर्चुअल मशीनों के लिए एड्रेस ट्रांसलेशन नियम को सक्षम करना होगा:
New-NetNat -Name HTTPS-NAT -InternalIPInterfaceAddressPrefix 192.168.100.0/24
Add-NetNatStaticMapping -ExternalIPAddress "0.0.0.0/24" -ExternalPort 443 -Protocol TCP -InternalIPAddress "192.168.100.77" -InternalPort 443 -NatName HTTPS-NAT
इन पावरशेल कमांड को निष्पादित करने के बाद, हाइपर-वी होस्ट के पोर्ट 443 पर आने वाले सभी HTTPS ट्रैफ़िक को वर्चुअल मशीन के निजी आईपी पते पर भेज दिया जाएगा।