Клиент на SoftEther при зареждане: AccountStartupSet и ред на демона
Клиентът може да стартира чисто и въпреки това да остави всеки акаунт разкачен. Задайте флага на акаунта, първо стартирайте демона, после проверете адаптера и маршрута.
След рестартиране машината отново е в мрежата с паднал тунел. Клиентът на SoftEther пази две състояния, които повечето хора смятат за едно: дали услугата работи и дали на запазен акаунт е разрешено да се вдигне заедно с нея. И двете трябва да са верни, а второто е флаг за отделен акаунт, а не настройка за зареждане. Изпълнете четирите проверки по-долу по ред и спрете при първия провал.
Уверете се, че акаунтът е отбелязан за автоматично стартиране
Флагът живее в записа на акаунта в собствената конфигурация на клиента, затова преинсталиране на клиента или възстановяване на празна директория го изчиства. Отворете конзолата за управление и погледнете списъка с акаунти, преди да промените нещо друго.
cd /opt/softether/vpnclient
./vpncmd
Изберете 2 за управление на VPN клиента и приемете локалния сървър с натискане на Enter.
AccountStartupSet
office-hub
exit
AccountStartupSet отбелязва акаунта като такъв, който да бъде вдигнат при стартиране на клиентската услуга. Той нито стартира услугата, нито създава нов акаунт, и не отпечатва нищо полезно, когато името е грешно. Прочетете списъка с акаунти отново след командата, защото печатната грешка е безмълвна и изглежда точно като флаг, който не е влязъл в сила.
Уверете се, че услугата стартира, и то достатъчно рано
В Linux клиентът работи като демон от собствената си директория и трябва да е вдигнат, преди която и да е стъпка при зареждане да опита да използва акаунта. Кратка кука, която сменя директорията и го стартира, е достатъчна в системи, които все още използват rc.local.
cd /opt/softether/vpnclient
./vpnclient start
Където rc.local вече го няма, напишете unit на systemd с явен WorkingDirectory и политика за рестартиране. Изпълнимият файл намира конфигурацията си спрямо мястото, от което е стартиран, така че unit без тази настройка може да стартира успешно и да не прочете нищо. Подредбата е втората половина на проблема: опит за свързване, който се изпълни, преди демонът да слуша, се проваля на моменти, което е много по-трудно за диагностика от постоянен провал. Политиката за рестартиране покрива третия случай, когато демонът умира тихо часове по-късно.
Проверете списъка с процеси, вместо да се доверявате на pid файл, оставен от предишното зареждане.
Уверете се, че адаптерът е получил адрес
Щом акаунтът се свърже, клиентът представя виртуален адаптер и адаптерът все още се нуждае от адрес. Хъб със SecureNAT обикновено отговаря на DHCP; хъб, свързан с физическа LAN, очаква вместо това да отговори сървърът на тази LAN.
ip -brief address
dhclient vpn_vpn1
Вземете името на интерфейса от списъка, защото числото в пример не е константа. Ако адресът трябва да е статичен, сложете го в мрежовата конфигурация на дистрибуцията за този интерфейс, така че да се прилага отново след събитие на връзката, а не само при зареждане. Еднократен скрипт оставя адаптера без адрес при първото повторно свързване на тунела през деня. Този провал изглежда като мъртъв тунел, макар акаунтът да е наред.
Адаптер без адрес е най-тихият провал в списъка, защото акаунтът все още съобщава, че е свързан.
Уверете се, че маршрутът води натам, където мислите
Трафикът може да се провали дори при здрава връзка и валиден адрес. Попитайте ядрото кой интерфейс би използвало за дестинация в подмрежата на хъба, после сравнете този отговор с тунела.
ip route get 10.10.20.15
Локална подмрежа, която се припокрива с обхвата на хъба, печели, защото маршрутът ѝ е по-конкретен и вече е инсталиран.
Това е решение за номериране, а не бъг на клиента, и рестартирането на услугата няма да го промени. Конфигурацията на резолвера е другата половина: адрес без работещ DNS сървър дава тунел, който минава всяка проверка на връзката и все още не може да отвори име.
Запишете четирите проверки в бележките за преизграждане
Запишете името на акаунта, командата за стартиране на услугата и името на интерфейса заедно, защото преизграден хост възстановява данните на акаунта, но не и куката на операционната система, която стартира демона. Те живеят на различни места и обикновено се архивират от различни хора.
Флагът е един ред за повторно прилагане и лесно се забравя.
Пазете реда: флаг, услуга, адрес, маршрут. Контролен списък, който започва по средата, дава много уверени грешни отговори.