Сайн байна уу, Хабаровскийн оршин суугчид! Та үнэхээр өөр хот, улс, тив рүү зөөвөрлөхийг үнэхээр хүсч байсан нөхцөл байдалтай тулгарч байсан уу? Надад ийм хэрэгцээ байнга тулгардаг тул хаана ч, хэдхэн секундын дотор ажиллуулж болох өөрийн VPN сервертэй болох боломж маш яаралтай байсан.Энэ нийтлэлд би өөрийн байхдаа бодож байсан төслийнхөө талаар ярихыг хүсч байна. бэлэн шийдлийг хайж байгаа бол энэ тохиолдолд Docker нь хамгийн бага тохиргоо, аюулгүй байдлын хүлээн зөвшөөрөгдсөн түвшний OpenVPN серверийг хурдан тохируулах боломжийг танд олгоно.
Эрьт урьдын түүх
Энэ үйлчилгээг физик сервер эсвэл виртуал хувийн сервер, эсвэл өөр контейнер удирдлагын систем доторх чингэлэгийн зай ч бай аль ч машин дээр ажиллуулах чадвар маш чухал байсан. Миний харц тэр даруй Докер руу тусав. Нэгдүгээрт, энэ үйлчилгээ түгээмэл болж байгаа тул илүү олон үйлчилгээ үзүүлэгчид урьдчилан суулгасан бэлэн шийдлүүдийг санал болгож байна; хоёрдугаарт, терминал дээрх нэг командыг ашиглан үйлчилгээг татан авч ажиллуулах боломжтой зургийн төвлөрсөн хадгалалт байдаг. Ийм төсөл аль хэдийн байх ёстой гэсэн санаа төрж, би маш их хайсан. Гэхдээ миний олж мэдсэн төслүүдийн ихэнх нь хэтэрхий төвөгтэй байсан (та байнгын өгөгдөл хадгалах зориулалттай контейнер үүсгэж, өөр өөр параметр бүхий програмтай контейнерийг хэд хэдэн удаа эхлүүлэх шаардлагатай байсан), эсвэл эрүүл мэндийн баримт бичиггүй эсвэл бүрмөсөн орхигдсон. Хүлээн зөвшөөрөгдөх зүйл олдсонгүй. , Би таны төсөл дээр ажиллаж эхэлсэн. Баримт бичгийг судлах, код бичих, дибаг хийхээс өмнө нойргүй хоносон байсан ч эцэст нь миний үйлчилгээ өдрийн гэрлийг харж, чиглүүлэгчийн монохром LED самбарын бүх өнгөөр гялалзаж эхлэв. Тиймээс би танаас хайрлаж, ивээхийг хүсч байна -
Ажиллуулах
Үйлчилгээг эхлүүлэхийн тулд бидэнд хэд хэдэн зүйл хэрэгтэй:
- Сервер: физик эсвэл виртуал. Онолын хувьд docker-within-docker горимд ажиллах боломжтой, гэхдээ би энэ сонголтыг өргөнөөр туршиж үзээгүй;
- Үнэндээ Докер. Олон хостинг үйлчилгээ үзүүлэгчид Докер дээр бэлэн шийдлүүдийг санал болгодог;
- Нийтийн IP хаяг.
Хэрэв бүх нарийн ширийн зүйл байгаа бол серверийнхээ консол дээр дараах тушаалыг ажиллуулахад л хангалттай.
docker run --cap-add=NET_ADMIN
-it -p 1194:1194/udp -p 80:8080/tcp
-e HOST_ADDR=$(curl -s https://api.ipify.org)
alekslitvinenk/openvpn
Анхааралтай уншигч серверийн IP хаягийг ашиглан автоматаар тодорхойлогддогийг анзаарсан байх ipify.org. Хэрэв ямар нэг шалтгааны улмаас энэ нь ажиллахгүй бол та хаягийг гараар зааж өгч болно. Хэрэв өмнөх бүх алхмууд зөв хийгдсэн бол консол дээр үүнтэй төстэй зүйл харагдах болно:
Sun Jun 9 08:56:11 2019 Initialization Sequence Completed
Sun Jun 9 08:56:12 2019 Client.ovpn file has been generated
Sun Jun 9 08:56:12 2019 Config server started, download your client.ovpn config at http://example.com/
Sun Jun 9 08:56:12 2019 NOTE: After you download you client config, http server will be shut down!
Бид зорилгодоо ойрхон байна: одоо бид хуулбарлах хэрэгтэй
Видео заавар
Энэхүү видео заавар нь DigitalOcean дээр үйлчилгээг ашиглах дэлгэрэнгүй зааврыг агуулдаг.
EDIT1:
- Нийтлэлийн алдааг зассан,
- Сэтгэгдэлд хариулахдаа би энэ мэдээллийг энд оруулахаар шийдсэн: iptables-тэй ажиллахын тулд давуу эрхтэй туг хэрэгтэй.
EDIT2:
- Зургийг эхлүүлэх командыг сайжруулсан: одоо энэ нь давуу эрхтэй туг шаарддаггүй
- Орос хэл дээрх видео гарын авлагын холбоосыг нэмсэн:
youtu.be/A8zvrHsT9A0
Эх сурвалж: www.habr.com