আমার প্রশ্নটি মূলত একইরকম কিছু নির্দিষ্ট ইন্টারফেসে কেবল নির্দিষ্ট আউটবাউন্ড ট্র্যাফিকের অনুমতি দেয় ।
আমার দুটি ইন্টারফেস রয়েছে eth1
(10.0.0.2) এবং wlan0
(192.168.0.2)। আমার ডিফল্ট রুটটি এর জন্য eth1
। ধরা যাক আমি সমস্ত https- ট্র্যাফিকের মধ্য দিয়ে যেতে চাই wlan0
। এখন আমি যদি অন্য প্রশ্নের মধ্যে প্রস্তাবিত সমাধানটি ব্যবহার করি তবে https ট্র্যাফিক চলবে wlan0
, তবে তার উত্স-ঠিকানা eth1
(10.0.0.2) থাকবে। যেহেতু এই ঠিকানাটি wlan0
গেটওয়ের জন্য রুটেযোগ্য নয় , উত্তরগুলি আর ফিরে আসবে না। সহজ উপায়টি হ'ল অ্যাপ্লিকেশনটিতে কেবলমাত্র বাইন্ড অ্যাডরকে সঠিকভাবে সেট করা যায় তবে এই ক্ষেত্রে এটি প্রযোজ্য নয়।
আমি অনুভব করি যে এসআরসি-অ্যাডারের নতুন করে লিখতে হবে:
# first mark it so that iproute can route it through wlan0
iptables -A OUTPUT -t mangle -o eth1 -p tcp --dport 443 -j MARK --set-mark 1
# now rewrite the src-addr
iptables -A POSTROUTING -t nat -o wlan0 -p tcp --dport 443 -j SNAT --to 192.168.0.2
এখন tcpdump আউটগোয়িং প্যাকেটগুলি ঠিক সূক্ষ্ম দেখায় এবং ইনগোয়িং প্যাকেটগুলি 192.168.0.2 এ আসে, তবে সম্ভবত তারা অ্যাপ্লিকেশনটিতে শেষ হয় না, কারণ আমি যা দেখতে পাই তা হ'ল অ্যাপ্লিকেশনটি এসওয়াইএন-প্যাকেটটি পুনরায় বিক্রয় করছে, যদিও এসআইএনএন- এসি কে ইতিমধ্যে প্রাপ্ত হয়েছিল।
তাই আমি ভেবেছিলাম, সম্ভবত আমারও আগত ঠিকানা আবার লিখতে হবে:
iptables -A PREROUTING -t nat -i wlan0 -p tcp --sport 443 -j DNAT --to 10.0.0.2
কিন্তু এটিও কার্যকর হয়নি। সুতরাং আমি এখানে আটকে এক ধরনের। কোন পরামর্শ?