Колдонмодо эч кандай көйгөй жок жана туннелде эч кандай көйгөй жок, бирок такта жүктөлбөй жатат. Кызмат network_mode: service:vpn менен иштегенде, ал VPN контейнеринин тармактык ат мейкиндигин бөлүшөт, башкача айтканда анын угуучусу жана жарыяланган порттору кызматка эмес, ошол ат мейкиндигине таандык. Мындан үч чечим келип чыгат: колдонмо кайда байланышат, кайсы контейнер портту жарыялайт жана башкаруу жолу канчалык кууш. Аларды туура эмес тартипте жасасаңыз, ар бир өзүнчө жөндөө туура көрүнөт, ал эми айкалыш иштей албайт.

Порттун ат мейкиндиги кимге таандык

Жалпы ат мейкиндигинде көз каранды кызматка ports: жазуусун кошуу эч кандай пайда бербейт, ал эми бир нече тармактык параметрлер ага долбоор боюнча колдоого алынбайт. Анын ордуна ат мейкиндигине ээ болгон контейнерде жарыялаңыз. Ошол контейнер хостто дареги көрүнгөн контейнер да, ошондуктан карта бир жазуу катары окулат, ар бир кызматка бирден эмес.

services:
  vpn:
    image: vpn-client-image
    cap_add: [NET_ADMIN]
    ports:
      - "127.0.0.1:8080:8080"
  app:
    network_mode: "service:vpn"

Картанын сол жагындагы дарекке көңүл буруңуз. 127.0.0.1 ге байлоо жарыяланган портту хосттун loopback интерфейсинде кармайт, бул адатта башкаруу интерфейси каалаган нерсе. 0.0.0.0 ге байлоо аны хосттун бардык интерфейстеринде ачат, жана бул ыңгайлуулук эмес, башка коопсуздук чечими.

Колдонмону ат мейкиндиги күткөн жерде угууга мажбурлаңыз

Ат мейкиндигинин ичинде 127.0.0.1 ге байланган угуучуга анын ичинен гана жетүүгө болот. Жарыяланган хост порттору сырттан келет, ошондуктан карта иштеши үчүн колдонмо кененирээк дарекке байланышы керек. Бул көпчүлүк серверлерде бир саптык өзгөртүү, жана дал ушул кадамды адамдар контейнерсиз жайгаштыруу үчүн жазылган бекемдөө нускамасын көчүргөндөн кийин өткөрүп жиберишет.

docker compose exec app ss -lntp
docker port vpn
curl -sS -o /dev/null -w '%{http_code}\n' http://127.0.0.1:8080/

Колдонмонун ичиндеги угуучулардын тизмеси байлоо дареги тууралуу чындыкты айтат, ал эми docker port ээси чындыгында эмнени жарыялаганын көрсөтөт. Эгер биринчиси 127.0.0.1 көрсөтсө, экинчиси хост картасын көрсөтсө, сиз VPN конфигурациясына тийбестен эле дал келбестикти таптыңыз.

Башкаруу жолунун кирүү жолун тандаңыз

Үч орундуу жайгаштыруу бар. VPN контейнеринде жарыялап, ага хосттон же жергиликтүү тармактан жетиңиз. Ат мейкиндигинин алдына тескери прокси коюп, проксиге жалгыз ачык портту бериңиз. Же тактаны ат мейкиндигинин ичинен гана exec сессиясы же SSH туннели аркылуу жеткиликтүү кылып кармаңыз, бул эң аз ачыктоо жана эң аз ыңгайлуулук.

Кайсысы ылайыктуу экени интерфейс кимге жана кайдан керек экенине байланыштуу. Ошол эле хосттогу жалгыз администраторго loopback байланышы жетет. VPN аркылуу жеткен командага ойлонулган жол жана аты бар ээ керек. Прокси вариантын тандоо сизге TLS жана кирүү журналдарын берет, бирок жаңыртылып турушу керек дагы бир компонентти талап кылат.

Баарын ачпастан башкаруу портун ачыңыз

VPN кардарынын өзүнүн жергиликтүү кирүү же кулпулоо саясаты кирүүчү башкаруу сурамын таштап салышы мүмкүн, чыгуучу туннель мыкты иштеп турса да. Көздөлгөн булак жана порт үчүн бир документтелген өзгөчөлүккө уруксат бериңиз, анан туннелдин кадимки коргоосу өзгөрбөгөнүн ырастаңыз. Такта жүктөлүшү үчүн өзгөчө өчүргүчтү өчүрүү реалдуу көзөмөлдү браузердин өтмөгүнө алмаштыруу болуп саналат.

Колдонмонун өзүнүн аутентификациясын күйүк абалда калтырыңыз. VPN ге туташкан стектин ичинде болуу ар бир жергиликтүү колдонуучуга же хостко жетип турган ар бир түзмөккө укук бербейт, ал эми туннелдин артындагы аутентификациясыз админ панели дагы эле аутентификациясыз админ панели.

Башкаруу түзмөгүнөн текшериңиз, анан кийин кайра текшериңиз

Кызматты чындыгында башкара турган машинадан сынап көрүңүз, хосттон эмес, анан колдонмого керектүү интернет жолун өзүнчө текшериңиз. Башкаруудагы ийгилик бир багытты далилдейт жана чыгуу тууралуу эч нерсе айтпайт.

Стек кайра түзүлгөндөн кийин кайра сынап көрүңүз. Алмаштырылган тармак ээси колдонмо туташкан ат мейкиндигин өзгөртөт, ал эми жаңыртууга чейин иштеген URL андан кийин эч жерге шилтемебеши мүмкүн. Жарыяланган картаны жана байлоо дарегин жазып коюңуз, ошондо кийинки кайра куруу кайталанган иликтөө эмес, эки мүнөттүк текшерүү болот.

Тектеш макалалар