Нужна ви е още една частна подмрежа, да речем 10.60.0.0/24, която профилът още не съдържа. На лаптоп добавяте маршрут и продължавате. На Android VPN е приложение, устройството tun принадлежи на това приложение и няма таблица за маршрутизация, която да редактирате без root. Маршрутът все пак трябва да съществува, но влиза в профила, който клиентът зарежда, и работи само ако другата страна е съгласна. Следват редакцията, повторното свързване, страната на сървъра и връщането назад.

Преди редакцията: какво може и какво не може маршрутът

Маршрутът отговаря на един въпрос: кой интерфейс да носи трафика към тази дестинация. Той не дава никакви права. Ако собственикът на мрежата не е съгласен този телефон да достига тази подмрежа, правилният маршрут дава конфигурация, която изглежда правилна, и тихо отпадане на шлюза, а следващия час ще редактирате грешния файл.

Първо вземете това съгласие, писмено, ако мрежата има собственик. После отбележете какво не правите: не давате на телефона адрес в тази LAN, не сменяте слушателя на сървъра и не избирате сайт по име на хост. Това са четири различни промени и само първата е ваша.

The route gives youThe route does not give you
A destination prefix associated with the tunnelPermission to forward at the gateway
A path for the phone's own trafficA return route on the target host
A scope for the client's virtual interfaceA name in DNS, or HTTPS identity

Редактирайте профила, който клиентът действително зарежда

За съвместим клиент, който импортира обикновен текст с опции OpenVPN, добавката е един ред:

route 10.60.0.0 255.255.255.0

Добавете го в тялото на профила, близо до другите директиви за маршрутизация, и запазете крайната точка на оператора, сертификатите, работата с ключове и редовете за проверка точно каквито са били. Не поставяйте цял стар пример, за да вземете един ред: компресията, абсолютните пътища и остарелите настройки на шифрите пътуват с него и ви струват отделна сесия за отстраняване на грешки.

Стъпката, която хората пропускат, е собствеността на файла. Ако приложението е импортирало профил, копието, което използва, е на приложението, и редакцията на изтегления оригинал не променя нищо. Използвайте поддържания от клиента редактор или импортирайте редактирания файл отново през пътя за обновяване, и потвърдете името на активния профил, когато има няколко подобни имена. Запишете кой сте променили.

Ако профилът вече съдържа route-nopull, не се инсталира нито един маршрут от сървъра и всеки префикс, който телефонът трябва, се изброява изрично. Това е законен дизайн, но означава, че пропуснат ред изглежда точно като отказ от сървъра.

Свържете се отново и проверете на устройството

Първо прекъснете, после се свържете отново към конкретния профил, който сте редактирали, вместо да оставите приложението да възстанови последната сесия. Отворете журнала на връзката и потвърдете, че клиентът е прочел новия ред; директива за маршрут, която интерфейсът игнорира, е чест резултат от редакция на грешно копие.

Тествайте дестинацията по адрес, не по име. TCP проверка към известен порт на услуга е по-информативна от ping, защото много хостове отговарят на ICMP, докато портът на услугата е филтриран. Ако адресът отговаря, а име не, имате въпрос за резолвер, не за маршрутизация.

Тук спадат и две проверки на обхвата. Per-app VPN означава, че адресен маршрут може да съществува, докато приложението, с което тествате, е извън включения набор, затова тествайте с приложение, което наистина е вътре. А префикс IPv4 не казва нищо за пътя IPv6; ако услугата е с двойна поддръжка, добавете съответния маршрут IPv6 или очаквайте клиентът да предпочете път, който не сте искали.

Един отрицателен резултат си струва да разпознаете рано: ако маршрут на пълен тунел вече покрива 0.0.0.0/0, префиксът не липсва и повторното добавяне не променя нищо. Двойното покритие не поправя отказ от страна на сървъра или липсващ отговор.

Довършете пътя на сървъра

Три неща трябва да са верни извън телефона. Шлюзът се нуждае от маршрут към дестинацията и разрешение да препраща източника на телефона натам. Целта трябва да приема този източник и да връща отговори през шлюза, или дизайнът се нуждае от умишлен превод на изхода. Опцията за маршрут от ръководството на OpenVPN покрива директивата от страна на клиента; препращането и обратната маршрутизация са отделни настройки на отделни машини.

Ако дестинацията стои зад друг VPN клиент, а не директно зад шлюза, сървърът се нуждае от iroute за подмрежата на този партньор. Тази директива е на сървъра и описва кой клиент притежава префикс; телефонът не може да я даде от своя профил и никаква редакция от страна на клиента не я замества.

Проверете обратния път изрично. Отговор, който излиза по маршрута по подразбиране вместо през тунела, дава класическия симптом на полуотворена връзка: връзката е установена в една посока и нищо не се връща. Преводът на източника на шлюза е законно решение, когато целта не може да върне маршрут, но това е политическо решение със собствени последствия.

Връщане назад и приемане

Запазете предишния профил преди редакцията. Ако промяната влоши нещата, възстановете това копие по същия път за повторно импортиране, свържете се и потвърдете, че старото поведение се връща; това потвърждава, че сте променили това, което сте мислили. Връщане, което не възстановява старото състояние, означава, че приложението държи трето копие, което не сте намерили.

Приемете промяната, когато са изпълнени четири неща, тествани в този ред след ново свързване: дестинацията отговаря на порта на услугата, частното име се разрешава, ако се очаква, HTTPS все още валидира предвиденото име на хост и всичко работи след рестарт или преминаване от Wi-Fi към мобилна мрежа. Последната проверка хваща маршрут, който съществува само докато Android не възстанови тунела.

  • Потвърдете, че собственикът на мрежата разрешава дестинацията, преди да промените нещо.
  • Поставете маршрута в профила, който клиентът зарежда, после импортирайте отново и се свържете.
  • Проверявайте по порт на услуга, в обхвата per-app, за правилното семейство адреси.
  • Поправете препращането, обратната маршрутизация и iroute на сървъра, не на телефона.
  • Пазете копие за връщане назад и тествайте отново след рестарт.

Подобни статии