Na fara daga waje, kamar yadda mai amfani zai yi: na buga sunan a cikin mai bincike na waya kan bayanan wayar hannu na kuma kalli yadda haɗin ke rataye har lokaci ya ƙare. Sunan ya warware, don haka DNS yana da kyau. Shafin tura tashoshi na na'urar fita ta gida shi ma yaƙi ne, domin adireshin WAN ɗinsa yana nuna 100.64.31.42, kuma wannan ba adireshin da mai bayarwa zai tura ni zuwa gare shi daga intanet ba. Wannan lambar ta bayyana dukan gazawar: layin yana bayan carrier-grade NAT, don haka adireshin jama'a a gefena na rami na mai bayarwa ne. Abin da ke gaba shi ne hanyar da na bi daga wancan shafin da ya rataye har zuwa sabis da ke amsawa.

Fara daga abokin ciniki ka shiga ciki

Kafin ka canza kowace ka'ida, tabbatar da inda sarkar ke tsayawa. A kwamfutar tafi-da-gidanka na gudanar da dig +short files.example.net kuma na sami adireshin VPS a baya, wanda ya kawar da tsohuwar DNS a injina. Sannan curl -v --connect-timeout 5 files.example.net:5022 ya ƙare lokaci maimakon a ƙi shi. Wannan bambanci yana da muhimmanci: ƙarewar lokaci yawanci yana nufin ana jefar da fakiti a hanya, yayin da ƙi yana nufin wani abu ya amsa ya ce a'a.

Mataki na gaba cikin gida shi ne VPS da kansa. ss -ltnp bai nuna wani abu da ke saurara a 5022 ba, kamar yadda ake tsammani kafin ka'idar DNAT ta kasance. A wannan injin wg show (ko ip -br a show tun0 don OpenVPN) ya tabbatar da cewa peer na gida yana aiki kuma yana da sabon handshake. Idan peer ba ya aiki, babu ka'idar NAT da za ta taimaka, kuma koren haske a shafin VPN na na'urar fita ta gida ba ya nufin komai.

Tabbatar da cewa layin gida yana bayan CGNAT da gaske

Kwatanta adireshin da na'urar fita ke bayarwa a interface na WAN da abin da sabis na waje ke gani. Duk abin da ke cikin 100.64.0.0/10, wato 100.64.x.x zuwa 100.127.x.x, yanki ne na adiresoshin da aka raba daga RFC 6598 kuma ba a iya isa gare shi daga intanet. Za ka isa ga wannan ƙarshe idan na'urar fita ta ce tana da adireshin sirri na yau da kullum yayin da binciken jama'a ya dawo da wani abu mara alaƙa. Layin CGNAT na iya zuwa da adireshin jama'a wanda ke iyawa kawai har zuwa lease na gaba, don haka tura tasha yana kama da yana aiki sa'a ɗaya sannan ya mutu a hankali.

Wasu masu bayarwa suna ba da adireshin jama'a na gaske amma suna toshe tashoshin shigowa 80 da 443 a asusun gidaje. Idan sabis ɗinka na yanar gizo ne kawai kuma adireshin WAN na jama'a ne da gaske, tambayi tallafi kafin gina relay. Idan ba haka ba, tsarin da ke ƙasa yana aiki daidai ga kowace tasha, kuma ya dace a dakatar da gwajin a gefen na'urar fita: mai fassara a cikin cibiyar sadarwar mai bayarwa yana kawo ƙarshen haɗin kafin ya taɓa isa interface ɗinka na WAN.

Karkatar da sunan zuwa adireshin VPS

DNS ba ya tura zirga-zirga, don haka rikodin A na sabis dole ya ƙunshi adireshin jama'a na VPS. Rikodin A zuwa 192.168.1.20 ana warware shi da amfani kawai ga abokan ciniki da suke cikin VPN tuni; daga intanet ana warware shi zuwa adireshin da babu wanda zai iya turawa. Don shiga aikin gudanarwa na VPS da kansa ina ajiye suna daban, don kada in taɓa rikice wace na'ura rikodi yake nufi.

Idan VPS da injin gida duk suna ba da HTTP, ba kowanne sunansa kuma bar VPS ya yanke shawarar wanda zai amsa. Haɗa su cikin suna ɗaya da fatan proxy zai zaɓi backend daidai shi ne ainihin hanyar da za ka shafe yini ɗaya kana gyara kuskure a na'urar da ba daidai ba.

Tasha ɗaya ta DNAT, bar SSH a 22

Zaɓin kai tsaye shi ne NAT na manufa a VPS. Kunna forwarding ga kernel da ke gudana kuma riƙe adireshin ramin uwar garken gida a cikin ka'idar, ba adireshinsa na LAN ba:

sysctl -w net.ipv4.ip_forward=1
iptables -t nat -A PREROUTING -p tcp -d 198.51.100.10 --dport 5022 -j DNAT --to-destination 10.8.0.2

Bar SSH zuwa VPS da kansa a 22 kuma tura wata tasha, misali 5022, zuwa injin gida. Idan ka tura 22 zuwa injin da ya mutu, za ka rasa hanya ɗaya da za ta iya gyara shi. Wannan tunani ɗaya ya shafi proxy: riƙe tashar gudanarwa ta VPS a waje da ka'idodin relay.

Ka sa ka'idodin su kasance na dindindin da zarar sun yi aiki. A Debian ko Ubuntu, apt install iptables-persistent sannan netfilter-persistent save suna rubuta su cikin /etc/iptables/rules.v4. A na'ura mai firewalld kwatankwacinsa shine tura tasha na dindindin a yankin, wanda ke buƙatar firewall-cmd --reload kafin ya fara aiki. Ka'idodin da ke rayuwa a ƙwaƙwalwa kawai suna ɓacewa a farkon sake kunna na'urar da mai bayarwa ke yi don kulawa, yawanci a sa'a mara kyau.

Gyara hanyar dawowa, ko ka guje wa buƙatarta

DNAT yana sake rubuta manufa kawai. Uwar garken gida tana ganin haɗi daga ainihin adireshin abokin ciniki, kuma idan hanyarta ta asali ta nufi na'urar fita ta gida, amsar tana fita ta WAN na gida inda mai fassarar mai bayarwa ke jefa ta. Wannan rashin daidaito ita ce gazawa ta biyu da na ci karo da ita, bayan ka'idar DNAT ta yi kama da cikakkiyar daidai.

Gyare-gyare biyu suna aiki. Ba injin gida hanyar manufa don zirga-zirgar daga ramin ta koma ta ramin:

ip rule add from 10.8.0.2 table 100
ip route add default dev wg0 table 100

Ko bar VPS ya sake rubuta tushen don amsar ta sami adireshin da zai iya isa gare shi, kuma bar conntrack ya juya ta yayin fita:

iptables -t nat -A POSTROUTING -d 10.8.0.2 -p tcp --dport 5022 -j SNAT --to-source 10.8.0.1

Nau'in SNAT yana ɓoye ainihin adireshin abokin ciniki daga uwar garken gida, don haka bayanan aikace-aikace suna nuna 10.8.0.1 a matsayin peer. Ka wuce ainihin adireshin a matakin aikace-aikace, ko ka yarda da asarar rikodin kowane abokin ciniki, amma yanke shawara da gangan maimakon gano shi yayin wani lamari.

Duba dukan hanyar daga waje

Tabbatar daga cibiyar sadarwa da ba VPS ba kuma ba gida ba: waya kan bayanan wayar hannu, ko shell mai arha a wani wuri. nc -vz files.example.net 5022 ya kamata ya ba da rahoton haɗi mai nasara, kuma openssl s_client -connect files.example.net:443 -servername files.example.net ya kamata ya nuna takardar shaidar sunan jama'a. Sannan duba ƙungiyar tsaro ko katangar wutar girgijen mai bayarwa. Ka'idar DNAT da ba ta taɓa ganin fakiti yawanci ana toshe ta a mataki ɗaya sama da na'urar.

A ƙarshe, yanke shawara abin da ke faruwa idan ramin ya faɗi. Ka'idar DNAT tana ci gaba da karɓar haɗi kuma tana shigar da su cikin rami da ya mutu a hankali, wanda ke kama da sabis da ya lalace. Dubawa na lafiya a VPS da ke ƙi tashar yayin da peer ba ya aiki yana kashe layuka kaɗan kuma yana ceton sa'a ɗaya na hasashe. Bayan haka ka daina gyara ka'idoji ka duba shi kwana ɗaya kafin ka amince da shi.

Labarai masu alaƙa