Asi ini ndiri mugadziri wepurogiramu, saka ini ndichawedzera N chete nechidimbu, uye ndosiya kuvandudzwa kwemaprotocol chaiwo kune vanogadzira Kommersant.
Zvakanaka, kana iwe uchiziva chiteshi cheveruzhinji uye IP yemutengi (semuenzaniso, munhu wese kuseri kwayo hakuna kwaanoenda, NAT inoedza kumepu ports 1-in-1), unogona kugadzira IPIP-pamusoro-FOU tunnel ine kutevera mirairo, pasina chero zvinyorwa.
pa server:
# Подгрузить модуль ядра FOU
modprobe fou
# Создать IPIP туннель с инкапсуляцией в FOU.
# Модуль ipip подгрузится автоматически.
ip link add name ipipou0 type ipip
remote 198.51.100.2 local 203.0.113.1
encap fou encap-sport 10000 encap-dport 20001
mode ipip dev eth0
# Добавить порт на котором будет слушать FOU для этого туннеля
ip fou add port 10000 ipproto 4 local 203.0.113.1 dev eth0
# Назначить IP адрес туннелю
ip address add 172.28.0.0 peer 172.28.0.1 dev ipipou0
# Поднять туннель
ip link set ipipou0 up
pamutengi:
modprobe fou
ip link add name ipipou1 type ipip
remote 203.0.113.1 local 192.168.0.2
encap fou encap-sport 10001 encap-dport 10000 encap-csum
mode ipip dev eth0
# Опции local, peer, peer_port, dev могут не поддерживаться старыми ядрами, можно их опустить.
# peer и peer_port используются для создания соединения сразу при создании FOU-listener-а.
ip fou add port 10001 ipproto 4 local 192.168.0.2 peer 203.0.113.1 peer_port 10000 dev eth0
ip address add 172.28.0.1 peer 172.28.0.0 dev ipipou1
ip link set ipipou1 up
172.28.0.1 - IP yemutengi mugero wenzira (yakavanzika)
172.28.0.0 - IP tunnel server interface (yakavanzika)
Chero bedzi iyo UDP yekubatanidza ichiri kurarama, mugero uchange uri muhurongwa hwekushanda, asi kana ukaputsika, iwe unenge uine rombo rakanaka - kana IP yemutengi: port inoramba yakafanana - ichararama, kana ikachinja - ichatsemuka.
Nzira iri nyore yekudzosa zvese kumashure ndeye kuburitsa kernel module: modprobe -r fou ipip
Kunyangwe kana chokwadi chisiri kudikanwa, IP yeruzhinji yemutengi uye chiteshi hazviwanzo kuzivikanwa uye kazhinji hazvitarisike kana kuchinjika (zvichienderana nerudzi rweNAT). Kana ukasiya encap-dport padivi reseva, mugero haushande, hauna kungwara zvakakwana kutora chiteshi chekubatanidza chiri kure. Muchiitiko ichi, ipipou inogonawo kubatsira, kana WireGuard nevamwe vakafanana nayo vanogona kukubatsira.
Sei kushanda?
Mutengi (uyo anowanzo kuseri kweNAT) anovhura mugero (semumuenzaniso uri pamusoro), uye anotumira pakiti yechokwadi kune server kuitira kuti igadzirise mugero padivi payo. Zvichienderana nezvirongwa, iyi inogona kunge isina chinhu packet (kungoitira kuti sevha ione iyo yeruzhinji IP: yekubatanidza port), kana nedata iyo sevha inogona kuziva mutengi. Iyo data inogona kunge iri nyore passphrase mune yakajeka mavara (iyo fananidzo neHTTP Basic Auth inouya mupfungwa) kana yakanyatso dhizainiwa data yakasainwa nekiyi yakavanzika (yakafanana neHTTP Digest Auth yakasimba chete, ona basa client_auth mune kodhi).
Zvakanaka, mazwi akakwana, inguva yekuona kuti inoshanda sei mu "nyika chaiyo".
Hondo
Inoshandiswa kutevedzera nyika chaiyo iperf3. Panyaya yechiyero chekuswedera kune chokwadi, izvi zvakangofanana nekutevedzera nyika chaiyo muMinecraft, asi ikozvino ichaita.
Vatori vechikamu mumakwikwi:
reference main channel
gamba rechinyorwa chino iipipou
OpenVPN ine chokwadi asi isina encryption
OpenVPN mune zvese-inosanganisirwa modhi
WireGuard isina PresharedKey, ine MTU=1440 (kubvira IPv4-chete)
Data yehunyanzvi ye geeks Metrics inotorwa nemirairo inotevera:
pamutengi:
UDP
CPULOG=NAME.udp.cpu.log; sar 10 6 >"$CPULOG" & iperf3 -c SERVER_IP -4 -t 60 -f m -i 10 -B LOCAL_IP -P 2 -u -b 12M; tail -1 "$CPULOG"
# Где "-b 12M" это пропускная способность основного канала, делённая на число потоков "-P", чтобы лишние пакеты не плодить и не портить производительность.