Raspberry Pi VPN серверин Ethernetке кантип жылдыруу керек
Raspberry Pi VPN серверин Wi-Fiден Ethernetке жылдырыңыз: акыркы чекиттин аты, угуучуну байлоо, портту багыттоо жана бир кадамдык кайтаруу жолу өзгөрбөйт.
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 аркылуу кайра көтөрүңүз жана жазылган маанилерди активдүүлөрү менен салыштырыңыз.