VPN сервер на Android-у: root не чини телефон доступним
Три одвојена проблема одлучују да ли телефон може да служи VPN клијенте: долазни пут, модел привилегија и прослеђивање. root дотиче само средњи.
Root мења које мрежне операције процес сме да покуша. Не даје телефону јавно доступну адресу, не резервише долазно мапирање код оператера и не одржава демон живим након рестарта. Ако одлучујете да ли Android телефон може да делује као VPN сервер, раздвојите три питања: може ли предвиђени клијент уопште да дође до слушаоца, који модел привилегија треба имплементацији сервера и шта се мора прослеђивати када је тунел подигнут.
Ко мора да дође до телефона и одакле
Клијент на истој дозвољеној LAN мрежи и клијент на мобилним подацима тестирају две различите мреже. Прво решите коју намеравате, јер се одговори не преносе. На Wi-Fi мрежи нежељени долазни саобраћај обично тражи мапирање на узводном рутеру и употребљив јавни пут иза њега. На мобилној мрежи carrier-grade NAT значи да је долазни IPv4 често недоступан, без обзира шта телефон дозвољава.
Та последња тачка је она коју root не може да дотакне. Локални firewall телефона и NAT оператера су различити системи, а промена првог не утиче на други. Приватна адреса интерфејса, икона мобилних података или socket који слуша нису доказ доступности. Ако пут преко оператера ипак нуди глобално рутабилан IPv6, и даље вам треба намерна политика слушаоца и firewall-а за њега; имати адресу није исто што и прихватати везе.
| Client path | What actually decides reachability |
|---|---|
| Same LAN | The phone's listener and its local firewall |
| Wi-Fi, from the internet | A mapping on the upstream router plus a usable public path beyond it |
| Cellular IPv4 | The carrier's NAT, which the handset does not control |
| Cellular IPv6 | Address, listener and firewall policy together |
Служење и прослеђивање су два различита успеха
Завршено VPN руковање доказује да тунел постоји. Не доказује да клијент може да дође до LAN мреже иза телефона, нити да телефон може да служи као излаз у интернет. То су одвојене конфигурације изграђене на унутрашњем плану адреса, рутама, понашању при повратку и уско ограниченој политици прослеђивања за задатак који заиста желите.
Начин неуспеха је предвидив: руковање прође, клијент покаже повезаност, а ништа се не учита. Пре него што отклоните грешке на клијенту, одлучите коју од две улоге градите. Даљински приступ уређају на мрежи телефона и излаз у интернет кроз пун тунел траже различита правила прослеђивања, а одобравање оба када сте хтели једно шири изложеност без додавања могућности коју сте тражили.
Модел привилегија је избор, а не root или ништа
Конвенционални OpenVPN демон који користи kernel TUN уређај треба одговарајуће способности, приступ чвору уређаја и сарадњу Android-ове безбедносне политике. Root није свеобухватно изузеће од SELinux-а; привилеговани процес је и даље ограничен политиком платформе. Зато бинарни програм који мирно ради на Linux серверу може да падне на телефону без очигледне грешке о дозволама.
Имплементација gateway-а у корисничком простору може имати сасвим другачији модел привилегија, па је уврежена тврдња да сваки VPN сервер на Android-у треба root преширока. Root вам купује могућност да покушате више операција, не гаранцију да ће бити дозвољене или да је резултат доступан.
Android-ова сопствена регистрација VPN услуге је опет одвојен механизам. Апликацији даје управљани клијентски интерфејс са дефинисаним животним циклусом; то није универзални инсталатер сервера, а покретање демона из терминала не даје му управљање сталног рада, политику по апликацији ни сопствени пут опоравка.
Ако желите излазну тачку, промените архитектуру
Када је циљ једноставно даљински излаз у интернет кроз телефон, а не компатибилност са постојећим OpenVPN профилом, боље одговара подржани излазни чвор у overlay мрежи. Tailscale документује улогу Android излазног чвора са својим корацима регистрације, ауторизације и избора клијента.
Компромис је стваран и вреди га јасно рећи: прихватате другачији протокол, другачији модел поверења и зависност од тог налога и услуге координације. То не чини да се неизмењени OpenVPN клијент придружи overlay мрежи и не даје вам OpenVPN слушаоца на јавној адреси.
Шта имплементацији још треба
Који год пут одабрали, оперативне основе одлучују да ли ће издржати недељу. Чувајте акредитиве сервера приватним, издајте различите идентитете клијената и планирајте опозив пре него што вам затреба. Одлучите како стижу ажурирања, шта одржава услугу покренутом у позадини и како се опоравља након рестарта или промене мреже.
Избегавајте пречице које изгледају згодно: застарео статични бинарни програм, тврдо кодирана имена интерфејса и стартну скрипту која брише постојећу firewall политику. Затим прихватите резултат само уз конкретан тест: овлашћени даљински клијент долази до жељеног ресурса, забрањена одредишта остају недоступна, а уређај се сам враћа након подржаног догађаја животног циклуса. Root приступ је један могући састојак тог исхода и ретко одлучујући.