OpenWrt + Starlink পরিবেশে হোম IPv6 অ্যাড্রেস সহ WireGuard সার্ভার

9 min

language: ja bn en es hi pt ru zh-cn zh-tw

হ্যালো, আমি মুনো।

আগের আর্টিকেলে আমি আমার বাড়ির কানেকশনে একটি পাবলিক IPv6 অ্যাড্রেস পেতে সক্ষম হয়েছিলাম, তাই আমি নিচের কাজগুলো করব।

  • সার্ভার: OpenWrt + WireGuard Server

    • Interface: wg1(10.2.0.0/24)

    • এক্সিট আইপি (Exit IP) হিসেবে বাড়ির কানেকশন, ব্যান্ডউইথ লিমিট (যেমন VPS-এর ব্যান্ডউইথ লিমিট) মুক্ত একটি পরিবেশ।

  • ক্লায়েন্ট: স্মার্টফোন, ল্যাপটপ

এছাড়াও, এবারের উদ্দেশ্য হলো এই WireGuard সার্ভার থেকে ConoHa VPS-এ হোস্ট করা WireGuard সার্ভারের ইন্টারফেস wg0(10.1.0.0/24)-এ যোগাযোগ করতে পারা।

সবসময় wg1 ইন্টারফেসের একটি VPN এনভায়রনমেন্ট তৈরি করার মাধ্যমে, ব্যান্ডউইথের চিন্তা না করেই সবসময় ইন্টারনাল নেটওয়ার্কে যুক্ত থাকা সম্ভব হবে। এই নেটওয়ার্ক সেগমেন্টে যুক্ত হতে পারা নিজেই একটি সিকিউরিটি রিস্ক হতে পারে এমন উদ্বেগ থাকলেও, পাবলিক আইপিতে সরাসরি এক্সপোজ করার চেয়ে এটি কিছুটা ভালো, আর যদি কেউ wg0 ইন্টারফেসে ঢুকে পড়ে তবে তো সব শেষই।

এই কনফিগারেশনের মাধ্যমে OpenWrt-এ Dnsmasq ব্যবহার করে ইন্টারনাল DNS সার্ভার হোস্ট করা যাবে এবং সবসময় অ্যাড-ব্লকিং সুবিধাও পাওয়া যাবে।

OpenWrt-এ WireGuard

wireguard-tools ইনস্টল করুন।

root@OpenWrt:~# apk search wireguard
kmod-wireguard-6.12.74-r1
luci-proto-wireguard-26.120.35050~a611522
prometheus-node-exporter-ucode-wireguard-2024.02.07-r2
rpcd-mod-wireguard-2
wireguard-tools-1.0.20250521-r1
root@OpenWrt:~# apk add wireguard-tools-1.0.20250521-r1

এছাড়াও, সম্ভবত luci-proto-wireguard-26.120.35050~a611522 ইনস্টল করলে ওয়েব ইউজার ইন্টারফেস (LuCI) থেকে WireGuard কনফিগার করা যেত, কিন্তু আমি তা করছি না।

কনফিগারেশন

/etc/config/network

নিচের মতো করে সার্ভার সাইড ইন্টারফেস তৈরি করুন।

~~~
config interface 'wg1'
        option proto 'wireguard'
        option private_key 'wg1 server private key'
        option listen_port '51820'
        list addresses '10.2.0.1/24'
        list addresses 'fd02::1/64'
        option mtu '1420'
~~~

নিচে অনুমোদিত ক্লায়েন্ট সাইড সেটিংসও যোগ করা হলো। আসলে PreSharedKey সেট করে প্রি-শেয়ারড কি কনফিগার করা ভালো, তবে আপাতত সেটি বাদ দিচ্ছি।

config wireguard_wg1
        option public_key 'wg1 client public key'
        list allowed_ips '10.2.0.2/32'
        list allowed_ips 'fd02::2/128'
        list allowed_ips 'client ipv6 addr ::2/128'
        option persistent_keepalive '25'
        option route_allowed_ips '1'

ক্লায়েন্ট সাইডে wg1.conf তৈরি করুন। সমস্ত ট্রাফিক OpenWrt রাউটারের মাধ্যমে যাবে।

[Interface]
PrivateKey = "wg1 client public key "
Address = 10.2.0.2/24, fd02::2/64, client ipv6 addr::2/64
DNS = 10.2.0.1 # ইতিমধ্যেই Dnsmasq দিয়ে DNS সার্ভার তৈরি করা হয়েছে, তাই এটি কনফিগার করা আছে
[Peer]
PublicKey = "wg1 server public key"
Endpoint = "wg1 ipv6 addr :51820"
AllowedIPs = 0.0.0.0/0, ::/0
PersistentKeepalive = 25

এই অবস্থায় ফায়ারওয়াল ট্রাফিক আটকে দেবে, তাই wg জোন তৈরি করে wan সাইড IPv6-এ 51820/udp পোর্ট ওপেন করতে হবে, এবং হোম এনভায়রনমেন্ট হিসেবে LAN অনুমতি দিতে হবে যাতে wg ইন্টারফেস wan দিয়ে বাইরে যেতে পারে।

সাধারণত IPv6-এর ক্ষেত্রে NAT-এর প্রয়োজন হয় না, তাই আমি এটি স্পষ্টভাবে বন্ধ রাখছি।

/etc/config/firewall

config zone
        option name 'wg'
        list network 'wg1'
        list network 'wg0'
        option input 'ACCEPT'
        option forward 'ACCEPT'
        option output 'ACCEPT'
        option masq '1'
        option masq6 '0'
config rule
        option name 'Allow-WireGuard-IPv6'
        option src 'wan'
        option family 'ipv6'
        option proto 'udp'
        option dest_port '51820'
        option target 'ACCEPT'
config forwarding
        option src 'wg'
        option dest 'lan'
config forwarding
        option src 'wg'
        option dest 'wan'

এই অবস্থায় wg0-এর সাথে যোগাযোগ করা সম্ভব নয়, তাই অতিরিক্ত কনফিগারেশন যোগ করা হলো।

ধরে নেওয়া হচ্ছে যে wg0 সার্ভার সাইডেও নিচের সাথে মিল রেখে সেটিংস যোগ করা হয়েছে (এখানে তা বাদ দেওয়া হয়েছে)।

/etc/config/network

config route
        option interface 'wg0'
        option target '10.1.0.0/24'
config interface 'wg0'
        option proto 'wireguard'
        option private_key 'wg0 client private key'
        list addresses '10.1.0.99/24'
config wireguard_wg0
        option public_key 'wg0 server public key'
        option endpoint_host 'wg0 server addr'
        option endpoint_port '51820'
        list allowed_ips '10.1.0.0/24'
        list allowed_ips '10.2.0.0/24'
        option persistent_keepalive '25'

এতে মূলত কনফিগারেশন শেষ, তবে dnsmasq-এর জন্য নিচের বিষয়টি দেখুন:

আমার এনভায়রনমেন্টে এটি শুরু থেকেই ছিল, তাই শুধু এনাবল (Enable) করলেই হবে।

/etc/init.d/dnsmasq enable
/etc/init.d/dnsmasq start

এরপর /etc/dnsmasq.d/adblock.conf এর মতো একটি তালিকা যোগ করুন এবং ব্লক করুন।

/etc/init.d/dnsmasq restart

এই পর্যন্ত আসার পর, আপনাকে শুধু রিলোড করতে হবে।

/etc/init.d/network restart
/etc/init.d/firewall restart

এর মাধ্যমে, CGNAT IP যুক্ত IPv4 এবং IPv6 উভয় ক্ষেত্রেই কাজ করে এমন একটি ডুয়াল-স্ট্যাক এনভায়রনমেন্ট সম্পন্ন হলো।

OpenWrt এনভায়রনমেন্ট থেকে স্পিড টেস্ট

নিচে WireGuard সংযোগহীন একটি তারযুক্ত (wired) এনভায়রনমেন্ট দেওয়া হলো

$ speedtest-go -s 48463 
    speedtest-go v1.7.10 (git-dev) @showwin
✓ ISP: 206.83.125.125 (Starlink) [35.6893, 139.6899] 
✓ Found 1 Specified Public Server(s)
✓ Test Server: [48463] 5.80km Tokyo by IPA CyberLab 400G
✓ Latency: 41.037747ms Jitter: 8.459256ms Min: 24.163074ms Max: 57.008632ms
✓ Packet Loss Analyzer: Running in background (<= 30 Secs)
✓ Download: 173.63 Mbps (Used: 211.22MB) (Latency: 35ms Jitter: 6ms Min: 25ms Max: 41ms)
✓ Upload: 45.99 Mbps (Used: 81.23MB) (Latency: 35ms Jitter: 29ms Min: 23ms Max: 136ms)
✓ Packet Loss: N/A

নিচে 5GHz ব্যান্ডের Wi-Fi এনভায়রনমেন্টে wg1 VPN এনভায়রনমেন্ট থেকে প্রাপ্ত ফলাফল দেওয়া হলো

$ speedtest-go -s 48463 
    speedtest-go v1.7.10 (git-dev) @showwin
✓ ISP: 206.83.125.125 (Starlink) [35.6893, 139.6899] 
✓ Found 1 Specified Public Server(s)
✓ Test Server: [48463] 5.80km Tokyo by IPA CyberLab 400G
✓ Latency: 28.199611ms Jitter: 1.516613ms Min: 26.461289ms Max: 31.90411ms
✓ Packet Loss Analyzer: Running in background (<= 30 Secs)
✓ Download: 79.63 Mbps (Used: 114.99MB) (Latency: 98ms Jitter: 39ms Min: 27ms Max: 151ms)
✓ Upload: 65.86 Mbps (Used: 96.92MB) (Latency: 62ms Jitter: 73ms Min: 26ms Max: 285ms)
✓ Packet Loss: N/A

এখন আপনি বাইরে থেকে এমনকি স্মার্টফোন থেকেও এই wg1 VPN এনভায়রনমেন্টে অ্যাক্সেস করতে পারবেন।

Related Posts