๊ณต๊ธ‰์ž์˜ NAT ๋’ค์—์„œ VPN ์„œ๋ฒ„ ์‹คํ–‰

ํ™ˆ ๊ณต๊ธ‰์ž์˜ NAT ๋’ค์—์„œ (ํ™”์ดํŠธ IP ์ฃผ์†Œ ์—†์ด) VPN ์„œ๋ฒ„๋ฅผ ์‹คํ–‰ํ•˜๋Š” ๋ฐฉ๋ฒ•์— ๋Œ€ํ•œ ๊ธฐ์‚ฌ์ž…๋‹ˆ๋‹ค. ๋ฐ”๋กœ ์˜ˆ์•ฝํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค. ์ด ๊ตฌํ˜„์˜ ์„ฑ๋Šฅ์€ ๊ณต๊ธ‰์ž๊ฐ€ ์‚ฌ์šฉํ•˜๋Š” NAT ์œ ํ˜•๊ณผ ๋ผ์šฐํ„ฐ์— ๋”ฐ๋ผ ์ง์ ‘์ ์œผ๋กœ ๋‹ฌ๋ผ์ง‘๋‹ˆ๋‹ค..
๊ทธ๋ž˜์„œ Android ์Šค๋งˆํŠธํฐ์—์„œ ์ง‘์— ์žˆ๋Š” ์ปดํ“จํ„ฐ๋กœ ์—ฐ๊ฒฐํ•ด์•ผ ํ–ˆ์Šต๋‹ˆ๋‹ค. ๋‘ ์žฅ์น˜ ๋ชจ๋‘ ๊ณต๊ธ‰์ž NAT๋ฅผ ํ†ตํ•ด ์ธํ„ฐ๋„ท์— ์—ฐ๊ฒฐ๋˜์–ด ์žˆ๊ณ  ์ปดํ“จํ„ฐ๋„ NAT ์—ฐ๊ฒฐ์ธ ํ™ˆ ๋ผ์šฐํ„ฐ๋ฅผ ํ†ตํ•ด ์—ฐ๊ฒฐ๋˜์–ด ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค.
ํ™”์ดํŠธ IP ์ฃผ์†Œ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ž„๋Œ€๋œ VPS/VDS๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ๊ณต๊ธ‰์ž๋กœ๋ถ€ํ„ฐ ํ™”์ดํŠธ IP ์ฃผ์†Œ๋ฅผ ์ž„๋Œ€ํ•˜๋Š” ๊ธฐ์กด ๋ฐฉ์‹์€ ์—ฌ๋Ÿฌ ๊ฐ€์ง€ ์ด์œ ๋กœ ๊ณ ๋ ค๋˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค.
๋ณด๊ธฐ์— ๊ณผ๊ฑฐ ๊ธฐ์‚ฌ์˜ ๊ฒฝํ—˜, ๊ณต๊ธ‰์ž์˜ STUN ๋ฐ NAT๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์—ฌ๋Ÿฌ ์‹คํ—˜์„ ์ˆ˜ํ–‰ํ–ˆ์Šต๋‹ˆ๋‹ค. OpenWRT ํŽŒ์›จ์–ด๋ฅผ ์‹คํ–‰ํ•˜๋Š” ํ™ˆ ๋ผ์šฐํ„ฐ์—์„œ ๋ช…๋ น์„ ์‹คํ–‰ํ•˜์—ฌ ์•ฝ๊ฐ„์˜ ์‹คํ—˜์„ ํ•˜๊ธฐ๋กœ ๊ฒฐ์ •ํ–ˆ์Šต๋‹ˆ๋‹ค.

$ stun stun.sipnet.ru

๊ฒฐ๊ณผ๋ฅผ ์–ป์—ˆ์Šต๋‹ˆ๋‹ค :

STUN ํด๋ผ์ด์–ธํŠธ ๋ฒ„์ „ 0.97
๊ธฐ๋ณธ: ๋…๋ฆฝ ๋งคํ•‘, ๋…๋ฆฝ ํ•„ํ„ฐ, ๋ฌด์ž‘์œ„ ํฌํŠธ, ํ—ค์–ดํ•€
๋ฐ˜ํ™˜ ๊ฐ’์€ 0 X 000002

์ง์—ญ:
๋…๋ฆฝ ๋งคํ•‘ - ๋…๋ฆฝ ๋งคํ•‘
๋…๋ฆฝ ํ•„ํ„ฐ - ๋…๋ฆฝ ํ•„ํ„ฐ
์ž„์˜ ํฌํŠธ - ์ž„์˜ ํฌํŠธ
๋จธ๋ฆฌํ•€์ด ์žˆ์„ ๊ฒƒ์ด๋‹ค - ๋จธ๋ฆฌํ•€์ด ์žˆ์„ ๊ฒƒ์ด๋‹ค
๋‚ด PC์—์„œ ๋น„์Šทํ•œ ๋ช…๋ น์„ ์‹คํ–‰ํ•˜๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๊ฒฐ๊ณผ๊ฐ€ ๋‚˜ํƒ€๋‚ฉ๋‹ˆ๋‹ค.

STUN ํด๋ผ์ด์–ธํŠธ ๋ฒ„์ „ 0.97
๊ธฐ๋ณธ: ๋…๋ฆฝ ๋งคํ•‘, ํฌํŠธ ์ข…์† ํ•„ํ„ฐ, ์ž„์˜ ํฌํŠธ, ํ—ค์–ดํ•€
๋ฐ˜ํ™˜ ๊ฐ’์€ 0 X 000006

ํฌํŠธ ์ข…์† ํ•„ํ„ฐ - ํฌํŠธ ์ข…์† ํ•„ํ„ฐ
๋ช…๋ น ์ถœ๋ ฅ ๊ฒฐ๊ณผ์˜ ์ฐจ์ด๋Š” ํ™ˆ ๋ผ์šฐํ„ฐ๊ฐ€ ์ธํ„ฐ๋„ท์—์„œ ํŒจํ‚ท์„ ์ „์†กํ•˜๋Š” ํ”„๋กœ์„ธ์Šค์— "๊ธฐ์—ฌ"ํ•˜๊ณ  ์žˆ์Œ์„ ๋‚˜ํƒ€๋ƒ…๋‹ˆ๋‹ค. ์ด๋Š” ์ปดํ“จํ„ฐ์—์„œ ๋ช…๋ น์„ ์‹คํ–‰ํ•  ๋•Œ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์‚ฌ์‹ค์—์„œ ๋‚˜ํƒ€๋‚ฉ๋‹ˆ๋‹ค.

stun stun.sipnet.ru -p 11111 -v

๋‚˜๋Š” ๊ฒฐ๊ณผ๋ฅผ ์–ป์—ˆ์Šต๋‹ˆ๋‹ค :

...
๋งคํ•‘๋œ ์ฃผ์†Œ = XX.1XX.1X4.2XX:4398
...

์ด ์ˆœ๊ฐ„ UDP ์„ธ์…˜์ด ํ•œ๋™์•ˆ ์—ด๋ ธ์Šต๋‹ˆ๋‹ค. ์ด ์ˆœ๊ฐ„ UDP ์š”์ฒญ(์˜ˆ: netcat XX.1XX.1X4.2XX 4398 -u)์„ ๋ณด๋‚ด๋ฉด ์š”์ฒญ์ด ํ™ˆ ๋ผ์šฐํ„ฐ๋กœ ์ „๋‹ฌ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์‹คํ–‰ ์ค‘์ธ TCPDump์— ์˜ํ•ด ํ™•์ธ๋˜์—ˆ์ง€๋งŒ ์š”์ฒญ์ด ์ปดํ“จํ„ฐ์— ๋„๋‹ฌํ•˜์ง€ ๋ชปํ–ˆ์Šต๋‹ˆ๋‹ค. ๋ผ์šฐํ„ฐ์˜ NAT ๋ณ€ํ™˜๊ธฐ์ธ IPtables๊ฐ€ ์š”์ฒญ์„ ์‚ญ์ œํ–ˆ์Šต๋‹ˆ๋‹ค.
๊ณต๊ธ‰์ž์˜ NAT ๋’ค์—์„œ VPN ์„œ๋ฒ„ ์‹คํ–‰
ํ•˜์ง€๋งŒ 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 ์ฃผ์†Œ์—์„œ ์ธํ„ฐ๋„ท์˜ ์š”์ฒญ์„ ๋ฐ›์„ ์ˆ˜ ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค. ์ด๋•Œ UDP/11111 ํฌํŠธ๋ฅผ ์ˆ˜์‹ ํ•˜๋Š” OpenVPN ์„œ๋ฒ„(์ด์ „์— ๊ตฌ์„ฑํ•œ)๋ฅผ ์‹œ์ž‘ํ•˜๊ณ  ์Šค๋งˆํŠธํฐ์— ์™ธ๋ถ€ IP ์ฃผ์†Œ์™€ ํฌํŠธ(XX.1XX.1X4.2XX:4398)๋ฅผ ํ‘œ์‹œํ•˜๊ณ  ์Šค๋งˆํŠธํฐ์—์„œ ์ปดํ“จํ„ฐ. ๊ทธ๋Ÿฌ๋‚˜ ์ด ๊ตฌํ˜„์—์„œ๋Š” ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ–ˆ์Šต๋‹ˆ๋‹ค: OpenVPN ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์„œ๋ฒ„์— ์—ฐ๊ฒฐ๋  ๋•Œ๊นŒ์ง€ UDP ์„ธ์…˜์„ ์–ด๋–ป๊ฒŒ๋“  ์œ ์ง€ํ•ด์•ผ ํ–ˆ๊ณ , STUN ํด๋ผ์ด์–ธํŠธ๋ฅผ ์ฃผ๊ธฐ์ ์œผ๋กœ ์‹œ์ž‘ํ•˜๋Š” ์˜ต์…˜์ด ๋งˆ์Œ์— ๋“ค์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค. STUN ์„œ๋ฒ„.
๋‚˜๋Š” ๋˜ํ•œ "๋ผ๋Š” ํ•ญ๋ชฉ์„ ๋ฐœ๊ฒฌํ–ˆ์Šต๋‹ˆ๋‹ค.๋จธ๋ฆฌํ•€์ด ์žˆ์„ ๊ฒƒ์ด๋‹ค - ๋จธ๋ฆฌํ•€์ด ์žˆ์„ ๊ฒƒ์ด๋‹ค", ์ด ๋ชจ๋“œ๋Š”

ํ—ค์–ดํ”ผ๋‹์„ ์‚ฌ์šฉํ•˜๋ฉด NAT ๋’ค์˜ ๋กœ์ปฌ ๋„คํŠธ์›Œํฌ์— ์žˆ๋Š” ํ•œ ์‹œ์Šคํ…œ์ด ๋ผ์šฐํ„ฐ์˜ ์™ธ๋ถ€ ์ฃผ์†Œ์—์„œ ๋™์ผํ•œ ๋„คํŠธ์›Œํฌ์— ์žˆ๋Š” ๋‹ค๋ฅธ ์‹œ์Šคํ…œ์— ์•ก์„ธ์Šคํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๊ณต๊ธ‰์ž์˜ NAT ๋’ค์—์„œ VPN ์„œ๋ฒ„ ์‹คํ–‰
๊ฒฐ๊ณผ์ ์œผ๋กœ UDP ์„ธ์…˜ ์œ ์ง€ ๋ฌธ์ œ๋ฅผ ๊ฐ„๋‹จํžˆ ํ•ด๊ฒฐํ–ˆ์Šต๋‹ˆ๋‹ค. ์„œ๋ฒ„์™€ ๋™์ผํ•œ ์ปดํ“จํ„ฐ์—์„œ ํด๋ผ์ด์–ธํŠธ๋ฅผ ์‹œ์ž‘ํ–ˆ์Šต๋‹ˆ๋‹ค.
๋‹ค์Œ๊ณผ ๊ฐ™์ด ์ž‘๋™ํ–ˆ์Šต๋‹ˆ๋‹ค.

  • ๋กœ์ปฌ ํฌํŠธ โ€‹โ€‹11111์—์„œ STUN ํด๋ผ์ด์–ธํŠธ๋ฅผ ์‹œ์ž‘ํ–ˆ์Šต๋‹ˆ๋‹ค.
  • ์™ธ๋ถ€ IP ์ฃผ์†Œ์™€ ํฌํŠธ XX.1XX.1X4.2XX:4398๋กœ ์‘๋‹ต์„ ๋ฐ›์•˜์Šต๋‹ˆ๋‹ค.
  • ์Šค๋งˆํŠธํฐ์— ์„ค์ •๋œ ์™ธ๋ถ€ IP ์ฃผ์†Œ์™€ ํฌํŠธ๋ฅผ ์ด๋ฉ”์ผ๋กœ ๋ฐ์ดํ„ฐ ์ „์†ก(๋‹ค๋ฅธ ์„œ๋น„์Šค๋„ ๊ฐ€๋Šฅ)
  • UDP/11111 ํฌํŠธ๋ฅผ ์ˆ˜์‹ ํ•˜๋Š” ์ปดํ“จํ„ฐ์—์„œ OpenVPN ์„œ๋ฒ„๋ฅผ ์‹œ์ž‘ํ–ˆ์Šต๋‹ˆ๋‹ค.
  • ์—ฐ๊ฒฐ์„ ์œ„ํ•ด XX.1XX.1X4.2XX:4398์„ ์ง€์ •ํ•˜๋Š” ์ปดํ“จํ„ฐ์—์„œ OpenVPN ํด๋ผ์ด์–ธํŠธ๋ฅผ ์‹œ์ž‘ํ–ˆ์Šต๋‹ˆ๋‹ค.
  • ์–ธ์ œ๋“ ์ง€ ์Šค๋งˆํŠธํฐ์—์„œ OpenVPN ํด๋ผ์ด์–ธํŠธ๋ฅผ ์‹คํ–‰ํ•˜์—ฌ ์—ฐ๊ฒฐํ•  IP ์ฃผ์†Œ์™€ ํฌํŠธ(์ œ ๊ฒฝ์šฐ์—๋Š” IP ์ฃผ์†Œ๊ฐ€ ๋ณ€๊ฒฝ๋˜์ง€ ์•Š์Œ)๋ฅผ ํ‘œ์‹œํ•ฉ๋‹ˆ๋‹ค.

๊ณต๊ธ‰์ž์˜ NAT ๋’ค์—์„œ VPN ์„œ๋ฒ„ ์‹คํ–‰
์ด ๋ฐฉ๋ฒ•์œผ๋กœ ์Šค๋งˆํŠธํฐ์—์„œ ์ปดํ“จํ„ฐ์— ์—ฐ๊ฒฐํ•  ์ˆ˜ ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค. ์ด ๊ตฌํ˜„์„ ํ†ตํ•ด ๋ชจ๋“  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, ๊ตฌ์„ฑ ํŒŒ์ผ, ์ธ์ฆ์„œ๋ฅผ ๋ณต์‚ฌํ•˜๊ณ  ๊ตฌ์„ฑํ•œ ๊ฒฐ๊ณผ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.
๋‚˜๋Š” ์Šค๋งˆํŠธํฐ์œผ๋กœ ์ด๋ฉ”์ผ์„ ํ™•์ธํ•œ๋‹ค๊ณต๊ธ‰์ž์˜ NAT ๋’ค์—์„œ VPN ์„œ๋ฒ„ ์‹คํ–‰
์„ค์ •์—์„œ ํฌํŠธ ๋ฒˆํ˜ธ๋ฅผ ํŽธ์ง‘ํ•ฉ๋‹ˆ๋‹ค๊ณต๊ธ‰์ž์˜ NAT ๋’ค์—์„œ VPN ์„œ๋ฒ„ ์‹คํ–‰
ํด๋ผ์ด์–ธํŠธ๋ฅผ ์‹คํ–‰ํ•˜๊ณ  ์—ฐ๊ฒฐํ•ฉ๋‹ˆ๋‹ค.๊ณต๊ธ‰์ž์˜ NAT ๋’ค์—์„œ VPN ์„œ๋ฒ„ ์‹คํ–‰

์ด ๊ธ€์„ ์“ฐ๋Š” ๋™์•ˆ ์ปดํ“จํ„ฐ์˜ ๊ตฌ์„ฑ์„ Raspberry Pi 3๋กœ ์ „์†กํ•˜๊ณ  LTE ๋ชจ๋Ž€์—์„œ ๋ชจ๋“  ๊ฒƒ์„ ์‹คํ–‰ํ•˜๋ ค๊ณ  ์‹œ๋„ํ–ˆ์ง€๋งŒ ์ž‘๋™ํ•˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค! ๋ช…๋ น ๊ฒฐ๊ณผ

# stun stun.ekiga.net -p 11111

STUN ํด๋ผ์ด์–ธํŠธ ๋ฒ„์ „ 0.97
๊ธฐ๋ณธ: ๋…๋ฆฝ ๋งคํ•‘, ํฌํŠธ ์ข…์† ํ•„ํ„ฐ, ์ž„์˜ ํฌํŠธ, ํ—ค์–ดํ•€
๋ฐ˜ํ™˜ ๊ฐ’์€ 0 X 000006

๊ฐ€์น˜ ํฌํŠธ ์ข…์† ํ•„ํ„ฐ ์‹œ์Šคํ…œ ์‹œ์ž‘์„ ํ—ˆ์šฉํ•˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค.
๊ทธ๋Ÿฌ๋‚˜ ํ™ˆ ์ œ๊ณต์—…์ฒด๋Š” ์‹œ์Šคํ…œ์ด ์•„๋ฌด๋Ÿฐ ๋ฌธ์ œ ์—†์ด 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 ์„œ๋ฒ„๋ฅผ ๊ตฌ์„ฑํ•˜๋ ค๋ฉด ์ž„๋Œ€ VPS/VDS์™€ ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ ๋น„์šฉ์„ ์ง€๋ถˆํ•ด์•ผ ํ•˜๋Š” ์™ธ๋ถ€ IP ์ฃผ์†Œ ์—†์ด๋„ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ๊ทธ๊ฒƒ์€ ๋ชจ๋‘ ๊ณต๊ธ‰์ž์— ๋‹ฌ๋ ค ์žˆ์Šต๋‹ˆ๋‹ค. ๋ฌผ๋ก  ๋‹ค์–‘ํ•œ ๊ณต๊ธ‰์ž์™€ ์‚ฌ์šฉ๋˜๋Š” NAT ์œ ํ˜•์— ๋Œ€ํ•œ ์ž์„ธํ•œ ์ •๋ณด๋ฅผ ์–ป๊ณ  ์‹ถ์—ˆ์ง€๋งŒ ์ด๋Š” ์‹œ์ž‘์— ๋ถˆ๊ณผํ•ฉ๋‹ˆ๋‹ค.
๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค!

์ถœ์ฒ˜ : habr.com

์ฝ”๋ฉ˜ํŠธ๋ฅผ ์ถ”๊ฐ€