A lokacin tashi, rukunin socket da ke daure tsayayyen adireshin VPN na iya kasawa kafin ramin ya ba shi adireshin, kuma sabis din da ke bayansa ba ya tashi. Maballi biyu suna kama da gyara kuma suna magance rabi daban-daban na wannan matsala. FreeBind yana barin systemd ya kirkiri mai saurare yayin da adireshin ba ya nan. After= yana tsara ayyuka kawai, don haka yana canza lokacin da abubuwa ke tashi ba tare da sa adireshin ya zo da wuri ba.

Matsaloli biyu daban, maballi biyu daban

Matsala ta farko ita ce gazawar daure: kernel yana kin saurare a adireshin da mai gida ba ya mallaka, don haka rukunin socket yana kasa nan take kuma ba a taba kunna sabis din ba. Matsala ta biyu ita ce gazawar shiri: adireshin yana wanzuwa daga karshe, amma wani abu yana kokarin amfani da shi kafin ramin ya dauki zirga-zirga. FreeBind yana magance ta farko kuma ba ya yin komai ga ta biyu. Umarnin tsari ba su magance ko daya kai tsaye ba, domin suna tantance abin da zai fara da wane tsari kawai. Ambaton gazawar da kake da ita a zahiri ita ce dukkan shawarar.

Tabbatar da wacece daga cikin biyun kake da ita daga jarida, ba daga bayanin sabis din ba. Gazawar daure tana ambaton adireshi kuma tana bayar da rahoton cewa ba za a iya ba da shi ba. Gazawar shiri takan bayyana daga baya, a matsayin lokaci ya kare ko an ki hadin da aka gani daga wani bangaren, yayin da a cikin log din akwai rukunin socket cikakke lafiya.

FreeBind: mai saurare yana nan kafin adireshin

FreeBind yana gaya wa kernel ya yarda da daure zuwa adireshin da ba na gida ba, ta yadda systemd zai iya kirkirar socket mai saurare a lokacin tashi kuma ya mika shi ga aikace-aikacen a duk lokacin da aikace-aikacen ya fara. Wannan shi ne manufar kunna socket, kuma dalilin da ya sa socket zai iya wuce sabis din da ke bayansa.

[Socket]
ListenStream=
ListenStream=10.8.0.1:8443
FreeBind=yes

Ba da komai na sharewa yana goge shigarwar saurare da aka gada daga rukunin mai kaya kafin a kara sabon, wanda ke hana mai saurare na wildcard da ya rage amsa a kowace interfeza. Maye gurbin adireshin da tashar da naka, kuma tabbatar da rukunin da ke aiki ba fayil din drop-in kadai ba. Yi amfani da drop-in a karkashin sunan rukunin maimakon gyara fayil din fakiti a wurinsa, domin sabuntawar fakiti na gaba zai sake rubuta gyaran kuma ba zai bar wata alama ta manufar ba. Sannan yi amfani da shi ta hanyar sake lodawa da sake farawa da rukunin socket ke tsammani.

Bayanin socket na systemd yana rubuta halin IPv4 da IPv6 da ke bayan wannan zabin, kuma muhimmin bayani shi ne ya shafi daurewa ne ba hanya ba. Babu wani abu a ciki da ke ba da adireshi ko fara VPN. FreeBind izini ne da aka ba mai saurare, ba maye gurbin interfeza ba.

After= da Wants=: tsari ba shiri ba ne

Tsari da bukata ginshikai ne daban, kuma hada su yana haifar da rukunai da ke tashi a tsarin da ya dace kuma suna kasa. After=vpn-client.service yana nufin kawai idan an fara ayyukan biyu, wannan yana jiran a fara dayan. Ba ya jawo VPN, kuma ba ya jira VPN ya gama hadawa.

Umarnin bukata kamar Wants= da Requires= suna kula da kunnawa, kuma sun bambanta a abin da ke faruwa idan dogaro ya kasa: daya yana ci gaba, dayan yana tsayawa. Babu daya daga cikinsu da ya san abin da ke nufin ramin da aka hada. Tsarin VPN na iya kasancewa yana aiki ba tare da an ba da adireshi ba, ko da an ba da adireshi kuma babu hanya zuwa abokin, kuma duka jihohin biyu suna biyan dogaron. Idan aikace-aikacen yana bukatar adireshin ya wanzu, tsara wannan sharadin a fili maimakon daukar farkon tsari a matsayin hujjar shiri.

Duba abin da rukunin ke bayyanawa a zahiri da systemctl cat da systemctl show -p After -p Wants -p Requires. Drop-in daga manyan fayiloli uku na iya kara umarnin da ba ka taba rubuta ba, kuma systemd yana karanta rukunin da ke aiki kawai.

Abin da network-online.target ba ya yi

Rukunin da aka tsara bayan network-online.target yana jiran mai kula da hanyar sadarwa ya bayyana cewa hanyar sadarwar tana amfani, wanda shine wurin daidaitawa a lokacin tashi ba sharadi mai ci gaba ba. Ba ya ce komai game da ko wani rami yana sama, kuma ba zai sake kunna ba idan VPN ya sake haduwa da tsakiyar rana. Daukar shi a matsayin mai lura da sake haduwa ita ce mafi yawan kuskuren karanta wannan manufa.

Aikin systemd yana rubuta wannan bambanci kai tsaye, kuma sakamakon a aikace shi ne duk abin da ke bukatar adireshin rami dole ne ya mallaki dogaron da kansa. Rukunin da ke jiran network-online sannan ya daure adireshin rami daidai ne kawai idan ramin ya taso da farko bisa kwatsam, kuma wannan kwatsam ne ba tsari ba.

Gwada yanayin rayuwar da ka zaba a zahiri

Gwada tashi mai tsabta, bukata bayan adireshin ya bayyana, da halin da zai kasance bayan VPN ya fadi ya dawo. Wadannan lokuta uku suna raba mai saurare mai aiki da sabis mai aiki.

systemd-analyze verify myapp.socket
systemctl cat myapp.socket
ss -ltn "sport = :8443"

Umarni na farko yana kama kurakurai na fayil din rukuni kafin sake tashi, na biyu yana nuna rukunin da aka hada, na uku kuma yana tabbatar da ko mai saurare yana nan da kuma a wane adireshi. Mai saurare a adireshin wildcard a inda ka yi tsammanin adireshin rami shi ne daidai ragowar da ListenStream mara komai ya kamata ya cire. Sake umarni na uku bayan VPN ya sake haduwa don ganin ko adireshin ya motsa.

Zabi yanayin rayuwa da gangan: ko dai mai saurare da aka daure da yanci wanda ke jiran adireshi mai tsayawa ya dawo, ko kuma sabis da ke tsayawa da ramin kuma ya sake farawa idan an dawo. Wadannan tsare-tsare ne daban kuma suna kasa ta hanyoyi daban. Sannan rike manufar shiga da ke da alaka da hanyoyin da ka nufa, domin daure adireshin manufa ba ya bukatar karbabbun fakiti sun zo ta hanyar da aka amince da ita.

Labarai masu alaƙa