আপনি নেটওয়ার্ক পোর্ট ফরওয়ার্ডিং কনফিগার করতে পারেন থার্ড-পার্টি টুল ব্যবহার না করেই সব উইন্ডোজ সংস্করণে। একটি পোর্ট ফরওয়ার্ডিং নিয়ম ব্যবহার করে, আপনি একটি ইনকামিং TCP সংযোগ (IPv4 বা IPv6) স্থানীয় TCP পোর্ট থেকে অন্য কোনো পোর্ট নম্বরে, এমনকি দূরবর্তী কম্পিউটারের একটি পোর্টেও পুনঃনির্দেশ করতে পারেন। তদুপরি, উইন্ডোজের জন্য একটি নির্দিষ্ট TCP পোর্টে শোনার মতো পরিষেবা থাকা আবশ্যক নয়। উইন্ডোজ পোর্ট ফরওয়ার্ডিং সাধারণত ফায়ারওয়াল বাইপাস করতে বা বহিরাগত নেটওয়ার্ক (NAT/PAT) থেকে একটি অভ্যন্তরীণ হোস্ট বা পরিষেবা লুকানোর জন্য ব্যবহৃত হয়।
লিনাক্স বিশ্বে, পোর্ট ফরওয়ার্ডিং বেশ সহজভাবে iptables বা firewalld ব্যবহার করে কনফিগার করা হয় . উইন্ডোজ সার্ভার সিস্টেমে, রাউটিং এবং রিমোট অ্যাক্সেস সার্ভিস (RRAS) সাধারণত পোর্ট পুনঃনির্দেশ কনফিগার করতে ব্যবহৃত হয়। যাইহোক, পোর্ট ফরওয়ার্ডিং কনফিগার করার একটি সহজ উপায় আছে, যা যেকোনো উইন্ডোজ সংস্করণে ভালো কাজ করে।
Netsh Portproxy ব্যবহার করে কিভাবে Windows 10-এ পোর্ট ফরওয়ার্ডিং কনফিগার করবেন?
আপনি পোর্টপ্রক্সি ব্যবহার করে Windows এ পোর্ট ফরওয়ার্ডিং কনফিগার করতে পারেন Netsh এর মোড আদেশ কমান্ড সিনট্যাক্স নিম্নরূপ:
netsh interface portproxy add v4tov4 listenaddress=localaddress listenport=localport connectaddress=destaddress connectport=destport
কোথায়
- ঠিকানা শুনুন - আগত সংযোগের জন্য শোনার জন্য একটি স্থানীয় আইপি ঠিকানা (আপনার একাধিক NIC বা একাধিক আইপি ঠিকানা একটি ইন্টারফেসে থাকলে দরকারী);
- লিসেনপোর্ট – স্থানীয় শোনার TCP পোর্ট নম্বর (সংযোগ অপেক্ষা করছে);
- সংযোগ ঠিকানা - একটি স্থানীয় বা দূরবর্তী আইপি ঠিকানা (বা DNS নাম) যেখানে আপনি ইনকামিং সংযোগ পুনর্নির্দেশ করতে চান;
- সংযোগ পোর্ট – হল একটি TCP পোর্ট যেখানে
listenport
থেকে সংযোগ ফরোয়ার্ড করা হয়।
netsh interface portproxy add
ব্যবহার করে v4tov6
/v6tov4
/v6tov6
বিকল্প, আপনি IPv4 এবং IPv6 ঠিকানাগুলির মধ্যে পোর্ট ফরওয়ার্ডিং নিয়ম তৈরি করতে পারেন। ধরা যাক আমাদের কাজ হল একটি নন-স্ট্যান্ডার্ড পোর্টে সাড়া দেওয়ার জন্য আরডিপি পরিষেবা তৈরি করা, উদাহরণস্বরূপ 3340 (রিমোট ডেস্কটপ পরিষেবার সেটিংসে পোর্টটি পরিবর্তন করা যেতে পারে, তবে পোর্ট প্রদর্শন করা সহজ করার জন্য আমরা আরডিপি ব্যবহার করছি। ফরওয়ার্ডিং)। এটি করার জন্য, আমাদের টিসিপি পোর্ট 3340 থেকে অন্য একটি স্থানীয় পোর্ট - 3389 (এটি ডিফল্ট RDP পোর্ট নম্বর) থেকে ইনকামিং ট্র্যাফিক রিডাইরেক্ট করতে হবে।
অনুগ্রহ করে মনে রাখবেন যে স্থানীয় পোর্ট নম্বর যা আপনি লিসেনপোর্টে নির্দিষ্ট করেছেন তা অন্য পরিষেবা বা প্রক্রিয়া দ্বারা শোনা (ব্যবহার করা) উচিত নয়। পরীক্ষা করুন যে পোর্ট নম্বর ব্যবহার করা হয়নি:
netstat -na|find "3340"
বিকল্পভাবে, আপনি PowerShell cmdlet Test-NetConnection ব্যবহার করে পোর্ট স্থানীয়ভাবে শুনছে না তা পরীক্ষা করতে পারেন:
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 – এই কম্পিউটারের বর্তমান আইপি ঠিকানা।
এখন, Windows এখন স্থানীয় পোর্ট 3340-এ শুনছে কিনা তা পরীক্ষা করতে netstat টুল ব্যবহার করুন:
netstat -ano | findstr :3340
দ্রষ্টব্য . যদি এই কমান্ডটি কিছুই ফেরত না দেয় এবং netsh ইন্টারফেস পোর্টপ্রক্সির মাধ্যমে পোর্ট ফরওয়ার্ডিং কাজ না করে, তাহলে নিশ্চিত করুন যে আপনার কাছে iphlpsvc আছে (আইপি হেল্পার) পরিষেবা আপনার কম্পিউটারে চলছে।
IPv6 সমর্থন অবশ্যই নেটওয়ার্ক ইন্টারফেসে সক্রিয় থাকতে হবে যার জন্য পোর্ট ফরওয়ার্ডিং নিয়ম তৈরি করা হয়েছে৷
পোর্ট ফরওয়ার্ডিং এর সঠিক অপারেশনের জন্য এগুলি পূর্বশর্ত। IP হেল্পার পরিষেবা ছাড়া এবং IPv6 সমর্থন সক্রিয় না থাকলে, পোর্ট পুনঃনির্দেশ কাজ করবে না৷
Windows Server 2003/XP-এ পোর্ট ফরওয়ার্ডিং কাজ করতে, আপনাকে অবশ্যই IPENableRouter সেট করতে হবে 1 এর প্যারামিটার রেজিস্ট্রি কী HKLM\SYSTEM\ControlSet001\Services\Tcpip\Parameters-এ।
আপনি তার PID ব্যবহার করে নির্দিষ্ট পোর্টে কোন প্রক্রিয়া শুনছেন তা খুঁজে পেতে পারেন (আমাদের উদাহরণে, PID হল 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
এই নিয়মটি সমস্ত আগত RDP ট্র্যাফিককে (স্থানীয় TCP পোর্ট 3389 থেকে) এই কম্পিউটার থেকে একটি IP ঠিকানা 192.168.1.100 সহ একটি দূরবর্তী হোস্টে পুনঃনির্দেশিত করবে।
এছাড়াও, আপনি স্থানীয় পোর্টটিকে দূরবর্তী সার্ভারে ফরোয়ার্ড করতে Windows SSH টানেল ব্যবহার করতে পারেন।উইন্ডোজে পোর্ট ফরওয়ার্ডিং নিয়ম পরিচালনা করা
গুরুত্বপূর্ণ . নিশ্চিত করুন যে আপনার ফায়ারওয়াল (মাইক্রোসফ্ট উইন্ডোজ ডিফেন্ডার ফায়ারওয়াল বা একটি তৃতীয় পক্ষের ফায়ারওয়াল যা প্রায়শই একটি অ্যান্টিভাইরাস সফ্টওয়্যারে অন্তর্ভুক্ত থাকে) নতুন পোর্টে ইনকামিং সংযোগগুলিকে অনুমতি দেয়৷ আপনি কমান্ড দিয়ে 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-এর জন্য একটি ইনকামিং ফায়ারওয়াল নিয়ম তৈরি করার সময়, এটির সাথে কোনও প্রোগ্রাম যুক্ত করার প্রয়োজন নেই। এই পোর্টটি শুধুমাত্র নেটওয়ার্ক ড্রাইভার দ্বারা শোনা যায়৷
৷
আপনি যেকোন সংখ্যক উইন্ডোজ পোর্ট ফরওয়ার্ডিং নিয়ম তৈরি করতে পারেন। সমস্ত netsh ইন্টারফেস পোর্টপ্রক্সি নিয়মগুলি স্থায়ী এবং উইন্ডোজ পুনরায় চালু করার পরে সিস্টেমে সংরক্ষণ করা হয়৷
এছাড়াও, এমন কিছু ঘটনা ছিল যখন Windows Server 2012 R2 এ পোর্ট ফরওয়ার্ডিং নিয়মগুলি সার্ভার রিবুট করার পরে পুনরায় সেট করা হয়েছিল। এই ক্ষেত্রে, আপনাকে চেক করতে হবে যে নেটওয়ার্ক ইন্টারফেসে পর্যায়ক্রমিক সংযোগ বিচ্ছিন্ন আছে কিনা এবং OS বুট হওয়ার সময় IP ঠিকানা পরিবর্তিত হয় কিনা (ডাইনামিক DHCP এর পরিবর্তে একটি স্ট্যাটিক আইপি ব্যবহার করা ভাল)। একটি সমাধান হিসাবে, আমাকে উইন্ডোজ টাস্ক শিডিউলারে নেটশ ইন্টারফেস পোর্টপ্রক্সি নিয়মের সাথে একটি ব্যাচ স্ক্রিপ্ট যোগ করতে হয়েছিল যা সিস্টেম স্টার্টআপে চলে।উইন্ডোজে সমস্ত সক্রিয় TCP পোর্ট ফরওয়ার্ডিং নিয়মগুলির একটি তালিকা প্রদর্শন করতে, কমান্ডটি চালান:
netsh interface portproxy show all
আমাদের ক্ষেত্রে স্থানীয় পোর্ট 3340 থেকে 3389 পর্যন্ত শুধুমাত্র একটি ফরওয়ার্ডিং নিয়ম রয়েছে:
Listen on ipv4: Connect to ipv4: Address Port Address Port --------------- ---------- --------------- ---------- 10.1.1.110 3340 10.1.1.110 3389
টিপ . এছাড়াও আপনি পোর্টপ্রক্সিতে পোর্ট ফরওয়ার্ডিং সেটিংসকে নিম্নরূপ তালিকাভুক্ত করতে পারেন:
netsh interface portproxy dump
#======================== # Port Proxy configuration #======================== pushd interface portproxy reset add v4tov4 listenport=3340 connectaddress=10.1.1.110 connectport=3389 popd # End of Port Proxy configuration
একটি নির্দিষ্ট পোর্ট ফরওয়ার্ডিং নিয়ম সরাতে:
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 থেকে সংযোগটিকে একটি দূরবর্তী HTTP সার্ভারে রিডাইরেক্ট করি যার IP ঠিকানা 157.166.226.25 (CNN ওয়েবসাইট):
netsh interface portproxy add v4tov4 listenport=5555 connectport=80 connectaddress= 157.166.226.25 protocol=tcp
এখন আপনি যদি আপনার ব্রাউজারে https://localhost:5555/ যান, CNN স্টার্ট পেজ খুলবে। তাই ব্রাউজার স্থানীয় কম্পিউটারে প্রবেশ করা সত্ত্বেও, এটি একটি বহিরাগত ওয়েব সার্ভার থেকে একটি পৃষ্ঠা খোলে৷
পোর্ট ফরওয়ার্ডিং নিয়মগুলি একটি ভৌত NIC এর বাহ্যিক আইপি ঠিকানা থেকে একই হোস্টে চলমান একটি ভার্চুয়াল মেশিনের একটি পোর্টে ফরোয়ার্ড করতেও ব্যবহার করা যেতে পারে। হাইপার-ভি-তে, আপনি ভার্চুয়াল সুইচ লেভেলে পোর্ট ফরওয়ার্ডিং কনফিগার করতে পারেন (নীচে দেখুন)।
উইন্ডোজ টিসিপি পোর্টের একটি পরিসীমা ফরোয়ার্ড করতে পারে না। আপনি যদি একাধিক পোর্ট ফরোয়ার্ড করতে চান তবে আপনাকে ম্যানুয়ালি একাধিক পোর্টপ্রক্সি ফরওয়ার্ডিং নিয়ম তৈরি করতে হবে। সবচেয়ে সহজ উপায় হল netsh interface portproxy add
এর একটি তালিকা তৈরি করা নোটপ্যাডে বিভিন্ন পোর্ট নম্বর সহ কমান্ড এবং তারপর এক্সিকিউশনের জন্য কমান্ড প্রম্পটে পেস্ট করুন।
হাইপার-ভি সার্ভারে পোর্ট ফরওয়ার্ডিং
আপনার কম্পিউটারে Hyper-V ভূমিকা ব্যবহার করার সময় (এটি Windows 10 এবং Windows সার্ভার উভয়েই ইনস্টল করা যেতে পারে, অথবা একটি বিনামূল্যের Hyper-V সার্ভার হিসাবে), আপনি PowerShell ব্যবহার করে DNAT পোর্ট ফরওয়ার্ডিং নিয়মগুলি কনফিগার করতে পারেন৷ ধরুন আপনি সমস্ত https ট্র্যাফিক রিডাইরেক্ট করতে চান যা আপনার হাইপার-V হোস্ট হোস্টে চলমান ভার্চুয়াল মেশিনের IP ঠিকানায় প্রাপ্ত করে। এটি করার জন্য, হাইপার-ভি স্ট্যাটিকম্যাপিং কমান্ডগুলি ব্যবহার করুন৷
৷প্রথমে আপনাকে NAT:
দিয়ে একটি ভার্চুয়াল সুইচ তৈরি করতে হবে
New-VMSwitch -Name "HTTPS-NAT" -SwitchType NAT -NATSubnetAddress 192.168.100.0/24
তারপরে আপনাকে নির্দিষ্ট vswitch-এ প্রয়োজনীয় VM সংযোগ করতে হবে এবং এই হাইপার-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
এই PowerShell কমান্ডগুলি কার্যকর করার পরে, হাইপার-V হোস্টের 443 পোর্টে আসা সমস্ত HTTPS ট্র্যাফিক ভার্চুয়াল মেশিনের ব্যক্তিগত IP ঠিকানায় ফরোয়ার্ড করা হবে৷