ื”ืคืขืœืช ืฉืจืช VPN ืžืื—ื•ืจื™ ื”-NAT ืฉืœ ื”ืกืคืง

ืžืืžืจ ืขืœ ืื™ืš ื”ืฆืœื—ืชื™ ืœื”ืคืขื™ืœ ืฉืจืช VPN ืžืื—ื•ืจื™ ื”-NAT ืฉืœ ื”ืกืคืง ื”ื‘ื™ืชื™ ืฉืœื™ (ืœืœื ื›ืชื•ื‘ืช IP ืœื‘ื ื”). ืชืŸ ืœื™ ืœืขืฉื•ืช ื”ื–ืžื ื” ืžื™ื“: ื–ื” ื”ื‘ื™ืฆื•ืขื™ื ืฉืœ ื™ื™ืฉื•ื ื–ื” ืชืœื•ื™ื™ื ื™ืฉื™ืจื•ืช ื‘ืกื•ื’ ื”-NAT ื”ืžืฉืžืฉ ืืช ื”ืกืคืง ืฉืœืš, ื›ืžื• ื’ื ื‘ื ืชื‘.
ืื–, ื”ื™ื™ืชื™ ืฆืจื™ืš ืœื”ืชื—ื‘ืจ ืžื”ืกืžืืจื˜ืคื•ืŸ ืื ื“ืจื•ืื™ื“ ืฉืœื™ ืœืžื—ืฉื‘ ื”ื‘ื™ืชื™ ืฉืœื™, ืฉื ื™ ื”ืžื›ืฉื™ืจื™ื ืžื—ื•ื‘ืจื™ื ืœืื™ื ื˜ืจื ื˜ ื“ืจืš NAT ืฉืœ ืกืคืง, ื‘ื ื•ืกืฃ ื”ืžื—ืฉื‘ ืžื—ื•ื‘ืจ ื“ืจืš ื ืชื‘ ื‘ื™ืชื™, ืฉื’ื ื”ื•ื ืžื—ื•ื‘ืจ ืœื—ื™ื‘ื•ืจื™ NAT.
ื”ืชื•ื›ื ื™ืช ื”ืงืœืืกื™ืช ื‘ืืžืฆืขื•ืช VPS/VDS ืžื•ืฉื›ืจ ืขื ื›ืชื•ื‘ืช IP ืœื‘ื ื”, ื›ืžื• ื’ื ื”ืฉื›ืจืช ื›ืชื•ื‘ืช IP ืœื‘ื ื” ืžืกืคืง, ืœื ื ืฉืงืœื” ืžื›ืžื” ืกื™ื‘ื•ืช.
ืœืงื—ืช ื‘ื—ืฉื‘ื•ืŸ ื ื™ืกื™ื•ืŸ ืžืžืืžืจื™ื ืงื•ื“ืžื™ื, ืœืื—ืจ ืฉื‘ื™ืฆืข ืžืกืคืจ ื ื™ืกื•ื™ื™ื ืขื STUNs ื•-NATs ืฉืœ ืกืคืงื™ื. ื”ื—ืœื˜ืชื™ ืœืขืฉื•ืช ื ื™ืกื•ื™ ืงื˜ืŸ ืขืœ ื™ื“ื™ ื”ืคืขืœืช ื”ืคืงื•ื“ื” ื‘ื ืชื‘ ื‘ื™ืชื™ ืฉืžืจื™ืฅ ืงื•ืฉื—ื” ืฉืœ OpenWRT:

$ stun stun.sipnet.ru

ืงื™ื‘ืœ ืืช ื”ืชื•ืฆืื”:

ื’ืจืกืช ืœืงื•ื— STUN 0.97
ืจืืฉื™: ืžื™ืคื•ื™ ืขืฆืžืื™, ืžืกื ืŸ ืขืฆืžืื™, ื™ืฆื™ืื” ืืงืจืื™ืช, ื™ืกื’ื•ืจ ืจืืฉ
ืขืจืš ื”ื—ื–ืจื” ื”ื•ื 0x000002

ืชืจื’ื•ื ืžื™ืœื•ืœื™:
ืžื™ืคื•ื™ ืขืฆืžืื™ - ืžื™ืคื•ื™ ืขืฆืžืื™
Independent Filter - ืคื™ืœื˜ืจ ืขืฆืžืื™
ื™ืฆื™ืื” ืืงืจืื™ืช - ื™ืฆื™ืื” ืืงืจืื™ืช
ื™ื”ื™ื” ืกื™ื›ืช ืจืืฉ - ืชื”ื™ื” ืกื™ื›ืช ืจืืฉ
ื”ืคืขืœืช ืคืงื•ื“ื” ื“ื•ืžื” ื‘ืžื—ืฉื‘ ืฉืœื™, ืงื™ื‘ืœืชื™:

ื’ืจืกืช ืœืงื•ื— 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 ืขืœ ื”ื ืชื‘, ื”ืคื™ืœ ืื•ืชื”.
ื”ืคืขืœืช ืฉืจืช VPN ืžืื—ื•ืจื™ ื”-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 ื•ืœืงื‘ืœ ื‘ืงืฉื•ืช ืžื”ืื™ื ื˜ืจื ื˜ ืžื›ืœ ื›ืชื•ื‘ืช IP. ื‘ืจื’ืข ื–ื”, ืคืชื—ืชื™ ืฉืจืช OpenVPN (ืœืื—ืจ ืฉื”ื’ื“ืจืชื™ ืื•ืชื• ื‘ืขื‘ืจ) ืžืื–ื™ืŸ ืœื™ืฆื™ืืช UDP/11111, ืฆื™ื™ื ืชื™ ืืช ื›ืชื•ื‘ืช ื”-IP ื”ื—ื™ืฆื•ื ื™ืช ื•ื”ื™ืฆื™ืื” (XX.1XX.1X4.2XX:4398) ื‘ืกืžืืจื˜ืคื•ืŸ ื•ื”ืชื—ื‘ืจืชื™ ื‘ื”ืฆืœื—ื” ืžื”ืกืžืืจื˜ืคื•ืŸ ืœ ื”ืžื—ืฉื‘. ืื‘ืœ ื‘ื™ื™ืฉื•ื ื–ื” ื ื•ืฆืจื” ื‘ืขื™ื”: ื”ื™ื” ืฆื•ืจืš ืื™ื›ืฉื”ื• ืœืฉืžื•ืจ ืขืœ ืกืฉืŸ UDP ืขื“ ืฉืœืงื•ื— OpenVPN ื”ืชื—ื‘ืจ ืœืฉืจืช; ืœื ืื”ื‘ืชื™ ืืช ื”ืืคืฉืจื•ืช ืœื”ืคืขื™ืœ ืืช ืœืงื•ื— STUN ืžืขืช ืœืขืช - ืœื ืจืฆื™ืชื™ ืœื‘ื–ื‘ื– ืืช ื”ืขื•ืžืก ืขืœ ืฉืจืชื™ STUN.
ืฉืžืชื™ ืœื‘ ื’ื ืœืขืจืš "ื™ื”ื™ื” ืกื™ื›ืช ืจืืฉ - ืชื”ื™ื” ืกื™ื›ืช ืจืืฉ", ื”ืžืฆื‘ ื”ื–ื”

ืกื™ื›ืช ืฉื™ืขืจ ืžืืคืฉืจืช ืœืžื›ื•ื ื” ืื—ืช ื‘ืจืฉืช ืžืงื•ืžื™ืช ืžืื—ื•ืจื™ NAT โ€‹โ€‹ืœื’ืฉืช ืœืžื›ื•ื ื” ืื—ืจืช ื‘ืื•ืชื” ืจืฉืช ื‘ื›ืชื•ื‘ืช ื”ื—ื™ืฆื•ื ื™ืช ืฉืœ ื”ื ืชื‘.

ื”ืคืขืœืช ืฉืจืช VPN ืžืื—ื•ืจื™ ื”-NAT ืฉืœ ื”ืกืคืง
ื›ืชื•ืฆืื” ืžื›ืš, ืคืฉื•ื˜ ืคืชืจืชื™ ืืช ื”ื‘ืขื™ื” ืฉืœ ืฉืžื™ืจื” ืขืœ ืกืฉืŸ UDP โ€“ ื”ืคืขืœืชื™ ืืช ื”ืœืงื•ื— ื‘ืื•ืชื• ืžื—ืฉื‘ ืขื ื”ืฉืจืช.
ื–ื” ืขื‘ื“ ื›ื›ื”:

  • ื”ืฉื™ืงื” ืืช ืœืงื•ื— STUN ื‘ื™ืฆื™ืื” ืžืงื•ืžื™ืช 11111
  • ืงื™ื‘ืœื” ืชื’ื•ื‘ื” ืขื ื›ืชื•ื‘ืช IP ื—ื™ืฆื•ื ื™ืช ื•ื™ืฆื™ืื” XX.1XX.1X4.2XX:4398
  • ืฉืœื— ื ืชื•ื ื™ื ืขื ื›ืชื•ื‘ืช IP ื—ื™ืฆื•ื ื™ืช ื•ื™ืฆื™ืื” ืœืžื™ื™ืœ (ื›ืœ ืฉื™ืจื•ืช ืื—ืจ ืืคืฉืจื™) ื”ืžื•ื’ื“ืจื™ื ื‘ืกืžืืจื˜ืคื•ืŸ
  • ื”ืฉื™ืงื” ืืช ืฉืจืช OpenVPN ื‘ืžื—ืฉื‘ ืฉืžืื–ื™ืŸ ืœื™ืฆื™ืืช UDP/11111
  • ื”ืคืขื™ืœ ืืช ืœืงื•ื— OpenVPN ื‘ืžื—ืฉื‘ ื”ืžืฆื™ื™ืŸ XX.1XX.1X4.2XX:4398 ืœื—ื™ื‘ื•ืจ
  • ื‘ื›ืœ ืขืช ื”ืคืขื™ืœ ืืช ืœืงื•ื— OpenVPN ื‘ืกืžืืจื˜ืคื•ืŸ ื”ืžืฆื™ื™ืŸ ืืช ื›ืชื•ื‘ืช ื”-IP ื•ื”ื™ืฆื™ืื” (ื‘ืžืงืจื” ืฉืœื™ ื›ืชื•ื‘ืช ื”-IP ืœื ื”ืฉืชื ืชื”) ื›ื“ื™ ืœื”ืชื—ื‘ืจ

ื”ืคืขืœืช ืฉืจืช VPN ืžืื—ื•ืจื™ ื”-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

ื‘ืฆื“ ื”ืกืžืืจื˜ืคื•ืŸ

ืขืœ ื™ื“ื™ ื”ืชืงื ืช ื”ืืคืœื™ืงืฆื™ื” OpenVPN ืขื‘ื•ืจ ืื ื“ืจื•ืื™ื“ืœืื—ืจ ื”ืขืชืงืช ืงื•ื‘ืฅ ื”ืชืฆื•ืจื”, ื”ืื™ืฉื•ืจื™ื ื•ื”ื’ื“ืจืชื•, ื–ื” ื”ืชื‘ืจืจ ื›ืš:
ืื ื™ ื‘ื•ื“ืง ืืช ื”ืžื™ื™ืœ ืฉืœื™ ื‘ืกืžืืจื˜ืคื•ืŸื”ืคืขืœืช ืฉืจืช VPN ืžืื—ื•ืจื™ ื”-NAT ืฉืœ ื”ืกืคืง
ืื ื™ ืขื•ืจืš ืืช ืžืกืคืจ ื”ื™ืฆื™ืื” ื‘ื”ื’ื“ืจื•ืชื”ืคืขืœืช ืฉืจืช VPN ืžืื—ื•ืจื™ ื”-NAT ืฉืœ ื”ืกืคืง
ืื ื™ ืžืคืขื™ืœ ืืช ื”ืœืงื•ื— ื•ืžืชื—ื‘ืจื”ืคืขืœืช ืฉืจืช VPN ืžืื—ื•ืจื™ ื”-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

ื•-VLC ื‘ืกืžืืจื˜ืคื•ืŸ ืœืฆืคื™ื™ื” (ื–ืจื rtsp://10.2.0.1:8554/), ื”ืชื‘ืจืจ ืฉื–ื• ืžืขืจื›ืช ืžืขืงื‘ ื•ื™ื“ืื• ืžืจื—ื•ืง ื˜ื•ื‘ื”, ื ื™ืชืŸ ื’ื ืœื”ืชืงื™ืŸ Samba, ืœื ืชื‘ ืชืขื‘ื•ืจื” ื“ืจืš VPN, ืœืฉืœื•ื˜ ืžืจื—ื•ืง ื‘ืžื—ืฉื‘ ื•ืขื•ื“ ื”ืจื‘ื” ื™ื•ืชืจ...

ืคืœื˜

ื›ืคื™ ืฉื”ืจืื” ื‘ืคื•ืขืœ, ื›ื“ื™ ืœืืจื’ืŸ ืฉืจืช VPN, ืืชื” ื™ื›ื•ืœ ืœื”ืกืชื“ืจ ื‘ืœื™ ื›ืชื•ื‘ืช IP ื—ื™ืฆื•ื ื™ืช ืฉืขื‘ื•ืจื” ืืชื” ืฆืจื™ืš ืœืฉืœื, ื‘ื“ื™ื•ืง ื›ืžื• ืขื‘ื•ืจ VPS/VDS ืฉื›ื•ืจ. ืื‘ืœ ื”ื›ืœ ืชืœื•ื™ ื‘ืกืคืง. ื›ืžื•ื‘ืŸ, ืจืฆื™ืชื™ ืœืงื‘ืœ ืžื™ื“ืข ื ื•ืกืฃ ืขืœ ื”ืกืคืงื™ื ื•ื”ืกื•ื’ื™ื ื”ืฉื•ื ื™ื ืฉืœ NATs ื‘ืฉื™ืžื•ืฉ, ืื‘ืœ ื–ื• ืจืง ื”ื”ืชื—ืœื”...
ืชื•ื“ื” ืœืš!

ืžืงื•ืจ: www.habr.com

ื”ื•ืกืคืช ืชื’ื•ื‘ื”