Rules ko - FrankoonG/hy2scale GitHub Wiki
๐ English | ไธญๆ | ํ๊ตญ์ด
๋ผ์ฐํ ๊ท์น์ ์ฌ์ฉํ๋ฉด ํน์ IP ๋๋ ๋๋ฉ์ธ์ผ๋ก์ ํธ๋ํฝ์ ์ ํํ ์ถ๊ตฌ ๋ ธ๋๋ฅผ ํตํด ๋ผ์ฐํ ํ ์ ์์ต๋๋ค. ์ผ๋ฐ์ ์ธ ์ฉ๋:
-
netflix.com์ ๋ฏธ๊ตญ ์ถ๊ตฌ๋ฅผ ํตํด ์ ์ก -
spotify.com์ ๋ ์ผ ์ถ๊ตฌ๋ฅผ ํตํด ์ ์ก -
8.8.8.8์ ๊ธฐ๋ณธ ๋ผ์ฐํธ์ ๋ค๋ฅธ ๋ ธ๋๋ฅผ ํตํด ์ ์ก


๋ผ์ฐํ ๊ท์น์
NET_ADMIN์ ๊ฐ์ถ ํธ์คํธ ๋คํธ์ํฌ ๋ชจ๋ (ํ ๋ชจ๋)๊ฐ ํ์ํฉ๋๋ค. ๋ธ๋ฆฌ์ง ๋ชจ๋์์๋ ๊ท์น ํญ์ด ๋นจ๊ฐ์ ๋ฐฐ๋๋ฅผ ํ์ํ๋ฏ๋ก Users ํ์ด์ง์์ ์ฌ์ฉ์๋ณexit_via๋ฅผ ๋์ ์ฌ์ฉํ์ธ์.
ํ์ด์ง์๋ ๋ ๊ฐ์ ํญ์ด ์์ผ๋ฉฐ, ๊ฐ ํญ์ ๊ท์น์ ํ๋ฉด ๋ชฉ๋ก์ ๋๋ค.
๋ชฉ์ ์ง IP ๋๋ CIDR๋ก ๋งค์นญํฉ๋๋ค.
| ํ๋ | ์์ |
|---|---|
| ๋์ |
8.8.8.8, 1.1.1.1, 203.0.113.0/24 (์ผํ๋ก ๊ตฌ๋ถ๋ ํ๋ ์ด์) |
| Exit via |
us โ ์ด IP๋ค์ ํธ๋ํฝ์ us ์ถ๊ตฌ๋ก ๋ผ์ฐํ
|
| ์ด๋ฆ | ์ ํ์ ๋ผ๋ฒจ |
| ํ์ฑํ | ํ ๊ธ |
๊ตฌํ: iptables DNAT๊ฐ ๋ชฉ์ ์ง ํธ๋ํฝ์ ํธ์คํธ์ ํฌ๋ช ํ๋ก์ ์์ผ์ ๊ณ ์ ํ๊ณ , ์์ผ์ด ์ฐ๊ฒฐ์ ๋ฆด๋ ์ด ํ๋ ์ธ์ ๋๊ฒจ ์ ํ๋ ์ถ๊ตฌ๋ก ๋ค์ด์ผํฉ๋๋ค.
ํธ์คํธ๋ช ์ผ๋ก ๋งค์นญํฉ๋๋ค (ํธ์คํธ๋ช ๋งค์นญ์ 60์ด๋ง๋ค ์ฌํด์๋ฉ๋๋ค).
| ํ๋ | ์์ |
|---|---|
| ๋์ |
netflix.com, music.apple.com, bilibili.com
|
| Exit via |
us, de, jp, โฆ |
๋ ธ๋๊ฐ ์ฃผ๊ธฐ์ ์ผ๋ก ๊ฐ ๋๋ฉ์ธ์ IP ์งํฉ์ผ๋ก ํด์ํ๊ณ IP ๊ท์น๊ณผ ๊ฐ์ DNAT ํ์ดํ๋ผ์ธ์ ํ๋ก๊ทธ๋๋ฐํฉ๋๋ค. ๋๋ฉ์ธ์ IP๊ฐ ๋ฐ๋๋ฉด ๊ท์น์ด ๋ฐ๋ผ๊ฐ๋๋ค.
์ฌ์ฉ์๋ณ ์ถ๊ตฌ ๋ผ์ฐํ ๊ณผ ๋์ผํ ์ค์์น:
| ๋ชจ๋ | ๋์ |
|---|---|
| Direct | ๋จ์ผ ๊ฒฝ๋ก |
| Quality | ์ฌ๋ฌ ๊ฒฝ๋ก ๊ฐ ํ์ผ์ค๋ฒ |
| Aggregate | ๊ฒฝ๋ก ๊ฐ ๋ก๋ ๋ฐธ๋ฐ์ฑ |
๊ท์น ํ์ด์ง๋ Nodes / Users / TLS์ ๋์ผํ ใ๋จผ์ ์ ํ, ๊ทธ๋ค์ ์์ ใ ํจํด์ ๋ฐ๋ฆ ๋๋ค:
- ๊ท์น ํ์ ๋จ์ผ ํด๋ฆญํ๋ฉด ์ ํ๋ฉ๋๋ค โ ๊ท์น ์นด๋ ์ฐ์๋จ, Import์ + New Rule ์ฌ์ด์ ๋ น์ Edit ๋ฒํผ์ด ๋ํ๋ฉ๋๋ค.
- ์์ชฝ ์ฒดํฌ๋ฐ์ค ์ ์ด ํ์ฅ๋์ด ์์ด ํจ๋ฉ์ด ์ ์ฉ๋ ์์ญ ์ด๋๋ ํด๋ฆญํ๋ฉด ํ ์ฒดํฌ๋ฐ์ค๊ฐ ํ ๊ธ๋ฉ๋๋ค (์์ ์ ๋ ฅ์ ์ ํํ ๋ ธ๋ฆด ํ์๊ฐ ์์ต๋๋ค). ํ ๋ณธ๋ฌธ ํด๋ฆญ์ ๋จ๋ ์ ํ (๋จ์ผ ํ ๊ต์ฒด)์ด๋ฉฐ, ์ฒดํฌ๋ฐ์ค ํด๋ฆญ์ ๋ค์ค ์ ํ์ ์ถ๊ฐ๋ฉ๋๋ค.
- ์นด๋ ๋ณธ๋ฌธ ๋ฐ๊นฅ์ ๋น ์์ญ ํด๋ฆญ โ ํ์ด์ง ํค๋ฉ, ์นด๋ ํค๋ ์คํธ๋ฆฝ ์์ฒด โ ์ ๋จ์ผ ํ ์ ํ์ ํด์ ํฉ๋๋ค. ๋ค์ค ์ ํ์ ์ ์ง๋ฉ๋๋ค. ๋ฒํผ / ์ ๋ ฅ / ์ด๋ฆฐ ๋ชจ๋ฌ ์ ํด๋ฆญ์ ์ ๋ ์ ํ์ ํ์ง ์์ต๋๋ค.
ํธ์ง์ ์ ํ ์ํ๋ก ๊ตฌ๋๋ฉ๋๋ค โ ํ๋ณ๋ก ๋ ธ๋ฆด ์์ ํธ์ง ์ฐํ ์์ด์ฝ์ด ์์ต๋๋ค.
์ฌ๋ฌ ๊ท์น์ ์ฒดํฌํด ์ผ๊ด ์์ ๋ฐ๋ฅผ ๋ ธ์ถํฉ๋๋ค:
- ํ์ฑํ / ๋นํ์ฑํ
- ์ญ์
์ฌ์ฉ์ ํ์ด์ง์ฒ๋ผ ์ข์ ๋ทฐํฌํธ์์๋ ๋ฐ๊ฐ ์ค๋ฒํ๋ก ๋ฉ๋ด๋ก ์ ํ๋๋ค.
- ๋ด๋ณด๋ด๊ธฐ โ ํ์ฌ ๊ท์น ๋ชฉ๋ก์ JSON์ผ๋ก ๋ค์ด๋ก๋.
-
๊ฐ์ ธ์ค๊ธฐ โ JSON์์ ๊ท์น์ ์ผ๊ด ์์ฑํฉ๋๋ค. ์ผ์นํ๋
id๊ฐ์ ๊ธฐ์กด ๊ท์น์ ๋ฎ์ด์๋๋ค.
๋ฐฐํฌ ๊ฐ ์ ์ฑ ๋ง์ด๊ทธ๋ ์ด์ ์ด๋ ๋ฒ์ ๊ด๋ฆฌ๋ ๋ฐฑ์ ๋ณด๊ด์ ์ ์ฉํฉ๋๋ค.
iptables๊ฐ ๊ฒฝ๋ํ๋ ๋ผ์ฐํฐ ๋ฐฐํฌํ (iKuai, OpenWrt ๋ฑ)์์๋ HY2 SCALE์ด TUN ๋ชจ๋๋ก ํด๋ฐฑํฉ๋๋ค: gvisor ๊ธฐ๋ฐ TUN ๋๋ฐ์ด์ค๊ฐ Raw IP ํจํท์ ์บก์ฒํ์ฌ ๋์ผํ ๋งค์นญ ๋ก์ง์ ์ ์ ์คํ์ด์ค์์ ์ ์ฉํ ๋ค ๋ฉ์๋ฅผ ํตํด ํฌ์๋ฉํฉ๋๋ค.
TUN ๋ชจ๋๋ ์ข ๋จ ๊ฐ TCP / UDP ์ธ์ ์ ์ ์งํฉ๋๋ค โ ๊ฐ ํ์์ ์ฌ-NAT๋ ๋ ๋์ด์ง๋ Moonlight ๊ฒ์ ์คํธ๋ฆฌ๋ฐ๊ณผ ๊ฐ์ ์ง์ฐ ๋ฏผ๊ฐ ํธ๋ํฝ์ ์ ์ฉํฉ๋๋ค.
๋ฐฐํฌ ์ธ๋ถ ์ฌํญ์ ๋ผ์ฐํฐ ์์คํ ์ ์ฐธ๊ณ ํ์ธ์.
-
DEBUG=true๋ฅผ ํ์ฑํํ๋ฉด iptables ๊ท์น ์ฝ์ / ์ญ์ ๋ก๊ทธ๋ฅผ ๋ณผ ์ ์์ต๋๋ค. -
docker exec <container> iptables -t nat -L์ด ์ค์๊ฐ ๊ท์น ์ธํธ๋ฅผ ํ์ํฉ๋๋ค (ํธ์คํธ ๋ชจ๋). - ์ปจํ ์ด๋ ์ค์ง ๋๋ ๊ฐ๋ณ ๊ท์น ๋นํ์ฑํ ์ ๊ท์น์ด ๊น๋ํ๊ฒ ์ ๊ฑฐ๋ฉ๋๋ค โ ์์ฌ ๊ท์น์ด ๋จ์ง ์์ต๋๋ค.