VPN: Netbird
Netbird๋ VPN ๊ตฌ์ถ์ ์ฌ์ฉ๋๋ ํ๋ก์ ๋๊ตฌ ์ค ํ๋๋ค. tailscale์ ๊ฒฝ์์๋ก ๋น ๋ฅด๊ฒ ๋ถ์ํ๋ค.
Go๋ก ๋ง๋ค์ด์ ธ์๊ณ , BSD ๋ผ์ด์ผ์ค์ ์คํ์์ค๋ค.
ํด๋ผ์ฐ๋ ์๋น์ค๋ฅผ ์ ๊ณตํ์ง๋ง, ๊ธฐ๋ณธ์ ์ผ๋ก ์คํ์์ค๋ผ์ Self-Hosted ๊ตฌ์ถ๋ ๊ฐ๋ฅํ๋ค.
๊ธฐ๋ณธ ์๋ฆฌ
๊ธฐ๋ณธ์ ์ธ ๋
ผ๋ฆฌ๋ ๊ทธ๋ค์ง ์ด๋ ค์ธ ๊ฒ์ ์๋ค.
์ฌ๋ฌ๊ฐ์ Peer(์ปดํจํฐ)๊ฐ ๋จ์ผ netbird๋ฅผ ์ค๊ณ๊ธฐ๋ก ์ผ์ ์ฐ๊ฒฐ๋๋ ๊ฒ์ด๋ค.
๋ฑ๋ก๋ Peer๋ค์ netbird์์ ํ ๋นํ ์ ์ฉ IP๋ค์ ๊ฐ๋๋ค.
๊ทธ๋ฌ๋ฉด Peer๋ค๋ผ๋ฆฌ๋ Netbird ์๋ฒ๋ฅผ ์ค๊ณ๊ธฐ๋ก ์ผ์์ Peer ID๋ฅผ ํตํด ์๋ก ํต์ ํ ์ ์๊ฒ ๋๋ ๊ฒ์ด๋ค.
์ด ํต์ ์ ํ๋์จ์ด ํ๊ฒฝ์ ๋ฐ๋ผ์, hole punching์ผ๋ก ์ง์ ํต์ ์ ํ ์๋ ์๊ณ , netbird๋ฅผ relay๋ก ์ผ์์ ๊ฐ์ ํต์ ์ ํ ์๋ ์๋ค. ์๋ฌดํผ ํต์ฌ์ Peer๋ผ๋ฆฌ ์๋ฐํ ํต์ ์ ์ํํ ์ ์๋ค๋ ๊ฒ์ด๋ค.
vs Tailscale
netbird์ ๊ฐ์ฅ ๊ฐ๋ ฅํ ๊ฒฝ์์๋ ์ ํต์ ๊ฐ์์ธ tailscale์ด๋ค.
https://blog.naver.com/sssang97/224169470281
netbird๊ฐ ํ๋ฐ์ฃผ์๋ผ์ ๊ทธ๋ฐ์ง tailscale์ ๋นํ๋ฉด ์์ ์ฑ์ด๋ ๊ตฌํ ์์ค์์ ๋ชจ์๋ ๋ชจ์ต์ ์ข ๋ณด์ฌ์ค๋ค.
ํนํ Android๋ฅผ ๋น๋กฏํ ์ฑ ํ๊ฒฝ์์๋ ๊ธฐ๋ฅ์ด ๋ถ์์ ํ๋ค๋ ๊ฒ์ด ์ง๊ธ๋ ๊ณ์ ์ง์ ๋๊ณ ์๋ค.
ํ์ง๋ง ์์ ํ ์คํ์์ค๋ผ๋ ๊ฒ์ด ๊ฐ์ฅ ๊ฐ๋ ฅํ ์ฅ์ ์ด๊ณ , ํ์ฌ์ ์์กดํ์ง ์๊ณ ๋น์ฉ/๋ณด์ ๋ ๋ฆฝ์ ์ผ๋ก VPN ์ค๊ณ๊ธฐ๋ฅผ ๊ตฌ์ฑํ ์ ์๋ค.
๋น์ฉ (Cloud)
https://netbird.io/pricing
์ด๊ฒ๋ tailscale๊ณผ ๋ง์ฐฌ๊ฐ์ง๋ก ๋งค์ฐ ๋๋ํ๊ณ ํํ ๋ฌด๋ฃ ์ฌ์ฉ๋์ ์ ๊ณตํด์ค๋ค.
Free Plan์ ๊ฒฝ์ฐ์๋ ํ ๊ณ์ ์ 5๊ฐ๊น์ง ๋ฑ๋กํ ์ ์๊ณ , ๊ธฐ๊ธฐ ์ ํ์ 100๊ฐ๋ค.
tailscale์ด ๊ณ์ ์ ํ์ด 3๊ฐ๋ผ๋ ๊ฒ์ ์๊ฐํ๋ฉด ๊ฝค ๊ด์ฐฎ๋ค.
ํ ํ๋์ ์ ์ ํ๋ช
๋น ์ 5๋ฌ๋ฌ.
๋น์ฆ๋์ค ํ๋์ ์ ์ ํ๋ช
๋น ์ 10๋ฌ๋ฌ๋ค.
ํ์ ์ํ ์ ์ ๋น ๋น์ฉ์ด ์ฃผ๋ ๋น์ฉ ๋ฐ์ ์ง์ ์ด๊ณ , ํธ๋ํฝ์ ๋ํ ๋น์ฉ ๊ณผ๊ธ ๊ตฌ์กฐ๋ ์๋ค.
์ค์๊ท๋ชจ ์กฐ์ง์์๋ ๋ฌด๋ฃ๋ก๋ ๊ด์ฐฎ๊ฒ ์ฌ์ฉํ ์ ์์ ๊ฒ์ด๋ค.
์ค์น
์ค์น๋ ๊ฐํธํ๊ฒ ์ ๊ณต๋๋ค.
https://app.netbird.io/install
Windows๋ ์ธ์คํจ๋ฌ๋ฅผ ํตํด ์ค์น ๊ฐ๋ฅํ๊ณ , Mac, Linux์์๋ ์ปค๋งจ๋๋ก ์ค์นํ ์ ์๋ค.
# MacOS
brew install netbirdio/tap/netbird
# Linux
curl -fsSL https://pkgs.netbird.io/install.sh | sh
๊ทธ ์ดํ์๋ ๋ค์ ๋ช ๋ น์ ์ฌ์ฉํด์ ์ด๊ธฐ ์ธํ ์ ์๋ฃํ ์ ์๋ค.
sudo netbird service install
sudo netbird service start
netbird up
netbird up์ ์น๋ฉด ๋ก๊ทธ์ธ ์ฐฝ ๋จ๋ฉด์ ๋ก๊ทธ์ธ์ ์๊ตฌํ๋ค.
๊ทธ๋ผ ํ๊ณ ๋ค์ด๊ฐ์ ์ ์ ํ ๋ก๊ทธ์ธ์ ํ๋ฉด ๋๋ค.
์ ์ํ ์ ์, ์ด๋ ๊ฒ UI๋ก ๋ก๊ทธ์ธํ๋ ๊ฒ์ ์ธ์ฆ์ ๋ง๋ฃ ์๊ฐ์ด ์๋ค๋ ๊ฒ์ด๋ค.
๊ทธ๋์ ์ด๊ฑด ํต์ ์ด ๋๊ฒจ๋ ๋๋ ์ผ์์ client์ธ ๊ฒฝ์ฐ์๋ง ์ ํจํ๊ณ , ์ค์ ๋ก ์๋น์ค์ ์ ์ฉํ ๋๋ API Key๋ฅผ ๋ฐ๊ธ๋ฐ์์ ๊ทธ๊ฑธ๋ก up์ ํด์ผํ๋ค.
์ฌ์ฉ
netbird ๋ฑ๋ก์ด ์ ๋๋ค๋ฉด, status ๋ช ๋ น์ ํตํด ํผ์ด์ ์ฐ๊ฒฐ ์ํ๋ฅผ ํ์ธํด๋ณผ ์ ์๋ค.
๋ด netbird IP๋ ํ ๋น๋์ด์๊ณ , ๋ค๋ฅธ peer๋ค๋ ๋ ์๋ค๋ ๊ฒ์ด ๋ฌ๋ค.
d ํ๋๊ทธ๋ฅผ ์ฃผ๋ฉด ๋ ์์ธํ๊ฒ peer ๋ชฉ๋ก ์ ๋ณด๋ฅผ ์กฐํํ ์ ์๋ค.
๋ณด์ ์ต์
์ ํฌํจํ ๊ณ ๊ธ ์ ์ด๋ค์ ์ ์ฉ netbird ์ฝ์ ํ๋ฉด์์ ์ฒ๋ฆฌํ ์ ์๋ค.
๋๋ถ๋ถ์ ์ก์
์๋ ๊ด๋ฆฌ์ ๊ถํ์ด ํ์ํ๋ค.
์๋ฌดํผ peer๊ฐ ๋ฑ๋ก์ด ๋์๋ค๋ฉด, ์๊ธฐํ๋ฏ์ด Peer IP๋ฅผ ํตํด ๋ค๋ฅธ Peer์ ์ํตํ ์ ์๋ค.
peer๋ฅผ ์๋ฌด๊ฑฐ๋ ํ๋ ์ก๊ณ ping์ ๋ ๋ ค๋ดค๋ค.
์ด๋ ๊ฒ ์ ๊ฐ๋ค๋ฉด, ์ฐ๊ฒฐ ์์ฒด๋ ์ ์ฎ์๋ค๋ ๊ฒ์ด๋ค.
๊ทธ๋ผ ์ด์ ์ IP๋ฅผ ์จ์ HTTP API๋ฅผ ๋ ๋ฆฌ๊ฑฐ๋ ํ๋ ์ด๋ฐ์ ๋ฐ ๋คํธ์ํฌ ํต์ ์ ๋ค ์ธ ์ ์๋ค.
ssh
netbird๋ SSH ์ฐ๊ฒฐ๋ ์ง์ํ๋ค. ๋ง์ฝ ํ์ฌ ์ฅ๋น๋ฅผ ssh๋ก ๋ค์ด์ฌ ์ ์๊ฒ ๊ตฌ์ฑํ๊ณ ์ถ๋ค๋ฉด, up์ ํ ๋ ํ๋๊ทธ๋ฅผ ํ์ฑํํ๋ฉด ๋๋ค. ์ด๋ ๊ฒ ๋ง์ด๋ค.
netbird down
netbird up --allow-server-ssh --enable-ssh-root
์๋ง netbird๋ tailscale ๊ฐ์ ์ค๊ณ๊ธฐ๋ฅผ ์ฐ๋ ๊ฐ์ฅ ํฐ ์ด์ ๊ฐ ์ด๊ฒ ์๋๊น ์ถ๋ค.
์ด๋ ๊ฒ ํผ์ด๋ฅผ ๋ฑ๋กํด๋จ๋ค๋ฉด, ๋ค๋ฅธ ํผ์ด๋ ์ด ํผ์ด์ netbird IP๋ฅผ ํตํด ssh ์ ๊ทผ์ด ๊ฐ๋ฅํด์ง๋ค.
์ฐธ์กฐ
https://github.com/netbirdio/netbird
https://docs.netbird.io/manage/peers/ssh