Нэг серверийн профайлыг хоёр удаа эхлүүлэхэд хоёр дахь процесс 1194 портын хувьд хаяг аль хэдийн ашиглагдаж байна гэсэн алдаатай гарна. Ердийн тохиолдолд оношилгооны эхлүүлэлт зөрчил үүсгэсэн бөгөөд анхны инстанц клиентүүдэд бүрэн хэвийн үйлчилж байна. Энэ түүх эдгээр мэдээллийн ихэнхийг тайлбарладаг бөгөөд ямар нэг зүйлийг дахин эхлүүлэхийн өмнө үүнийг таних нь зүйтэй. Энэ нь шийдэх хамгийн хямд хувилбар юм.

Алдаа нь локал холболтыг дүрсэлдэг бөгөөд үүнээс цааш юу ч биш. Энэ нь үйлчилгээ үзүүлэгч портыг блоклож байна, клиент буруу нууц үг илгээсэн, эсвэл гэрчилгээний гинжин хэлхээ эвдэрсэн гэдгийг нотлох зүйл биш.

Яг холболтын алдааг уншина уу

Энэ бүлгийн хоёр алдаа өөр өөр утгатай бөгөөд тэдгээрийг хольсон хүнийг буруу давхаргад хүргэдэг. „Хаяг аль хэдийн ашиглагдаж байна“ гэдэг нь өөр сокет таны хүссэн төгсгөлийн цэгийг барьж байгааг илтгэнэ. „Хаяг боломжгүй“ гэдэг нь хүссэн хаяг энэ хост дээр одоохондоо байхгүй гэсэн үг бөгөөд энэ нь бэлэн байдлын асуудал, хуулбар биш.

systemctl status openvpn-server@lab --no-pager
journalctl -u openvpn-server@lab -n 20 --no-pager

Ямар нэг зүйлийг өөрчлөхийн өмнө алдааны текстийг хуулж аваарай, түүний дурдсан хаяг, портыг оруулаад. Интерфэйс гарч ирэхийг хүлээж буй үйлчилгээ хоёр дахь алдааг давтан бүртгэж, дараа нь хаяг үүссэн үед амжилттай холбогдоно; эхний алдааг бүртгэдэг үйлчилгээ хуулбарыг шийдэх хүртэл хэзээ ч амжилтгүй болно. Аль нэгийг нь харсанаа тэмдэглэх нь юу ч зарцуулдаггүй бөгөөд дэмий интерфэйс хайлтыг хэмнэдэг.

Сокетыг тоол, портыг биш

Портын дугаар нь бүрэн бус тооллого. Төгсгөлийн цэг нь дамжуулалт, хаягийн гэр бүл, локал хаяг, порт бөгөөд бүгд нэг сүлжээний нэрийн орон зайн дотор. Нэг дугаар дээрх UDP сонсогч ба TCP сонсогч нь өөр сокет бөгөөд өөр нэрийн орон зайд нэг дугаар дээрх хоёр процесс хэзээ ч тааралддаггүй.

ss -lunp | grep -F ':1194'
ss -ltnp | grep -F ':1194'
ss -lunp 'sport = :1194'

Эхлээд профайлын бодитоор ашигладаг дамжуулалтыг ажиллуулна уу. Дараа нь зөвхөн дугаар биш, локал хаягийн баганыг харна уу: wildcard холболт бүх локал хаягийг хамардаг тул нэг тодорхой хаяг хүссэн хоёр дахь процесс хэвлэсэн мөрүүд өөр байсан ч түүнтэй мөргөлдөж болно. Сокетыг дахин ашиглах сонголт ба платформын дүрэм яг үр дүнг тодорхойлдог тул энэ нь бүх байршуулалтад хэрэглэх дүрэм биш, ажиглалт байх ёстой.

Аль процесс үүнийг эзэмшиж байгааг олж мэдээрэй

Тоон төгсгөлийн цэгүүд ба процессын мэдээлэл таны эрх олгосон үед эзэмшигчийг тодорхойлдог бөгөөд танд хэрэгтэй зүйл бол эзэмшигч, програмын нэр биш. Хоёр OpenVPN процесс өөр профайл ажиллуулж болох бөгөөд сонсогчийг барьж буй процесс нь таны хамгийн бага хүлээсэн зүйл байж болно.

sudo ss -lunp 'sport = :1194'
sudo fuser -v -n udp 1194

Олж мэдсэнээ үйлчилгээний менежер, контейнер ажиллуулах орчин эсвэл өмнөх туршилтаас үлдсэн терминалын процессортой харьцуулна уу. Процессын дэлгэрэнгүй мэдээлэл байхгүй нь сокет эзэмшигчгүй гэдгийг нотлох зүйл биш; ихэвчлэн энэ нь асуулга хангалттай зөвшөөрөлгүйгээр ажилласан гэсэн үг. Мөн зөвхөн TCP жагсаалт UDP зөрчлийг арилгахгүй тул алдаанд дурдсан дамжуулалтыг шалгана уу. Зөвхөн процессын нэр нь аль профайл ачаалагдсаныг хэзээ ч хэлдэггүй бөгөөд яг профайл нь төгсгөлийн цэгийг тодорхойлдог.

Нэг эзэмшигч, эсвэл хоёр зохион бүтээсэн инстанц

Хэрэв байршуулалт нэг серверийг зорьж байгаа бол нэг амьдралын мөчлөгийн эзэмшигчийг хадгалж, түүнийг ажиглахын тулд хоёр дахь хуулбарыг эхлүүлэхийн оронд тухайн инстанцын журнал эсвэл тохируулсан логийг уншина уу. Хяналттай урд талын гүйлт үнэхээр шаардлагатай үед удирдомж буй инстанцыг санаатайгаар зогсоож, үүнийг хийхийн өмнө түүний үйлчилж буй клиентүүдийг харгалзана уу.

Хэрэв хоёр инстанц зорьж байгаа бол тэдэнд тусдаа сонсогч, бусад бүх зүйлийг тусдаа өгнө үү: хаягийн сан, виртуал интерфэйс, чиглүүлэлтийн бодлого, тохиргооны эзэмшил. Зөвхөн өөр порт нь сокетоос өөр юу ч тусгаарлахгүй бөгөөд хоёр сервер ижил сан, ижил чиглэлийн төлөө тэмцсээр байх болно.

Гурван богино зам нь энэ алдааны тухай хэлэлцүүлэг бүрт гардаг тул нэрлэх нь зүйтэй. Гэмтнийг харагдуулах дурын PID-г бүү ал. Мессежийг намжаахын тулд сокет хуваалцлыг бүү идэвхжүүл. Сервер профайлыг клиент маягийн холбогдоогүй тохиргоо руу бүү шилжүүл, учир нь энэ нь холболтын алдааг алга болгож, сервер нь анхны зөрчлөөс илүү оношлоход хэцүү хэлбэрээр хүрэх боломжгүй болно.

Портыг өөрчлөх нь зөвхөн шинэ сонсогч батлагдсан зохион байгуулалтын хэсэг байх үед л хууль ёсны хариулт бөгөөд үүнд дамжуулах дүрэм, клиентийн төгсгөлийн цэг багтана. Хэрэв тэдгээрийг шинэчлээгүй бол та зөрчлийг хэн ч олж чадахгүй газар зөөсөн байна.

Бусад бүхнээс өмнө холболтыг шалгаарай

Хязгаарлагдмал засварын дараа зорьсон инстанц идэвхтэй, түүний сонсогч хүлээж буй дамжуулалт дээр гарч байгаа, клиент холбогдох боломжтой гэдгийг баталгаажуулна уу. Амжилттай холболт нь зөвхөн локал сокетын үе шатыг дуусгадаг; энэ нь нэвтрүүлэлт эсвэл туннель боссны дараах урсгалын талаар юу ч баталгаажуулдаггүй.

ss -lunp 'sport = :1194'
systemctl is-active openvpn-server@lab
journalctl -u openvpn-server@lab -f

Хэрэв сокет байгаа бөгөөд клиент одоо ч бүтэлгүйтвэл үлдсэн асуудал доош урсгалд байгаа бөгөөд холболтын алдаа одоо түүх болсон. Яг энэ ялгаварлал нь яг мессежийг эхлээд уншихын бүх утга юм: нэг алдаа, нэг давхарга, нэг эзэмшигч. Ингэж уншвал дараагийн шинж тэмдэг таамаглалаас биш, мэдэгдэж буй төлөвөөс эхэлнэ.

Холбоотой нийтлэлүүд