<node.js> 80 ํฌํธ๋ก ๋ค์ด์ค๋ ์์ฒญ์ด 3000 ํฌํธ๋ก ์ ๋ฌ ์๋ ๋: iptables
๐ 3000๋ฒ ํฌํธ์์ 80๋ฒ ์ ์ฉ์ด ์๋ ๋
๋ฆฌ๋
์ค๋ก ๋ค์ด์ค๋ ๋ชจ๋ ์์ฒญ์ iptables
์ ์ํด ์ ์๋ ๊ท์น์ ๋ฐ๋ผ ์ฒ๋ฆฌ๋๋ฉฐ,
์ฐ๋ฆฌ๋ ์ด๊ฒ์ ์ด์ฉํด ์ธ๋ถ์์ 80 ํฌํธ๋ก ๋ค์ด์ค๋ ์์ฒญ์ ๋ฆฌ๋
์ค ๋ด๋ถ์์ ์ฌ์ฉ๋๋ 3000 ํฌํธ๋ก ์ ๋ฌํ๋๋ก ๊ท์น์ ์ค์ ํ ์ ์์ต๋๋ค. ์๋ ๋ช
๋ น์ด๋ฅผ ํตํด์
$ sudo iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 3000
iptables๋ฅผ ์ด์ฉํ์ฌ 80๋ฒ ํฌํธ๋ก ๋ผ์ฐํ
์ ์ํค๊ณ ๋ธ๋ผ์ฐ์ ์ฃผ์์ฐฝ์ ํฌํธ๋ฅผ ์์ด๋๋ฐ๋ ์๋๋ ๊ฒฝ์ฐ.
iptables์ PREROUTING์ด ์ฌ๋ฌ ๋ฒ ์ ์ฉ๋์ด ์๋ ๊ฒฝ์ฐ ๊ทธ๋ด์๋ ์์ต๋๋ค. ์๋ ๋ช
๋ น์ด๋ฅผ ํตํด iptables ๋ฑ๋ก ์ํ๋ฅผ ํ์ธํฉ๋๋ค.
# ์๋ ๋ช
๋ น์ด ์คํ
$ sudo iptables -t nat -L
Chain PREROUTING (policy ACCEPT)
target prot opt source destination
REDIRECT tcp -- anywhere anywhere tcp dpt:http redir ports 5000
REDIRECT tcp -- anywhere anywhere tcp dpt:http redir ports 3000
REDIRECT tcp -- anywhere anywhere tcp dpt:http redir ports 3000
Chain INPUT (policy ACCEPT)
target prot opt source destination
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
Chain POSTROUTING (policy ACCEPT)
target prot opt source destination
PREROUTING ๋ถ๋ถ์ ๋ณด๋ฉด ์ ๊ฐ ์ฒ์์ ๋ค๋ฅธ ํฌ์คํธ๋ฅผ ๋ณด๋ฉฐ 5000 -> 80 ํฌํธ๋ก ์ธํ ํด๋๋๋ฐ ์๊ฐํด๋ณด๋ ๋ด ์๋ฒ๋ 3000๋ฒ ํฌํธ๋ฅผ ์ค์ ํ๊ณ ์๋ ๊ฑธ ๊นจ๋ฌ์์ต๋๋ค.
๊ทธ๋์ ๋ค์ 3000 -> 80 ํฌํธ๋ก ์ธํ ํ๋ ๋ช ๋ น์ด๋ฅผ ์ ๋ ฅํ๋๋ฐ๋ ์ํ๋๋๋ก ์ธํ ์ด ์๋์ด์ ์ฌ๋ฌ ๋ฒ ๊ฐ์ ๋ช ๋ น์ด๋ฅผ ์ ๋ ฅํ ๊ฒ์ ๋ณผ ์ ์์ต๋๋ค
๐ ํด๊ฒฐ ๋ฐฉ๋ฒ
ํด๊ฒฐ ๋ฐฉ๋ฒ์ PREROUTING ๋ถ๋ถ์ ํ ํญ๋ชฉ๋ง ๋จ๊ธฐ๋ฉด ๋๋ ๊ฒ์ด์์ต๋๋ค.
๋ค์์ ๋งจ ์ ํญ๋ชฉ์ ํ๋ ์ญ์ ํ๋ ๋ช ๋ น์ด์ ๋๋ค.
$ sudo iptables -t nat -D PREROUTING 1
์ดํ ๋ค์ ๋ผ์ฐํ ํญ๋ชฉ๋ค์ ํ์ธํด๋ณด๋ฉด $ sudo iptables -t nat -L ํ๋๊ฐ ์ฌ๋ผ์ ธ ์์๊ฒ๋๋ค.
์ด๋ ๊ฒ ํด์ ํญ๋ชฉ์ ํ๋๋ง ๋จ๊ฒจ๋๊ณ ๋ค์ node.js ์ฑ์ ์คํ์ํค๋ฉด ์ ์์ ์ผ๋ก ์คํ๋ฉ๋๋ค.