እንዴት እንደጀመርኩ የሚያሳይ ጽሑፍ የቪፒኤን አገልጋይ ከቤት አቅራቢው NAT ጀርባ (ያለ ይፋዊ የአይፒ አድራሻ)። ወዲያውኑ ላብራራ፡ የዚህ ትግበራ አፈፃፀም በቀጥታ በአቅራቢዎ በሚጠቀሙት የ NAT አይነት እና እንዲሁም በራውተር ላይ የተመሰረተ ነው.
ስለዚህ፣ ከኔ ጋር መገናኘት ነበረብኝ Android- ስማርትፎን ከቤት ኮምፒውተር ጋር፣ ሁለቱም መሳሪያዎች በአቅራቢው NATs በኩል ከበይነመረቡ ጋር የተገናኙ ሲሆኑ ኮምፒዩተሩ በቤት ራውተር በኩል ተገናኝቷል፣ እሱም ግንኙነቶችን NATs ያደርጋል።
ክላሲክ እቅድ በሊዝ ቪፒኤስ/ቪዲኤስ ከነጭ አይፒ አድራሻ እንዲሁም ከአቅራቢው ነጭ የአይፒ አድራሻ መከራየት በብዙ ምክንያቶች ግምት ውስጥ አልገባም።
ግምት ውስጥ በማስገባት ካለፉት መጣጥፎች ልምድከ 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 ተርጓሚ, ጥሎታል.

ነገር ግን የ 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-ሰርቨር (ቀድሞ የተዋቀረ) በ UDP/11111 ወደብ ላይ ማዳመጥ፣ በስማርት ስልኩ ላይ ያለውን ውጫዊ የአይፒ አድራሻ እና ወደብ (XX.1XX.1X4.2XX:4398) ገልጬ፣ እና ከስማርት ስልኩ ወደ ኮምፒዩተሩ በተሳካ ሁኔታ ተገናኝቻለሁ። ሆኖም፣ ይህ ትግበራ ችግር አጋጥሞኛል፡ ግንኙነቱ እስኪመሰረት ድረስ የ UDP ክፍለ ጊዜን በሆነ መንገድ ማቆየት ነበረብኝ። OpenVPN-ደንበኛ ወደ አገልጋይ፣ የSTUN ደንበኛን በየጊዜው የማስጀመር አማራጭ አልወደድኩትም - የSTUN አገልጋዮችን አላስፈላጊ በሆነ መልኩ መጫን አልፈለግኩም።
መግቢያውንም አስተዋልኩ"የፀጉር ማቆሚያ ይሆናል - የፀጉር መርገጫ ይኖራል", ይህ ሁነታ
የፀጉር መቆንጠጥ ከNAT ጀርባ ያለ አንድ ማሽን በአካባቢው አውታረመረብ ላይ ሌላ ማሽን በራውተር ውጫዊ አድራሻ በተመሳሳይ አውታረ መረብ ላይ ለመድረስ ያስችላል።

በውጤቱም, የ UDP ክፍለ-ጊዜን የማቆየት ችግርን በቀላሉ ፈታሁት - ደንበኛውን በተመሳሳይ ኮምፒተር ከአገልጋዩ ጋር አስጀምሬያለሁ.
እንዲህ ሰርቷል፡-
- የ STUN ደንበኛን በአገር ውስጥ ወደብ 11111 አስጀመረ
- ከውጭ የአይፒ አድራሻ እና ወደብ XX.1XX.1X4.2XX:4398 ምላሽ አግኝቷል
- በስማርትፎን ላይ የተዋቀረውን መረጃ ከውጭ አይፒ አድራሻ እና ወደብ ወደ ኢሜል ላከ (ሌላ ማንኛውም አገልግሎት ይቻላል)
- ተጀመረ OpenVPN- በ UDP/11111 ወደብ ላይ በኮምፒውተር ላይ ያለ አገልጋይ
- ተጀመረ OpenVPN- ለግንኙነት XX.1XX.1X4.2XX:4398 የሚገልጽ ኮምፒውተር ላይ ያለ ደንበኛ
- በማንኛውም ጊዜ ተጀምሯል OpenVPN- ለግንኙነት የአይፒ አድራሻ እና ወደብ ያለው ስማርት ስልክ ላይ ያለ ደንበኛ (በእኔ ሁኔታ የአይፒ አድራሻው አልተለወጠም)

በዚህ መንገድ፣ ከስማርት ስልኬ ወደ ኮምፒውተሬ መገናኘት ችያለሁ። ይህ ትግበራ ማንኛውንም ሰው እንዲያገናኙ ያስችልዎታል። 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.confproto 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.confclient
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በስማርትፎን በኩል
አፕሊኬሽኑን በመጫን OpenVPN ለ Androidየውቅረት ፋይሉን ፣ የምስክር ወረቀቶችን ገልብጦ ካዋቀረው በኋላ እንደዚህ ሆነ።
ኢሜይሌን በስማርት ስልኬ አረጋግጣለሁ።
በቅንብሮች ውስጥ የወደብ ቁጥሩን አርትዕ አደርጋለሁ
ደንበኛው አስነሳሁ እና ተገናኘሁ
ይህን ጽሑፍ በምጽፍበት ጊዜ አወቃቀሩን ከኮምፒውተሬ ወደ 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
