CloudFlare๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๋‚˜๋งŒ์˜ ๋™์  DNS

๋จธ๋ฆฌ๋ง

CloudFlare๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๋‚˜๋งŒ์˜ ๋™์  DNS ์ง‘์—์„œ ๊ฐœ์ธ์ ์ธ ํ•„์š”๋ฅผ ์œ„ํ•ด ๊ฐ€์ƒ ๋ผ์šฐํ„ฐ์™€ Ubuntu ์„œ๋ฒ„๋ฅผ ๋ฏธ๋””์–ด ์„œ๋ฒ„ ๋ฐ ๊ธฐํƒ€ ์—ฌ๋Ÿฌ ๊ธฐ๋Šฅ์œผ๋กœ ์‹คํ–‰ํ•˜๋Š” VSphere๋ฅผ ์„ค์น˜ํ–ˆ์œผ๋ฉฐ ์ด ์„œ๋ฒ„๋Š” ์ธํ„ฐ๋„ท์—์„œ ์•ก์„ธ์Šคํ•  ์ˆ˜ ์žˆ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ๋ฌธ์ œ๋Š” ๋‚ด ๊ณต๊ธ‰์ž๊ฐ€ ๋ˆ์„ ์œ„ํ•ด ์ •์  ๋ฐ์ดํ„ฐ๋ฅผ ์ œ๊ณตํ•œ๋‹ค๋Š” ๊ฒƒ์ธ๋ฐ, ์ด๋Š” ํ•ญ์ƒ ๋” ์œ ์šฉํ•œ ๋ชฉ์ ์œผ๋กœ ์‚ฌ์šฉ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ž˜์„œ ddclient + cloudflare ์กฐํ•ฉ์„ ์‚ฌ์šฉํ–ˆ์Šต๋‹ˆ๋‹ค.

ddclient๊ฐ€ ์ž‘๋™์„ ๋ฉˆ์ถœ ๋•Œ๊นŒ์ง€ ๋ชจ๋“  ๊ฒƒ์ด ๊ดœ์ฐฎ์•˜์Šต๋‹ˆ๋‹ค. ์กฐ๊ธˆ ๋‘˜๋Ÿฌ๋ณธ ๊ฒฐ๊ณผ ๋ฌธ์ œ๋ฅผ ์ฐพ๋Š” ๋ฐ ๋„ˆ๋ฌด ๋งŽ์€ ์‹œ๊ฐ„์ด ๊ฑธ๋ฆฌ๊ธฐ ๋•Œ๋ฌธ์— ๋ชฉ๋ฐœ๊ณผ ์ž์ „๊ฑฐ๋ฅผ ์‚ฌ์šฉํ•  ๋•Œ๊ฐ€ ์™”๋‹ค๋Š” ๊ฒƒ์„ ๊นจ๋‹ฌ์•˜์Šต๋‹ˆ๋‹ค. ๊ฒฐ๊ตญ ๋ชจ๋“  ๊ฒƒ์ด ์ œ๋Œ€๋กœ ์ž‘๋™ํ•˜๋Š” ์ž‘์€ ๋ฐ๋ชฌ์œผ๋กœ ๋ฐ”๋€Œ์—ˆ๊ณ  ๋‹ค๋ฅธ ๊ฒƒ์€ ํ•„์š”ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
๊ด€์‹ฌ ์žˆ์œผ์‹  ๋ถ„์€ ๊ณ ์–‘์ด์— ์˜ค์‹  ๊ฒƒ์„ ํ™˜์˜ํ•ฉ๋‹ˆ๋‹ค.

์‚ฌ์šฉ๋œ ๋„๊ตฌ ๋ฐ "์‚ฌ์šฉ ๋ฐฉ๋ฒ•" ์ž‘๋™ ๋ฐฉ์‹

๊ทธ๋ž˜์„œ ์ œ๊ฐ€ cloudflare ์›น์‚ฌ์ดํŠธ์—์„œ ๊ฐ€์žฅ ๋จผ์ € ์•Œ์•„๋‚ธ ๊ฒƒ์€ ์—ฌ๋Ÿฌ๋ถ„์ด ์•Œ์•„์•ผ ํ•  ๋ชจ๋“  ๊ฒƒ์ž…๋‹ˆ๋‹ค. API. ๊ทธ๋ฆฌ๊ณ  ๋‚˜๋Š” ์ด๋ฏธ ๋ชจ๋“  ๊ฒƒ์„ Python์œผ๋กœ ๊ตฌํ˜„ํ•˜๊ธฐ ์œ„ํ•ด ์ž๋ฆฌ์— ์•‰์•˜์Šต๋‹ˆ๋‹ค. (Python์— ์ต์ˆ™ํ•ด์ง„ ํ›„ ๊ฐ„๋‹จํ•œ ์ž‘์—…์— ์‚ฌ์šฉํ•˜๊ฑฐ๋‚˜ ํ”„๋กœํ† ํƒ€์ž…์„ ๋น ๋ฅด๊ฒŒ ๋งŒ๋“ค์–ด์•ผ ํ•  ๋•Œ ์ ์  ๋” ๋งŽ์ด ์‚ฌ์šฉํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.) ๊ฐ‘์ž๊ธฐ ๊ฑฐ์˜ ๊ธฐ์„ฑํ’ˆ ๊ตฌํ˜„์„ ๋ฐœ๊ฒฌํ–ˆ์Šต๋‹ˆ๋‹ค.
์ผ๋ฐ˜์ ์œผ๋กœ ๋ž˜ํผ๊ฐ€ ๊ธฐ๋ณธ์œผ๋กœ ์‚ฌ์šฉ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. Python-cloudflare.

DNS ์—…๋ฐ์ดํŠธ์— ๋Œ€ํ•œ ์˜ˆ ์ค‘ ํ•˜๋‚˜๋ฅผ ์„ ํƒํ•˜๊ณ  ๊ตฌ์„ฑ ํŒŒ์ผ ์‚ฌ์šฉ๊ณผ ์˜์—ญ ๋‚ด์—์„œ ์—ฌ๋Ÿฌ A ๋ ˆ์ฝ”๋“œ๋ฅผ ์—…๋ฐ์ดํŠธํ•˜๋Š” ๊ธฐ๋Šฅ์„ ์ถ”๊ฐ€ํ–ˆ์Šต๋‹ˆ๋‹ค. ๋ฌผ๋ก  ์˜์—ญ ์ˆ˜๋Š” ๋ฌด์ œํ•œ์ž…๋‹ˆ๋‹ค.

๋…ผ๋ฆฌ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

  1. ์Šคํฌ๋ฆฝํŠธ๋Š” ๊ตฌ์„ฑ ํŒŒ์ผ์—์„œ ์˜์—ญ ๋ชฉ๋ก์„ ์ˆ˜์‹ ํ•˜๊ณ  ์ด๋ฅผ ๋ฐ˜๋ณตํ•ฉ๋‹ˆ๋‹ค.
  2. ๊ฐ ์˜์—ญ์—์„œ ์Šคํฌ๋ฆฝํŠธ๋Š” A ๋˜๋Š” AAAA ์œ ํ˜•์˜ ๊ฐ DNS ๋ ˆ์ฝ”๋“œ๋ฅผ ๋ฐ˜๋ณตํ•˜๊ณ  ํ•ด๋‹น ๋ ˆ์ฝ”๋“œ๋กœ ๊ณต์šฉ IP๋ฅผ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค.
  3. IP๊ฐ€ ๋‹ค๋ฅด๋ฉด ๋ณ€๊ฒฝํ•˜๊ณ , ๊ทธ๋ ‡์ง€ ์•Š์œผ๋ฉด ๋ฃจํ”„ ๋ฐ˜๋ณต์„ ๊ฑด๋„ˆ๋›ฐ๊ณ  ๋‹ค์Œ ๋ฐ˜๋ณต์œผ๋กœ ์ด๋™ํ•ฉ๋‹ˆ๋‹ค.
  4. ๊ตฌ์„ฑ์— ์ง€์ •๋œ ์‹œ๊ฐ„ ๋™์•ˆ ์ž ์ด ๋“ญ๋‹ˆ๋‹ค.

์„ค์น˜ ๋ฐ ๊ตฌ์„ฑ

์•„๋งˆ๋„ .deb ํŒจํ‚ค์ง€๋ฅผ ๋งŒ๋“œ๋Š” ๊ฒƒ์ด ๊ฐ€๋Šฅํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ์ €๋Š” ์ด๊ฒƒ์„ ์ž˜ํ•˜์ง€๋„ ๋ชปํ•˜๊ณ  ๊ทธ๋‹ค์ง€ ์–ด๋ ต์ง€๋„ ์•Š์Šต๋‹ˆ๋‹ค.
๋‚˜๋Š” README.md์—์„œ ๊ทธ ๊ณผ์ •์„ ๋งค์šฐ ์ž์„ธํ•˜๊ฒŒ ์„ค๋ช…ํ–ˆ์Šต๋‹ˆ๋‹ค. ์ €์žฅ์†Œ ํŽ˜์ด์ง€.

ํ•˜์ง€๋งŒ ๋งŒ์•ฝ์„ ๋Œ€๋น„ํ•ด ์ผ๋ฐ˜์ ์ธ ์šฉ์–ด๋กœ ๋Ÿฌ์‹œ์•„์–ด๋กœ ์„ค๋ช…ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.

  1. python3 ๋ฐ python3-pip๊ฐ€ ์„ค์น˜๋˜์–ด ์žˆ๋Š”์ง€ ํ™•์ธํ•˜๊ณ , ๊ทธ๋ ‡์ง€ ์•Š์€ ๊ฒฝ์šฐ ์„ค์น˜ํ•ฉ๋‹ˆ๋‹ค(Windows์—์„œ๋Š” python3-pip๊ฐ€ Python๊ณผ ํ•จ๊ป˜ ์„ค์น˜๋ฉ๋‹ˆ๋‹ค).
  2. ์ €์žฅ์†Œ ๋ณต์ œ ๋˜๋Š” ๋‹ค์šด๋กœ๋“œ
  3. ํ•„์š”ํ•œ ์ข…์†์„ฑ์„ ์„ค์น˜ํ•ฉ๋‹ˆ๋‹ค.
    python3 -m pip install -r requirements.txt

  4. ์„ค์น˜ ์Šคํฌ๋ฆฝํŠธ ์‹คํ–‰
    ๋ฆฌ๋ˆ…์Šค์˜ ๊ฒฝ์šฐ:

    chmod +x install.sh
    sudo ./install.sh

    Windows์˜ ๊ฒฝ์šฐ: windows_install.bat

  5. ๊ตฌ์„ฑ ํŒŒ์ผ ํŽธ์ง‘
    ๋ฆฌ๋ˆ…์Šค์˜ ๊ฒฝ์šฐ:

    sudoedit /etc/zen-cf-ddns.conf

    Windows์˜ ๊ฒฝ์šฐ :

    ์Šคํฌ๋ฆฝํŠธ๋ฅผ ์„ค์น˜ํ•œ ํด๋”์—์„œ zen-cf-ddns.conf ํŒŒ์ผ์„ ์—ฝ๋‹ˆ๋‹ค.

    ์ด๊ฒƒ์€ ์ผ๋ฐ˜ JSON ํŒŒ์ผ์ด๋ฉฐ ์„ค์ •์€ ๋ณต์žกํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด ์—ฌ๊ธฐ์— 2๊ฐœ์˜ ์„œ๋กœ ๋‹ค๋ฅธ ์˜์—ญ์„ ๊ตฌ์ฒด์ ์œผ๋กœ ์„ค๋ช…ํ–ˆ์Šต๋‹ˆ๋‹ค.

์„ค์น˜ ํ”„๋กœ๊ทธ๋žจ ๋’ค์— ๋ฌด์—‡์ด ์žˆ์Šต๋‹ˆ๊นŒ?

Linux์šฉ install.sh:

  1. ํ™ˆ ๋””๋ ‰ํ„ฐ๋ฆฌ๋ฅผ ์ƒ์„ฑํ•˜์ง€ ์•Š๊ณ  ๋กœ๊ทธ์ธํ•  ์ˆ˜ ์—†๋Š” ๋ฐ๋ชฌ์„ ์‹คํ–‰ํ•˜๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉ์ž๊ฐ€ ์ƒ์„ฑ๋ฉ๋‹ˆ๋‹ค.
    sudo useradd -r -s /bin/false zen-cf-ddns

  2. /var/log/์— ๋กœ๊ทธ ํŒŒ์ผ์ด ์ƒ์„ฑ๋ฉ๋‹ˆ๋‹ค.
  3. ์ƒˆ๋กœ ์ƒ์„ฑ๋œ ์‚ฌ์šฉ์ž๋ฅผ ๋กœ๊ทธ ํŒŒ์ผ์˜ ์†Œ์œ ์ž๋กœ ๋งŒ๋“ค๊ธฐ
  4. ํŒŒ์ผ์€ ํ•ด๋‹น ์œ„์น˜(/etc์˜ ๊ตฌ์„ฑ, /usr/bin์˜ ์‹คํ–‰ ํŒŒ์ผ, /lib/systemd/system์˜ ์„œ๋น„์Šค ํŒŒ์ผ)์— ๋ณต์‚ฌ๋ฉ๋‹ˆ๋‹ค.
  5. ์„œ๋น„์Šค๊ฐ€ ํ™œ์„ฑํ™”๋˜์—ˆ์Šต๋‹ˆ๋‹ค

Windows์šฉ windows_install.bat:

  1. ์‹คํ–‰ ํŒŒ์ผ ๋ฐ ๊ตฌ์„ฑ ํŒŒ์ผ์„ ์‚ฌ์šฉ์ž๊ฐ€ ์ง€์ •ํ•œ ํด๋”์— ๋ณต์‚ฌํ•ฉ๋‹ˆ๋‹ค.
  2. ์‹œ์Šคํ…œ ์‹œ์ž‘ ์‹œ ์Šคํฌ๋ฆฝํŠธ๋ฅผ ์‹คํ–‰ํ•˜๊ธฐ ์œ„ํ•ด ์Šค์ผ€์ค„๋Ÿฌ์— ์ž‘์—…์„ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค.
    schtasks /create /tn "CloudFlare Update IP" /tr "%newLocation%" /sc onstart

๊ตฌ์„ฑ์„ ๋ณ€๊ฒฝํ•œ ํ›„ ์Šคํฌ๋ฆฝํŠธ๋ฅผ ๋‹ค์‹œ ์‹œ์ž‘ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. Linux์—์„œ๋Š” ๋ชจ๋“  ๊ฒƒ์ด ๊ฐ„๋‹จํ•˜๊ณ  ์นœ์ˆ™ํ•ฉ๋‹ˆ๋‹ค.

sudo service zen-cf-ddns start
sudo service zen-cf-ddns stop
sudo service zen-cf-ddns restart
sudo service zen-cf-ddns status

Windows์˜ ๊ฒฝ์šฐ pythonw ํ”„๋กœ์„ธ์Šค๋ฅผ ์ข…๋ฃŒํ•˜๊ณ  ์Šคํฌ๋ฆฝํŠธ๋ฅผ ๋‹ค์‹œ ์‹คํ–‰ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค(C#์œผ๋กœ Windows์šฉ ์„œ๋น„์Šค๋ฅผ ์ž‘์„ฑํ•˜๊ธฐ์—๋Š” ๋„ˆ๋ฌด ๊ฒŒ์œผ๋ฆ…๋‹ˆ๋‹ค).

taskkill /im pythonw.exe

์ด๊ฒƒ์œผ๋กœ ์„ค์น˜ ๋ฐ ๊ตฌ์„ฑ์ด ์™„๋ฃŒ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ๊ฑด๊ฐ•ํ•˜๊ฒŒ ์ฆ๊ธฐ์„ธ์š”.

๊ทธ๋‹ค์ง€ ์˜ˆ์˜์ง€ ์•Š์€ Python ์ฝ”๋“œ๋ฅผ ๋ณด๊ณ  ์‹ถ์€ ์‚ฌ๋žŒ๋“ค์„ ์œ„ํ•ด ์—ฌ๊ธฐ ์žˆ์Šต๋‹ˆ๋‹ค. GitHub์˜ ์ €์žฅ์†Œ.

MIT ๋ผ์ด์„ผ์Šค๊ฐ€ ์žˆ์œผ๋ฏ€๋กœ ์ด ์ž‘์—…์„ ์›ํ•˜๋Š” ๋Œ€๋กœ ์ˆ˜ํ–‰ํ•˜์‹ญ์‹œ์˜ค.

์ถ”์‹ : ๋‚˜๋Š” ๊ทธ๊ฒƒ์ด ์•ฝ๊ฐ„์˜ ๋ฒ„ํŒ€๋ชฉ์œผ๋กœ ํŒ๋ช…๋˜์—ˆ๋‹ค๋Š” ๊ฒƒ์„ ์ดํ•ดํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ๊ทธ๊ฒƒ์€ ๊ฐ•๋ ฅํ•˜๊ฒŒ ์ œ ์—ญํ• ์„ ํ•ฉ๋‹ˆ๋‹ค.

์—…๋ฐ์ดํŠธ: 11.10.2019๋…„ 17์›” 37์ผ XNUMX:XNUMX
๋ฌธ์ œ๋ฅผ 1๊ฐœ ๋” ๋ฐœ๊ฒฌํ–ˆ๋Š”๋ฐ, ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•์„ ์•Œ๋ ค์ฃผ์‹œ๋ฉด ์ •๋ง ๊ฐ์‚ฌํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.
๋ฌธ์ œ๋Š” sudo python -m pip install -r ... ์—†์ด ์ข…์†์„ฑ์„ ์„ค์น˜ํ•˜๋ฉด ์„œ๋น„์Šค ์‚ฌ์šฉ์ž์—๊ฒŒ ๋ชจ๋“ˆ์ด ํ‘œ์‹œ๋˜์ง€ ์•Š์œผ๋ฉฐ ์‚ฌ์šฉ์ž๊ฐ€ sudo ์•„๋ž˜์— ๋ชจ๋“ˆ์„ ์„ค์น˜ํ•˜๋„๋ก ๊ฐ•์š”ํ•˜๊ณ  ์‹ถ์ง€ ์•Š๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์ •ํ™•ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
์–ด๋–ป๊ฒŒ ํ•˜๋ฉด ์•„๋ฆ„๋‹ต๊ฒŒ ๋ณด์ด๋‚˜์š”?
UPD: 11.10.2019๋…„ 19์›” 16์ผ XNUMX:XNUMX ๋ฌธ์ œ๋Š” venv๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ํ•ด๊ฒฐ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
๋ช‡ ๊ฐ€์ง€ ๋ณ€ํ™”๊ฐ€ ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค. ๋‹ค์Œ ๋ฆด๋ฆฌ์Šค๋Š” ๋ฉฐ์น  ์•ˆ์— ๋‚˜์˜ฌ ์˜ˆ์ •์ž…๋‹ˆ๋‹ค.

์ถœ์ฒ˜ : habr.com

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