আমার 10.0.3.2
একটি হোস্টে চলছে একটি এলএক্সসি ধারক ( )। বন্দরের ধারকের ভিতরে একটি পরিষেবা চলছে 7000
।
হোস্ট ( 10.0.3.1
, lxcbr0
) থেকে, আমি পরিষেবাটিতে পৌঁছাতে পারি:
$ telnet 10.0.3.2 7000
Trying 10.0.3.2...
Connected to 10.0.3.2.
Escape character is '^]'.
আমি ধারকটির ভিতরে চলমান পরিষেবাটি বহির্বিশ্বে প্রবেশযোগ্য করে তুলতে চাই। অতএব, আমি 7002
হোস্টের পোর্টটি 7000
পাত্রে পোর্টে ফরোয়ার্ড করতে চাই :
iptables -t nat -A PREROUTING -p tcp --dport 7002 -j DNAT --to 10.0.3.2:7000
( iptables -t nat -L
) এর ফলাফল যা :
DNAT tcp -- anywhere anywhere tcp dpt:afs3-prserver to:10.0.3.2:7000
তবুও, আমি ফরওয়ার্ড করা পোর্টটি ব্যবহার করে হোস্টের কাছ থেকে পরিষেবাটি অ্যাক্সেস করতে পারি না:
$ telnet 10.0.3.1 7002
Trying 10.0.3.1...
telnet: Unable to connect to remote host: Connection refused
আমার মনে হচ্ছে আমি এখানে বোকা কিছু মিস করছি। আমার কোন জিনিসগুলি পরীক্ষা করা উচিত? এই পরিস্থিতিতে ডিবাগ করার জন্য একটি ভাল কৌশল কী?
সম্পূর্ণতার জন্য, এখানে কীভাবে iptables
হোস্ট সেট করা আছে:
iptables -F
iptables -F -t nat
iptables -F -t mangle
iptables -X
iptables -P INPUT DROP
iptables -P FORWARD ACCEPT
iptables -P OUTPUT ACCEPT
iptables -A INPUT -p tcp --dport 22 -j ACCEPT
iptables -A INPUT -p icmp --icmp-type echo-request -j ACCEPT
iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
iptables -t nat -A POSTROUTING -o lxcbr0 -j MASQUERADE
iptables -t nat -A PREROUTING -p tcp --dport 7002 -j DNAT --to 10.0.3.2:7000
ACCEPT
FORWARD
চেইনটি বোঝাতে চাইছি এছাড়াও পরীক্ষা যদি আইপি ফরওয়ার্ডিং সক্ষম আছে: cat /proc/sys/net/ipv4/ip_forward
।
ip_forward
সেট করা হয়েছে1
FORWARD
নীতি হয়ACCEPT
INPUT
চেইন পরীক্ষা করেছেন ? পলিসি হয়তোREJECT
আছে।