SingLinkVPN အက်ပ် prototype ယခု Open Source ဖြစ်ပြီ

Contents
ယနေ့ SingLinkVPN ၏ နောက်ကွယ်မှ အဖွဲ့ဖြစ်သော SingLinkLabs သည် SingLinkVPN အက်ပ်၏ ပထမမျိုးဆက် prototype ၏ source code ကို Apache-2.0 လိုင်စင်ဖြင့် GitHub တွင် ထုတ်ပြန်လိုက်ပါပြီ။ ၎င်းသည် Windows၊ macOS၊ Android နှင့် iOS အတွက် သာမန်အသုံးပြုသူများ သုံးသည့်ပုံစံ VPN အက်ပ်တစ်ခု ဖြစ်ပြီး codebase တစ်ခုတည်းမှ၊ မကြာသေးမီက Open Source ပြုလုပ်ခဲ့သော SingLink ပရိုတိုကောပေါ်တွင် တည်ဆောက်ထားပါသည်။
၎င်းကို ပရိုတိုကောနှင့်အတူ တစ်ပြိုင်နက် ထုတ်ပြန်ထားပါသည် — SingLink ပရိုတိုကောကို Open Source အဖြစ် ထုတ်ပြန်လိုက်ပြီ ကို ကြည့်ပါ။ နှစ်ခုပေါင်း၍ ပွင့်လင်း VPN ပရိုတိုကောတစ်ခုနှင့် ပြည့်စုံသော client တစ်ခုတို့ ချိတ်ဆက်ခလုတ်မှသည် စာဝှက်ထားသော packet များအထိ မည်သို့ ပေါင်းစပ်လုပ်ဆောင်သည်ကို ပြသပါသည်။
Repository: SingLinkLabs / singlink-vpn-app · အခြေအနေ: ပထမမျိုးဆက် prototype · လိုင်စင်: Apache-2.0 · တည်ဆောက်ထားပုံ: interface အတွက် Flutter (Dart)၊ core အတွက် Go
ဤအက်ပ်သည် ကျွန်ုပ်တို့ ဝက်ဘ်ဆိုက်မှ ဒေါင်းလုဒ်လုပ်ရသော အက်ပ် မဟုတ်ပါ
ကျွန်ုပ်တို့ ဝက်ဘ်ဆိုက်မှ ဒေါင်းလုဒ်လုပ်ရသော သို့မဟုတ် app store များမှ ရယူရသော တရားဝင် SingLinkVPN အက်ပ်များသည် သီးခြားထုတ်ကုန်များ ဖြစ်ပါသည်။ ၎င်းတို့သည် SingLink 2.0 အပါအဝင် ကျွန်ုပ်တို့၏ production ပရိုတိုကောများပေါ်တွင် လည်ပတ်ပြီး ၎င်းတို့၏ အဓိက source code သည် ဤထုတ်ပြန်မှုတွင် မပါဝင်ပါ။ လက်ရှိအသုံးပြုသူများအတွက် မည်သည့်အပြောင်းအလဲမှ မရှိပါ။
ဤ prototype သည် ပွင့်လင်း SingLink ပရိုတိုကောအတွက် reference client တစ်ခု ဖြစ်ပါသည်။ ၎င်းသည် ထိုပရိုတိုကောကို အသုံးပြုသော ဆာဗာများနှင့်သာ ချိတ်ဆက်ပြီး အကောင့် sign-in မပါဝင်ပါ — ဆာဗာ link ကို paste လုပ်ခြင်း သို့မဟုတ် clipboard မှ import လုပ်ခြင်းဖြင့် ဆာဗာများကို ကိုယ်တိုင် ထည့်သွင်းရပါသည်။ ၎င်းကို မည်သည့် app store တွင်မျှ ထုတ်ဝေထားခြင်း မရှိပါ။
အက်ပ်၏ လုပ်ဆောင်ချက်များ
- တစ်ချက်နှိပ်ရုံဖြင့် ချိတ်ဆက်ခြင်းနှင့် ချိတ်ဆက်မှုဖြုတ်ခြင်း၊ အခြေအနေ သုံးမျိုးကို ပြသသော ကြီးမားသည့် အဝိုင်းခလုတ်ဖြင့် — မချိတ်ဆက်ရသေး၊ ချိတ်ဆက်နေဆဲနှင့် ချိတ်ဆက်ပြီး။
- ကာကွယ်မှုအခြေအနေ ("Not protected" သို့မဟုတ် "Protected") နှင့် ချိတ်ဆက်ချိန် timer။
- သင့် IP: ချိတ်ဆက်ပြီးနောက် ဝက်ဘ်ဆိုက်များ မြင်ရသည့် exit IP လိပ်စာကို အက်ပ်က ပြသပါသည်။
- တည်နေရာ ရွေးချယ်ခြင်း: ဆာဗာများကို နိုင်ငံအလံများနှင့်အတူ စာရင်းပြုစုထားပြီး ထိပ်ဆုံးတွင် "Quick connect (auto)" ရှိပါသည်။ ချိတ်ဆက်ထားစဉ် တည်နေရာ ပြောင်းလျှင် အလိုအလျောက် ပြန်ချိတ်ဆက်ပါသည်။
- ရိုးသားသော latency: တိုင်းတာထားသော တန်ဖိုးများကိုသာ ပြသပါသည်။ မတိုင်းတာရသေးသော ဆာဗာများအတွက် လုပ်ကြံထားသော ကိန်းဂဏန်းအစား "—" ကို ပြသပါသည်။
- တိုက်ရိုက် အမြန်နှုန်း: download နှင့် upload အမြန်နှုန်း၊ ထို့ပြင် လက်ရှိ session တွင် သုံးစွဲထားသော ဒေတာ။
- ရှင်းလင်းသော error မက်ဆေ့ချ်များ၊ နောက်တစ်ဆင့် ဘာလုပ်ရမည်ကို ပြောပြပြီး နည်းပညာအသေးစိတ်ကို တစ်ချက်နှိပ်ရုံဖြင့် ကြည့်နိုင်ပါသည်။
- Light နှင့် dark mode၊ စနစ်ဆက်တင်အတိုင်း လိုက်ပြောင်းပါသည်။
ချိတ်ဆက်မှု mode နှစ်မျိုး
ဖုန်းများတွင် စက်တစ်ခုလုံးအတွက် VPN။ Android သည် စနစ်၏ VpnService ကို အသုံးပြုပြီး iOS သည် Network Extension ကို အသုံးပြုပါသည်။ အက်ပ်အားလုံး၏ traffic သည် tunnel ကို ဖြတ်သန်းသွားပြီး DNS ရှာဖွေမှုများလည်း ၎င်းအတွင်း၌ပင် ဖြစ်ပါသည်။
ကွန်ပျူတာများတွင် system proxy mode။ ချိတ်ဆက်သည့်အခါ အက်ပ်က system proxy ကို သတ်မှတ်ပေးပြီး ချိတ်ဆက်မှုဖြုတ်သည့်အခါ သို့မဟုတ် အက်ပ်ကို ပိတ်သည့်အခါ သင်၏ ယခင်ဆက်တင်များကို ပြန်လည်ထားရှိပေးပါသည်။ ချိတ်ဆက်ထားစဉ် အက်ပ်ကို အတင်းပိတ်ခံရပါက နောက်တစ်ကြိမ် စတင်ဖွင့်သည့်အခါ ၎င်းတို့ကို ပြန်လည်ထားရှိပေးပါသည်။ Browser များနှင့် အက်ပ်အများစုသည် system proxy ကို လိုက်နာကြသော်လည်း proxy ဆက်တင်များကို လျစ်လျူရှုသော ပရိုဂရမ်အချို့က လိုက်နာခြင်း မရှိပါ။ Desktop အတွက် packet အဆင့် VPN (macOS တွင် Network Extension၊ Windows တွင် Wintun) သည် စီစဉ်ထားသော နောက်တစ်ဆင့် ဖြစ်ပါသည်။
တည်ဆောက်ထားပုံ
- Flutter codebase တစ်ခုတည်းမှ အက်ပ်လေးခုလုံးကို ထုတ်လုပ်ပြီး platform တိုင်းတွင် interface တူညီပါသည်။ Interface သည် အင်္ဂလိပ်ဘာသာဖြင့် ဖြစ်ပါသည်။
- Go core တစ်ခုတွင် SingLink ပရိုတိုကော ပါဝင်ပြီး platform တစ်ခုချင်းစီအတွက် native library အဖြစ် compile လုပ်ထားကာ အက်ပ်က ၎င်းကို တိုက်ရိုက်ခေါ်ယူပါသည်။
- ဖုန်းများတွင် core သည် Google ၏ gVisor user-space network stack (Apache-2.0) ကို ထပ်ထည့်ထားပြီး ၎င်းက စက်တစ်ခုလုံး၏ traffic ကို SingLink ချိတ်ဆက်မှုများအဖြစ် ပြောင်းလဲပေးပါသည်။
- အစမှစ၍ ရေးသားထားသည်။ Project အသစ်အတွက် Flutter က ထုတ်ပေးသော ဗလာ template မှလွဲ၍ ကုဒ်အားလုံး အသစ်ဖြစ်ပါသည်။ အခြား VPN အက်ပ်များမှ ကုဒ်၊ icon သို့မဟုတ် ပုံ တစ်ခုမျှ ယူထားခြင်း မရှိပါ။
Platform တစ်ခုချင်းစီ၏ အခြေအနေ
- macOS 13 သို့မဟုတ် နောက်ပိုင်း (Apple silicon): system proxy mode။ Build လုပ်ပြီး တကယ့်ချိတ်ဆက်မှုဖြင့် စမ်းသပ်ပြီးပါပြီ။
- Android 7 သို့မဟုတ် နောက်ပိုင်း: စက်တစ်ခုလုံးအတွက် VPN။ APK ကို build လုပ်ပြီး Android emulator ပေါ်တွင် တကယ့်ချိတ်ဆက်မှုဖြင့် စမ်းသပ်ခဲ့ပါသည်။
- iOS 15 သို့မဟုတ် နောက်ပိုင်း: စက်တစ်ခုလုံးအတွက် VPN။ iOS simulator တွင် build လုပ်၍ လည်ပတ်ပါသည်။ Simulator သည် VPN tunnel ကို မဖန်တီးနိုင်ဘဲ တကယ့် iPhone ပေါ်တွင် လည်ပတ်ရန် Apple Developer အကောင့် လိုအပ်ပါသည်။
- Windows 10 နှင့် 11 (x64): system proxy mode။ Core library ကို build လုပ်ပြီးပါပြီ။ အက်ပ်ကိုမူ Windows ပေါ်တွင်သာ compile လုပ်ရမည်ဖြစ်ပြီး ၎င်းကို လုပ်ဆောင်ပေးသော GitHub Actions workflow တစ်ခု repository တွင် ပါဝင်ပါသည်။
ရိုးသားစွာ ဖော်ပြသော ကန့်သတ်ချက်များ
- Prototype တစ်ခုသာ ဖြစ်သည်။ ၎င်းကို developer များ၊ သုတေသီများနှင့် အစိတ်အပိုင်းများ မည်သို့ အလုပ်လုပ်သည်ကို ကြည့်လိုသူတိုင်းအတွက် ရည်ရွယ်ပြီး တရားဝင်အက်ပ်များကို အစားထိုးရန် မဟုတ်ပါ။
- ဖြန့်ဝေရန် အပိုအဆင့်များ လိုအပ်သည်။ Mac အတွက် အများသုံး ထုတ်ဝေမှုတွင် Apple signing နှင့် notarization လိုအပ်ပြီး တကယ့် iPhone အတွက် Apple Developer အကောင့် လိုအပ်ကာ Android build များကို test key ဖြင့် sign လုပ်ထားပါသည်။
- macOS ပံ့ပိုးမှုဆိုသည်မှာ လက်ရှိတွင် Apple silicon (M-series) Mac များပေါ်ရှိ macOS 13 သို့မဟုတ် နောက်ပိုင်းဗားရှင်းကို ဆိုလိုပါသည်။
- Desktop တွင် system proxy mode ကို အသုံးပြုသည်၊ ထို့ကြောင့် proxy ဆက်တင်များကို လျစ်လျူရှုသော ပရိုဂရမ်များကို မကာမိသေးပါ။
- နောက်ခံ ပရိုတိုကောသည် မူကြမ်းသာ ဖြစ်သည်။ ၎င်းကို အတွင်းပိုင်း လုံခြုံရေးသုံးသပ်မှု ပြုလုပ်ပြီးသော်လည်း third-party audit မပြုလုပ်ရသေးဘဲ တရုတ်ပြည်မကြီးတွင်လည်း လက်တွေ့ စမ်းသပ်ထားခြင်း မရှိသေးပါ။
- ဆာဗာအမည်များကို ဆာဗာက ပို့သည့်အတိုင်း ပြသပါသည်။ Interface တစ်ခုလုံး အင်္ဂလိပ်ဘာသာဖြင့်သာ ဖြစ်စေရန် ဆာဗာများကို အင်္ဂလိပ်လို အမည်ပေးပါ။
Build လုပ်ပြီး ပါဝင်ကူညီပါ
Platform တစ်ခုချင်းစီအတွက် core နှင့် အက်ပ်ကို build လုပ်ပုံကို repository ရှိ README တွင် ရှင်းပြထားပါသည်။ ပရိုတိုကော core သည် ၎င်း၏ ကိုယ်ပိုင် repository ဖြစ်သော SingLinkLabs / singlink-protocol တွင် ရှိပါသည်။
မေးခွန်းများ၊ bug အစီရင်ခံစာများနှင့် Pull Request များကို GitHub တွင် ကြိုဆိုပါသည်။ လုံခြုံရေး အားနည်းချက်များကို public Issue တွင် မတင်ဘဲ သီးသန့် တိုင်ကြားပေးပါ — လုပ်ငန်းစဉ်ကို ပရိုတိုကော repository ရှိ SECURITY.md တွင် ဖော်ပြထားပါသည်။
လိုင်စင်နှင့် ကုန်အမှတ်တံဆိပ်များ
ကုဒ်ကို Apache-2.0 ဖြင့် လိုင်စင်ပေးထားပါသည် — လိုင်စင်၏ စည်းကမ်းချက်များအတိုင်း စီးပွားဖြစ်အပါအဝင် အသုံးပြုခြင်း၊ ပြင်ဆင်ခြင်းနှင့် ပြန်လည်ဖြန့်ဝေခြင်းတို့ ပြုလုပ်နိုင်ပါသည်။ "SingLink" နှင့် "SingLinkVPN" အမည်များ၊ ၎င်းတို့၏ တရုတ်အမည်များနှင့် logo တို့သည် SingLinkLabs ၏ ကုန်အမှတ်တံဆိပ်များ ဖြစ်ပြီး ၎င်းတို့ကို အသုံးပြုခွင့် လိုင်စင်က မပေးပါ။ Fork များသည် ၎င်းတို့၏ ကိုယ်ပိုင်အမည်နှင့် icon ကို အသုံးပြုရပါမည်။ အက်ပ်တွင် gVisor network stack ပါဝင်ပြီး ၎င်းသည်လည်း Apache-2.0 ဖြင့် လိုင်စင်ပေးထားပါသည်။

