ከአቅራቢ NAT ጀርባ የቪፒኤን አገልጋይ መጀመር

ከቤቴ አቅራቢው NAT (ያለ ነጭ አይፒ አድራሻ) የቪፒኤን አገልጋይ እንዴት ማስኬድ እንደቻልኩ የሚገልጽ ጽሑፍ። ወዲያውኑ ቦታ ማስያዝ ፍቀድልኝ፡ ያ የዚህ ትግበራ አፈፃፀም በቀጥታ በአቅራቢዎ በሚጠቀሙት የ NAT አይነት እና እንዲሁም በራውተር ላይ የተመሰረተ ነው.
ስለዚህ፣ ከአንድሮይድ ስማርትፎን ወደ ቤት ኮምፒዩተሬ መገናኘት ነበረብኝ፣ ሁለቱም መሳሪያዎች ከበይነመረቡ ጋር የተገናኙት በአቅራቢ NATs ነው፣ በተጨማሪም ኮምፒዩተሩ በሆም ራውተር በኩል የተገናኘ ነው፣ እሱም NAT ግንኙነቶችን ያካትታል።
ክላሲክ እቅድ በሊዝ ቪፒኤስ/ቪዲኤስ ከነጭ አይፒ አድራሻ እንዲሁም ከአቅራቢው ነጭ የአይፒ አድራሻ መከራየት በብዙ ምክንያቶች ግምት ውስጥ አልገባም።
ግምት ውስጥ በማስገባት ካለፉት መጣጥፎች ልምድከ STUNs እና ከአቅራቢዎች NATs ጋር ብዙ ሙከራዎችን አካሂደዋል። OpenWRT firmware በሚያሄድ የቤት ራውተር ላይ ትዕዛዙን በማስኬድ ትንሽ ሙከራ ለማድረግ ወሰንኩ፡-

$ stun stun.sipnet.ru

ውጤቱን አግኝቷል:

የ STUN ደንበኛ ስሪት 0.97
ቀዳሚ፡ ገለልተኛ ካርታ ስራ፣ ገለልተኛ ማጣሪያ፣ የዘፈቀደ ወደብ፣ ፀጉር ይቆማል
የመመለሻ ዋጋ ነው። 0x000002

ቀጥተኛ ትርጉም፡-
ገለልተኛ ካርታ ስራ - ገለልተኛ ካርታ
ገለልተኛ ማጣሪያ - ገለልተኛ ማጣሪያ
የዘፈቀደ ወደብ - የዘፈቀደ ወደብ
የፀጉር ማቆሚያ ይሆናል - የፀጉር መርገጫ ይኖራል
በፒሲዬ ላይ ተመሳሳይ ትእዛዝ በማሄድ ላይ፣ የሚከተለውን አገኘሁ።

የ STUN ደንበኛ ስሪት 0.97
ዋና፡ ገለልተኛ የካርታ ስራ፣ የወደብ ጥገኛ ማጣሪያ፣ የዘፈቀደ ወደብ፣ ፀጉር ይቆማል
የመመለሻ ዋጋ ነው። 0x000006

ወደብ ጥገኛ ማጣሪያ - የወደብ ጥገኛ ማጣሪያ
በትእዛዙ ውፅዓት ውስጥ ያለው ልዩነት የቤት ራውተር ፓኬጆችን ከበይነመረቡ ለማስተላለፍ ሂደት “የበራሱን አስተዋፅዖ እያደረገ” መሆኑን ያሳያል ፣ ይህ በኮምፒዩተር ላይ ትዕዛዙን በሚፈጽምበት ጊዜ ተገለጠ ።

stun stun.sipnet.ru -p 11111 -v

ውጤቱን እያገኘሁ ነበር፡-

...
MappedAddress = XX.1XX.1X4.2XX:4398
...

በዚህ ቅጽበት የ UDP ክፍለ ጊዜ ለተወሰነ ጊዜ ተከፍቷል ፣ በዚህ ቅጽበት የ UDP ጥያቄ ከላኩ (ለምሳሌ netcat XX.1XX.1X4.2XX 4398 -u) ጥያቄው ወደ የቤት ራውተር መጣ ፣ በእሱ ላይ እየሮጠ በ TCPDump ተረጋግጧል, ነገር ግን ጥያቄው ወደ ኮምፒዩተሩ አልደረሰም - IPtables, በራውተር ላይ እንደ NAT ተርጓሚ, ጥሎታል.
ከአቅራቢው NAT ጀርባ የቪፒኤን አገልጋይ በማሄድ ላይ
ነገር ግን የ UDP ጥያቄ በአቅራቢው NAT በኩል ማለፉ ለስኬት ተስፋ ሰጥቷል. ራውተሩ በእኔ ስልጣን ውስጥ ስለሚገኝ የ UDP/11111 ወደብ ወደ ኮምፒዩተሩ በማዘዋወር ችግሩን ፈታሁት፡-

iptables -t nat -A PREROUTING -i eth1 -p udp -d 10.1XX.2XX.XXX --dport 11111 -j DNAT --to-destination 192.168.X.XXX

ስለዚህ የ UDP ክፍለ ጊዜ ለመጀመር እና ከማንኛውም የአይፒ አድራሻ ከበይነመረቡ ጥያቄዎችን ለመቀበል ችያለሁ። በዚህ ቅጽበት፣ OpenVPN-server ከፈትኩ (ከዚህ በፊት አዋቅረው) የ UDP/11111 ወደብ በማዳመጥ፣ የውጪውን አይፒ አድራሻ እና ወደብ (XX.1XX.1X4.2XX:4398) በስማርትፎን ላይ ጠቁሜ በተሳካ ሁኔታ ከስማርትፎን ወደ ኮምፒዩተሩ. ነገር ግን በዚህ አተገባበር ላይ ችግር ተፈጠረ፡ የOpenVPN ደንበኛ ከአገልጋዩ ጋር እስኪገናኝ ድረስ የ UDP ክፍለ ጊዜን እንደምንም ማቆየት አስፈላጊ ነበር፤ የ STUN ደንበኛን በየጊዜው የማስጀመር አማራጭን አልወደድኩትም - ጭነቱን ማባከን አልፈለግኩም። የ STUN አገልጋዮች.
መግቢያውንም አስተዋልኩ"የፀጉር ማቆሚያ ይሆናል - የፀጉር መርገጫ ይኖራል", ይህ ሁነታ

የፀጉር መቆንጠጥ ከNAT ጀርባ ያለ አንድ ማሽን በአካባቢው አውታረመረብ ላይ ሌላ ማሽን በራውተር ውጫዊ አድራሻ በተመሳሳይ አውታረ መረብ ላይ ለመድረስ ያስችላል።

ከአቅራቢው NAT ጀርባ የቪፒኤን አገልጋይ በማሄድ ላይ
በውጤቱም, የ UDP ክፍለ-ጊዜን የማቆየት ችግርን በቀላሉ ፈታሁት - ደንበኛውን በተመሳሳይ ኮምፒተር ከአገልጋዩ ጋር አስጀምሬያለሁ.
እንዲህ ሰርቷል፡-

  • የ STUN ደንበኛን በአገር ውስጥ ወደብ 11111 አስጀመረ
  • ከውጭ የአይፒ አድራሻ እና ወደብ XX.1XX.1X4.2XX:4398 ምላሽ አግኝቷል
  • በስማርትፎን ላይ የተዋቀረውን መረጃ ከውጭ አይፒ አድራሻ እና ወደብ ወደ ኢሜል ላከ (ሌላ ማንኛውም አገልግሎት ይቻላል)
  • የUDP/11111 ወደብ በሚያዳምጥ ኮምፒውተር ላይ የOpenVPN አገልጋይን አስጀመረ
  • ለግንኙነት XX.1XX.1X4.2XX:4398 የሚገልጽ የOpenVPN ደንበኛን በኮምፒዩተር ላይ አስጀምሯል።
  • በማንኛውም ጊዜ የአይፒ አድራሻውን እና ወደብ (በእኔ ሁኔታ የአይፒ አድራሻው አልተለወጠም) ለማገናኘት የ OpenVPN ደንበኛን በስማርትፎን ላይ አስጀምሯል

ከአቅራቢው NAT ጀርባ የቪፒኤን አገልጋይ በማሄድ ላይ
በዚህ መንገድ ከስማርት ስልኬ ወደ ኮምፒውተሬ መገናኘት ቻልኩ። ይህ ትግበራ ማንኛውንም የOpenVPN ደንበኛን እንዲያገናኙ ያስችልዎታል።

ልምምድ

ይወስዳል:

# apt install openvpn stun-client sendemail

ሁለት ስክሪፕቶችን ፣ ሁለት የውቅር ፋይሎችን ከጻፍን እና አስፈላጊ የምስክር ወረቀቶችን ከፈጠርን በኋላ (በስማርትፎን ላይ ያለው ደንበኛ በእውቅና ማረጋገጫዎች ብቻ ስለሚሰራ) የተለመደው የOpenVPN አገልጋይ ትግበራ አግኝተናል።

በኮምፒተር ላይ ዋና ስክሪፕት

# cat vpn11.sh

#!/bin/bash
until [[ -n "$iftosrv" ]]; do echo "$(date) Определяю сетевой интерфейс"; iftosrv=`ip route get 8.8.8.8 | head -n 1 | sed 's|.*dev ||' | awk '{print $1}'`; sleep 5; done
ABSOLUTE_FILENAME=`readlink -f "$0"`
DIR=`dirname "$ABSOLUTE_FILENAME"`
localport=11111
until [[ $a ]]; do
	address=`stun stun.sipnet.ru -v -p $localport 2>&1 | grep "MappedAddress" | sort | uniq | head -n 1 | sed 's/:/ /g' | awk '{print $3" "$4}'`
        ip=`echo "$address" | awk {'print $1'}`
        port=`echo "$address" | awk {'print $2'}`
	srv="openvpn --config $DIR/server.conf --port $localport --daemon"
	$srv
	echo "$(date) Сервер запущен с внешним адресом $ip:$port"
	$DIR/sendemail.sh "OpenVPN-Server" "$ip:$port"
	sleep 1
	openvpn --config $DIR/client.conf --remote $ip --port $port
	echo "$(date) Cоединение клиента с сервером разорвано"
	for i in `ps xa | grep "$srv" | grep -v grep | awk '{print $1}'`; do
		kill $i && echo "$(date) Завершен процесс сервера $i ($srv)"
		done
	echo "Жду 15 сек"
	sleep 15
	done

መረጃን በኢሜል ለመላክ ስክሪፕት፡-

# cat sendemail.sh 

#!/bin/bash
from="От кого"
pass="Пароль"
to="Кому"
theme="$1"
message="$2"
server="smtp.yandex.ru:587"
sendEmail -o tls=yes -f "$from" -t "$to" -s "$server" -xu "$from" -xp "$pass" -u "$theme" -m "$message"

የአገልጋይ ውቅር ፋይል፡-

# cat server.conf

proto udp
dev tun
ca      /home/vpn11-srv/ca.crt
cert    /home/vpn11-srv/server.crt
key     /home/vpn11-srv/server.key
dh      /home/vpn11-srv/dh2048.pem
server 10.2.0.0 255.255.255.0
ifconfig-pool-persist ipp.txt
tls-server
tls-auth /home/vpn11-srv/ta.key 0
tls-timeout 60
auth    SHA256
cipher  AES-256-CBC
client-to-client
keepalive 10 30
comp-lzo
max-clients 10
user nobody
group nogroup
persist-key
persist-tun
log /var/log/vpn11-server.log
verb 3
mute 20

የደንበኛ ውቅር ፋይል፡-

# cat client.conf

client
dev tun
proto udp
ca      "/home/vpn11-srv/ca.crt"
cert    "/home/vpn11-srv/client1.crt"
key     "/home/vpn11-srv/client1.key"
tls-client
tls-auth "/home/vpn11-srv/ta.key" 1
auth SHA256
cipher AES-256-CBC
auth-nocache
comp-lzo
user nobody
group nogroup
persist-key
persist-tun
log /var/log/vpn11-clent.log
verb 3
mute 20
ping 10
ping-exit 30

የምስክር ወረቀቶች የተፈጠሩት በመጠቀም ነው። ይህ ጽሑፍ.
ስክሪፕቱን በማስኬድ ላይ፡-

# ./vpn11.sh

መጀመሪያ እንዲፈፀም በማድረግ

# chmod +x vpn11.sh

በስማርትፎን በኩል

አፕሊኬሽኑን በመጫን ቪፒኤን ለአንድሮይድ ክፈትየውቅረት ፋይሉን ፣ የምስክር ወረቀቶችን ገልብጦ ካዋቀረው በኋላ እንደዚህ ሆነ።
ኢሜይሌን በስማርት ስልኬ አረጋግጣለሁ።ከአቅራቢው NAT ጀርባ የቪፒኤን አገልጋይ በማሄድ ላይ
በቅንብሮች ውስጥ የወደብ ቁጥሩን አርትዕ አደርጋለሁከአቅራቢው NAT ጀርባ የቪፒኤን አገልጋይ በማሄድ ላይ
ደንበኛው አስነሳሁ እና ተገናኘሁከአቅራቢው NAT ጀርባ የቪፒኤን አገልጋይ በማሄድ ላይ

ይህን ጽሑፍ በምጽፍበት ጊዜ አወቃቀሩን ከኮምፒውተሬ ወደ Raspberry Pi 3 አስተላልፌዋለሁ እና ሙሉውን በ LTE ሞደም ላይ ለማስኬድ ሞክሬ ነበር, ግን አልሰራም! የትዕዛዝ ውጤት

# stun stun.ekiga.net -p 11111

የ STUN ደንበኛ ስሪት 0.97
ዋና፡ ገለልተኛ የካርታ ስራ፣ የወደብ ጥገኛ ማጣሪያ፣ የዘፈቀደ ወደብ፣ ፀጉር ይቆማል
የመመለሻ ዋጋ ነው። 0x000006

ትርጉም ወደብ ጥገኛ ማጣሪያ ስርዓቱ እንዲጀምር አልፈቀደም.
ነገር ግን የቤት አቅራቢው ስርዓቱ በ Raspberry Pi 3 ላይ ያለ ምንም ችግር እንዲጀምር ፈቅዷል.
ከድር ካሜራ ጋር በመተባበር ከ VLC ጋር
ከድር ካሜራ የ RTSP ዥረት መፍጠር

$ cvlc v4l2:///dev/video0:chroma=h264 :input-slave=alsa://hw:1,0 --sout '#transcode{vcodec=x264,venc=x264{preset=ultrafast,profile=baseline,level=31},vb=2048,fps=12,scale=1,acodec=mpga,ab=128,channels=2,samplerate=44100,scodec=none}:rtp{sdp=rtsp://10.2.0.1:8554/}' --no-sout-all --sout-keep

እና ቪኤልሲ በስማርትፎን ለእይታ (stream rtsp://10.2.0.1:8554/)፣ ጥሩ የርቀት ቪዲዮ ክትትል ስርዓት ሆኖ ተገኝቷል፣ እንዲሁም ሳምባን መጫን፣ ትራፊክን በቪፒኤን፣ ኮምፒውተርዎን በርቀት መቆጣጠር እና ብዙ ማድረግ ይችላሉ። ተጨማሪ...

መደምደሚያ

እንደ ልምምድ እንደሚያሳየው የቪፒኤን አገልጋይ ለማደራጀት ልክ እንደ ተከራይ ቪፒኤስ/ቪዲኤስ መክፈል ያለብዎት ውጫዊ አይፒ አድራሻ ሳይኖር ማድረግ ይችላሉ። ግን ሁሉም በአቅራቢው ላይ የተመሰረተ ነው. በእርግጥ ስለ ተለያዩ የ NAT አገልግሎት አቅራቢዎች እና ዓይነቶች የበለጠ መረጃ ለማግኘት ፈልጌ ነበር፣ ግን ይህ ገና ጅምር ነው...
ለሚያደርጉት ጥረት እናመሰግናለን!

ምንጭ: hab.com

አስተያየት ያክሉ