Pi-ді Wi-Fi-дан кабельге ауыстыру бес минуттық жұмыс болып көрінеді және көшіруді бір емес, төрт бөлек параметр ретінде қарастырсаңыз ғана солай қалады. Клиенттеріңіз қоңырау шалатын соңғы нүктенің атауы дәл сол күйінде қала алады, ал астындағы мекенжай өзгереді. Шын мәнінде сынатын нәрсе — ескі мекенжайға бекітілген тыңдаушы, әлі де сымсыз lease-ке бағытталған портты қайта бағыттау немесе сіз жабылды деп ойлаған интерфейстен шығатын қайтару маршруты. Бұл нұсқаулық әр қадамда қалпына келтіру жолын ашық ұстайды, сондықтан сәтсіз ауысу тек қайта жүктеуге тұрады.

Бірдеңені ажыратпас бұрын төрт жауаптыны жазып алыңыз

Төрт параметр ауысудың өтуін шешеді: Pi мекенжайы, байлау мекенжайы OpenVPN, маршрутизатордың қайта бағыттау мақсаты және жауаптар жүретін жол. Төртеуін де кабельге тимес бұрын жазып алыңыз, өйткені сымсыз lease жоғалған соң ескі мәндерді машинадан оқи алмайсыз. Кабельдік интерфейс сымсыз профильді мұрагерлікке алмайды, ал Bookworm-да мекенжай NetworkManager-де тұрады, Bullseye оны dhcpcd.conf ішінде ұстайды. Сымсыз MAC мекенжайын бекіткен резервация eth0 туралы ештеңе айтпайды. Жаңа мекенжайды өзінің дәлелі қажет жаңа тағайындау ретінде қарастырыңыз.

Old wireless lease:   10.42.7.24/24 on wlan0
New wired address:    10.42.7.31/24 on eth0
Client endpoint:      vpn.lab.example:1194/udp

Тыңдаушы — екінші жауапты. Егер қызмет нақты байлау мекенжайымен іске қосылса, сокет ескі интерфейспен бірге өледі; егер ол барлық мекенжайларды байласа, сокет аман қалады және маршрутизатор ережесі түзетуді қажет ететін жалғыз нәрсе болып қалады.

Қайта бағыттау мақсаты мен қайтару жолы — адамдар өткізіп жіберетін жауаптылар. Әлі де 10.42.7.24-ке көрсететін қайта бағыттау кіріс қол алысуларын Pi-де жоқ мекенжайға жібереді, сондықтан клиенттер сервер жағында бірде-бір журнал жолынсыз тайм-аутқа түседі. Екі арна да қысқа уақыт белсенді болғанда қайтару жолы маңызды, өйткені Pi маршруттау кестесі артық көретін интерфейстен жауап береді, ал бұл әрдайым пакет келген интерфейс бола бермейді. Төмендегі маршрут іздеуі ядро қай көзді таңдайтынын көрсетеді.

Жаңа мекенжайға сенбес бұрын нақты сокетті оқыңыз

Конфигурация файлдары ниетті сипаттайды, ал сокет шындықты сипаттайды. Есіңіздегі конфигурацияға сенудің орнына жұмыс істеп тұрған қызметтен оның неге байланғанын сұраңыз. OpenVPN 2.6 нұсқаулығы --local-ды бір мекенжайға байлау деп анықтайды және оны өткізіп жіберу әрбір интерфейсті байлайтынын атап өтеді.

sudo systemctl cat openvpn-server@server | grep -n -- '--local'
sudo ss -lunp '( sport = :1194 )'

Күй бағанының орнына жергілікті мекенжай бағанын оқыңыз. 10.42.7.24:1194 көрсететін жол сокеттің жоюға дайындалып жатқан мекенжайға бекітілгенін білдіреді, ал 0.0.0.0:1194 немесе *:1194 демон интерфейс өзгерісін өзі қадағалайтынын білдіреді. Егер мекенжай бекітілген болса, тірі сокетті қолмен қайта жазудың орнына профильді өңдеп, бірлікті қайта іске қосыңыз, содан кейін қызметтің сертификат пен кілт файлдарына әлі жететінін растаңыз.

Көшіруді сізді қолжетімді ұстайтын тәртіппен өткізіңіз

Мұнда тәртіп жылдамдықтан маңыздырақ. Сымсыз арна әлі жұмыс істеп тұрғанда кабельдік арнаны көтеріңіз, жаңа мекенжай мен қайтару жолын растаңыз, содан кейін ғана сымсыз профильді жабыңыз. Бұл реттілік ауыстырғыш дәлелденгенше жұмыс сессиясын ашық ұстайды.

ip -br addr show eth0
ip route get 203.0.113.10
nmcli -g ipv4.method,ipv4.addresses con show "Wired connection 1"

Бірінші команда eth0 көздеген мекенжайды алды ма, соған жауап береді, ал екіншісі ядро сыртқы межелі үшін қолданатын бастау көзін басып шығарады, сондықтан оны өзгеріске дейін және кейін іске қосыңыз. Егер бұл көз әлі сымсыз мекенжай болса, кабельдік арна әлі басым жол емес және сыртқы тест OpenVPN-ге қатысы жоқ себеппен сәтсіз болады. Қайта бағыттауды тимес бұрын маршруттау басымдығын түзетіңіз.

Екі арна да белсенді болғанда, Pi сымсыз әдепкі маршрутты артық көруі мүмкін, өйткені ол бірінші орнатылған немесе кабельдік арнаның метрикасы жоғары. Bookworm-да қолдау көрсетілетін параметр — ipv4.route-metric қосылымда, ал Bullseye-де балама — интерфейске тән metric жолы dhcpcd.conf файлында. Қайтару жолы бір команда қашықтықта қалуы үшін сымсыз арнаны өшірудің орнына оның басымдығын төмендетіңіз.

Туннельді LAN-нан емес, сырттан дәлелдеңіз

Диваннан жұмыс істейтін VPN қосылымы көрінгеннен аз дәлелдейді. LAN ішінен жария мекенжайға баратын трафик маршрутизаторлар әртүрлі іске асыратын hairpin немесе шағылысу ережелерінен өтеді, сондықтан сәтті LAN тесті бүлінген сыртқы жолмен қатар өмір сүре алады. Қабылдау тесті үшін ұялы деректері бар телефонды немесе желіден тыс кез келген хостты пайдаланыңыз. LAN әрекетін бөлек қосымша диагностика ретінде ұстаңыз.

Содан кейін журналды пакеттер келетін тәртіппен оқыңыз. Мүлде ештеңе жоқ болса, қол алысу Pi-ге ешқашан жетпеген, демек қайта бағыттау мақсаты немесе хосттың қорғаныс қабырғасы дұрыс емес. Басталып, кептелетін қол алысу кілттерге, сертификаттарға немесе MTU-ға меңзейді. Аяқталып, құлайтын сессия әдетте қайтару жолын немесе екінші әдепкі маршрутты білдіреді, ал клиенттің журнал жолы Initialization Sequence Completed туннельдің өзі көтерілгенін айтады.

sudo journalctl -u openvpn-server@server -n 40 --no-pager
sudo tcpdump -ni any udp port 1194 -c 20

Клиент қайта талпынып жатқанда сервер журналында ештеңе шықпаса, OpenVPN конфигурациясын оқуды тоқтатып, қайта бағыттау мақсатына оралыңыз. Түсірілім келу сұрағына секундтар ішінде жауап береді, ал жауапсыз кіріс пакеттер мәселені маршрутқа тарылтады.

Бір қадамдық қайтаруды сақтап, сымсыз профильді жабыңыз

Сымсыз профильді кабельдік конфигурация қайта жүктеуден өткенше орнатылған күйде қалдырыңыз. nmcli con show сізге қажет профиль атауларын тізіп береді, ал жойылған профильді ең нашар сәтте жадтан қалпына келтіруге тура келеді. Интерфейс атауын, мекенжайлау әдісін және метриканы қалған төрт мәннің қасына жазыңыз. Жазбадан тере алатын қайтару қалпына келтіруге тура келетіннен қымбат.

Сымсыз тәуелділікті жабу — жою емес, қасиетті өзгерту. connection.autoconnect no орнату арқылы тіркелгі деректері мен мекенжай тарихы бүлінбей қалады, ал Pi сіз кеткен желіге қайта қосылудан тоқтатылады.

nmcli con show
sudo nmcli con up "Wired connection 1"
sudo nmcli con mod "previously-used-wifi" connection.autoconnect no

Жұмысты аяқталды деп жарияламас бұрын төрт нәрсені растаңыз: қайта бағыттау мақсаты кабельдік мекенжайға сәйкес келеді, тыңдаушы қайта жүктеуден аман өтті, сыртқы клиент қол алысуды аяқтайды және Pi қайта жүктеуден кейін де кабельдік мекенжайда жауап береді. Қайта жүктеу — тек жұмыс істеп тұрған ядрода болған тағайындауды ұстап алудың ең арзан жолы. Төртеуінің қайсысы болса да сәтсіз болса, сымсыз профильді sudo nmcli con up арқылы қайта көтеріңіз және жазылған мәндерді белсенділерімен салыстырыңыз.

Қатысты мақалалар