<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Networking on plzhans blog</title><link>https://blog.plzhans.com/categories/networking/</link><description>Recent content in Networking on plzhans blog</description><generator>Hugo</generator><language>ko-kr</language><lastBuildDate>Thu, 03 Sep 2026 11:08:00 +0000</lastBuildDate><atom:link href="https://blog.plzhans.com/categories/networking/index.xml" rel="self" type="application/rss+xml"/><item><title>VPN/원격 접속 가이드 - 뭘 골라야 하나</title><link>https://blog.plzhans.com/posts/121-vpn-remote-access-guide/</link><pubDate>Thu, 03 Sep 2026 00:00:00 +0000</pubDate><guid>https://blog.plzhans.com/posts/121-vpn-remote-access-guide/</guid><description>&lt;h2 id="개요"&gt;개요&lt;/h2&gt;&#10;&lt;p&gt;집 밖에서 홈서버·NAS·사무실 내부망에 안전하게 접속하려면 VPN이 필요하다. 포트포워딩으로 서비스를 인터넷에 직접 노출하는 대신, VPN 터널을 통해 마치 같은 네트워크에 있는 것처럼 접속하는 게 기본 원칙이다. 이 블로그에는 성격이 전혀 다른 세 가지 방식(Tailscale, WireGuard, wg-easy)을 다룬 글이 있는데, &amp;ldquo;VPN&amp;quot;이라는 이름은 같아도 설정 방식·보안 모델·운영 부담이 완전히 달라서 상황에 맞게 골라야 한다.&lt;/p&gt;&#10;&lt;h2 id="선택-기준"&gt;선택 기준&lt;/h2&gt;&#10;&lt;p&gt;방식을 고르기 전에 아래 다섯 가지를 먼저 생각해보면 도움이 된다.&lt;/p&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;&lt;strong&gt;NAT/방화벽 환경&lt;/strong&gt; — 공유기 뒤에 있는 홈서버처럼 포트 개방이 번거롭거나 불가능한 환경인가, 아니면 공인 IP를 직접 붙일 수 있는 클라우드 서버인가.&lt;/li&gt;&#10;&lt;li&gt;&lt;strong&gt;보안 모델&lt;/strong&gt; — 접속을 허용할 장치를 하나씩 명시적으로 등록하는 제로트러스트 방식이 필요한가, 아니면 전통적인 서버-클라이언트 VPN으로 충분한가.&lt;/li&gt;&#10;&lt;li&gt;&lt;strong&gt;운영 부담&lt;/strong&gt; — 서버 인프라(키 관리, 방화벽 규칙, 업데이트)를 직접 유지보수할 여력이 있는가, 아니면 관리형 서비스에 맡기고 싶은가.&lt;/li&gt;&#10;&lt;li&gt;&lt;strong&gt;디바이스/사용자 수&lt;/strong&gt; — 나 혼자 노트북 한두 대만 접속하면 되는지, 여러 사람이 각자 다른 권한으로 접속해야 하는지.&lt;/li&gt;&#10;&lt;li&gt;&lt;strong&gt;성능&lt;/strong&gt; — 대용량 파일 전송처럼 처리량이 중요한지, 아니면 SSH 접속 정도의 가벼운 트래픽인지.&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;h2 id="방식-비교"&gt;방식 비교&lt;/h2&gt;&#10;&lt;table&gt;&#10;&#9;&lt;thead&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th&gt;&lt;/th&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th&gt;Tailscale&lt;/th&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th&gt;WireGuard&lt;/th&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th&gt;wg-easy&lt;/th&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&lt;/thead&gt;&#10;&#9;&lt;tbody&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;서버 운영&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;불필요(관리형)&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;직접 운영&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;직접 운영(웹 UI)&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;포트 개방&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;거의 불필요&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;필요(UDP)&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;필요(UDP)&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;설정 난이도&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;낮음&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;높음(CLI·설정 파일)&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;중간(웹 UI)&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;세밀한 제어&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;낮음&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;높음&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;중간&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;다중 사용자 관리&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;tailnet ACL&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;수동(Peer 등록)&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;웹 UI에서 관리&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;적합한 상황&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;빠르게 시작, 개인·소규모 팀&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;인프라를 전부 직접 통제&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;WireGuard를 편하게 관리&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&lt;/tbody&gt;&#10;&lt;/table&gt;&#10;&lt;h2 id="뭐부터-봐야-하나"&gt;뭐부터 봐야 하나&lt;/h2&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;&lt;strong&gt;포트포워딩 없이 빠르게 개인/소규모 팀용 VPN이 필요하다&lt;/strong&gt; → &lt;a href="../111-tailscale-linux-install-secure-remote-vpn/"&gt;Tailscale Linux 설치 - 안전한 원격 VPN 구성&lt;/a&gt;&lt;/li&gt;&#10;&lt;li&gt;&lt;strong&gt;VPN 서버를 직접 운영하고 세세하게 제어하고 싶다&lt;/strong&gt; → &lt;a href="../116-wireguard-install-client-setup/"&gt;WireGuard 설치와 클라이언트 접속 설정 방법&lt;/a&gt;&lt;/li&gt;&#10;&lt;li&gt;&lt;strong&gt;WireGuard를 웹 UI로 편하게 관리하고 싶다&lt;/strong&gt; → &lt;a href="../98-wg-easy-wireguard-masquerade-exclude-openvpn-client-ip/"&gt;wg-easy WireGuard MASQUERADE 예외 설정으로 OpenVPN 클라이언트 IP 유지하기&lt;/a&gt; (단, 아래 주의사항 있음)&lt;/li&gt;&#10;&lt;li&gt;&lt;strong&gt;OpenVPN을 쓰고 싶다&lt;/strong&gt; → 가장 오래되고 널리 쓰이는 방식이라 클라이언트 호환성이 좋고 자료도 많다. 이 블로그에서는 아직 다루지 않았고, 추후 별도 포스트로 다룰 예정이다.&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;h2 id="실전-시나리오"&gt;실전 시나리오&lt;/h2&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;여행 중 노트북으로 집 NAS 파일 하나만 열어보고 싶다 → Tailscale&lt;/li&gt;&#10;&lt;li&gt;회사 내부망 서버 여러 대를 팀원들에게 표준화된 방식으로 열어주고 싶다 → WireGuard&lt;/li&gt;&#10;&lt;li&gt;WireGuard 설정을 팀원이 각자 웹 UI에서 QR코드로 등록하게 하고 싶다 → wg-easy (단, MASQUERADE 예외 설정 필수)&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;h2 id="tailscale--가장-빠르게-시작하는-방법"&gt;Tailscale — 가장 빠르게 시작하는 방법&lt;/h2&gt;&#10;&lt;p&gt;각 장치가 아웃바운드 연결만으로 tailnet에 합류하는 방식이라 별도 포트 개방이 거의 필요 없다. 직접 P2P 연결이 안 되면 DERP 릴레이로 우회한다. tailnet IP, accept-routes, serve/funnel 모드까지 상황별로 정리했다. 내부적으로 WireGuard 프로토콜을 그대로 쓰기 때문에 성능은 순정 WireGuard와 큰 차이가 없고, 대신 키 교환·NAT 통과·ACL 관리를 Tailscale이 대신 처리해준다는 게 핵심 차이다. 노트북 한두 대에서 홈서버 하나 접속하는 정도라면 가장 먼저 시도해볼 방식이다.&lt;/p&gt;</description></item><item><title>WireGuard 설치와 클라이언트 접속 설정 방법</title><link>https://blog.plzhans.com/posts/116-wireguard-install-client-setup/</link><pubDate>Fri, 10 Jul 2026 08:20:00 +0000</pubDate><guid>https://blog.plzhans.com/posts/116-wireguard-install-client-setup/</guid><description>&lt;p&gt;&lt;picture&gt;&#10; &lt;source srcset="https://blog.plzhans.com/posts/116-wireguard-install-client-setup/assets/1_39922a0f-7e83-8083-8055-de3d7910f539_hu_c80ea1d52f8ac1c0.webp" type="image/webp"&gt;&#10; &lt;img src="https://blog.plzhans.com/posts/116-wireguard-install-client-setup/assets/1_39922a0f-7e83-8083-8055-de3d7910f539_hu_a57aedad20a50ea6.png" alt="Linux 서버에 WireGuard VPN을 구축하고 클라이언트를 연결하는 구성을 나타난 대표 이미지" width="1200" height="670" loading="eager" fetchpriority="high"&gt;&#10; &lt;/picture&gt;&lt;/p&gt;&#10;&lt;h2 id="개요"&gt;개요&lt;/h2&gt;&#10;&lt;p&gt;WireGuard는 간결한 설정과 가벼운 성능으로 peer-to-peer VPN을 구성할 수 있는 도구다.&lt;/p&gt;&#10;&lt;p&gt;이 글에서는 Linux 서버에 WireGuard를 설치하고 서버 키·방화벽·서비스를 맞춘 뒤 Mac 클라이언트로 접속하는 전체 흐름을 정리한다.&lt;/p&gt;&#10;&lt;p&gt;서버 키 생성과 wg0 설정 UDP 51820 포트 개방 클라이언트 Peer 등록 연결 확인까지 순서대로 다루므로 동일한 절차를 따라 설정할 수 있다.&lt;/p&gt;&#10;&lt;h2 id="서버-설치"&gt;서버 설치&lt;/h2&gt;&#10;&lt;p&gt;시스템 서비스로 동작하기 때문에 root로 진행할 것&lt;/p&gt;&#10;&lt;h3 id="기본-설치"&gt;기본 설치&lt;/h3&gt;&#10;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;1&lt;/span&gt;&lt;span class="cl"&gt;apt install wireguard&#10;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;설치 확인&lt;/p&gt;</description></item><item><title>Tailscale Linux 설치 - 안전한 원격 VPN 구성</title><link>https://blog.plzhans.com/posts/111-tailscale-linux-install-secure-remote-vpn/</link><pubDate>Fri, 03 Jul 2026 00:00:00 +0000</pubDate><guid>https://blog.plzhans.com/posts/111-tailscale-linux-install-secure-remote-vpn/</guid><description>&lt;p&gt;&lt;picture&gt;&#10; &lt;source srcset="https://blog.plzhans.com/posts/111-tailscale-linux-install-secure-remote-vpn/assets/1_39222a0f-7e83-80b5-9302-c17947e91a83_hu_417d00276d9357ec.webp" type="image/webp"&gt;&#10; &lt;img src="https://blog.plzhans.com/posts/111-tailscale-linux-install-secure-remote-vpn/assets/1_39222a0f-7e83-80b5-9302-c17947e91a83_hu_7cb60632965f6dec.png" alt="Tailscale로 여러 장치를 하나의 개인 네트워크로 묶어 안전하게 원격 접속하는 구성을 나타난 대표 이미지" width="1200" height="670" loading="eager" fetchpriority="high"&gt;&#10; &lt;/picture&gt;&lt;/p&gt;&#10;&lt;h2 id="개요"&gt;개요&lt;/h2&gt;&#10;&lt;p&gt;Tailscale은 여러 장치를 하나의 개인 네트워크처럼 묶어주는 VPN 서비스다. 리눅스 서버, NAS, 노트북, 스마트폰이 서로 다른 장소에 있어도 같은 내부망에 있는 것처럼 연결할 수 있다.&lt;/p&gt;&#10;&lt;p&gt;일반적인 서버 접속은 외부에서 서버로 들어오는 인바운드 포트를 열어야 한다. 이 방식은 공유기 포트 포워딩, 방화벽 허용, 공인 IP 설정이 필요하고 잘못 설정하면 서버가 인터넷에 직접 노출될 수 있다.&lt;/p&gt;&#10;&lt;p&gt;Tailscale은 반대로 장치가 밖으로 나가는 아웃바운드 연결을 사용한다. 그래서 대부분의 환경에서 별도 포트 개방 없이 사용할 수 있다. 다만 회사망이나 보안 장비에서 아웃바운드 통신을 강하게 제한하는 경우에는 방화벽의 아웃바운드 정책 영향을 받을 수 있다.&lt;/p&gt;</description></item><item><title>wg-easy WireGuard MASQUERADE 예외 설정으로 OpenVPN 클라이언트 IP 유지하기</title><link>https://blog.plzhans.com/posts/98-wg-easy-wireguard-masquerade-exclude-openvpn-client-ip/</link><pubDate>Thu, 19 Mar 2026 06:06:00 +0000</pubDate><guid>https://blog.plzhans.com/posts/98-wg-easy-wireguard-masquerade-exclude-openvpn-client-ip/</guid><description>&lt;p&gt;&lt;picture&gt;&#10; &lt;source srcset="https://blog.plzhans.com/posts/98-wg-easy-wireguard-masquerade-exclude-openvpn-client-ip/assets/1_32822a0f-7e83-8086-99d3-e8f53af5998c_hu_18a64adb2b4b188c.webp" type="image/webp"&gt;&#10; &lt;img src="https://blog.plzhans.com/posts/98-wg-easy-wireguard-masquerade-exclude-openvpn-client-ip/assets/1_32822a0f-7e83-8086-99d3-e8f53af5998c_hu_5d63f3597e09d33b.png" alt="WireGuard MASQUERADE에서 특정 대역을 제외해 OpenVPN 클라이언트 사설 IP를 그대로 유지하는 구성을 나타난 대표 이미지" width="1200" height="670" loading="eager" fetchpriority="high"&gt;&#10; &lt;/picture&gt;&lt;/p&gt;&#10;&lt;h2 id="요약"&gt;요약&lt;/h2&gt;&#10;&lt;p&gt;WireGuard(wg-easy)의 기본 NAT(MASQUERADE) 설정 때문에, 내부망(예: OpenVPN 사설망)으로 요청을 보낼 때 최종 서버에서는 VPN 서버 IP가 요청 IP로 보인다.&lt;/p&gt;&#10;&lt;p&gt;특정 대역을 MASQUERADE 대상에서 제외하면, OpenVPN 클라이언트의 사설 IP가 그대로 요청 IP로 전달된다.&lt;/p&gt;&#10;&lt;p&gt;wg-easy 기본 훅(PostUp / PostDown)에는 다음과 같은 NAT 규칙이 포함된다.&lt;/p&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;&lt;code&gt;POSTROUTING&lt;/code&gt; 체인에서 &lt;code&gt;-j MASQUERADE&lt;/code&gt; 를 적용한다.&lt;/li&gt;&#10;&lt;li&gt;이 설정이 활성화되면, VPN 클라이언트 트래픽이 외부로 나갈 때 출발지 IP가 VPN 서버 IP로 변환된다.&lt;/li&gt;&#10;&lt;li&gt;그래서 OpenVPN 사설망 같은 내부 대역으로 접근할 때도, 최종 서버 로그에는 VPN 서버 IP가 남는다.&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;hr&gt;&#10;&lt;h2 id="해결-방법-iptables"&gt;해결 방법: iptables&lt;/h2&gt;&#10;&lt;p&gt;핵심은 &lt;strong&gt;MASQUERADE 적용에서 특정 목적지 대역을 제외&lt;/strong&gt;하는 것이다.&lt;/p&gt;</description></item><item><title>Windows/Linux/macOS DNS 캐시 지우기</title><link>https://blog.plzhans.com/posts/6-flush-dns-cache/</link><pubDate>Sun, 22 Feb 2026 16:11:00 +0000</pubDate><guid>https://blog.plzhans.com/posts/6-flush-dns-cache/</guid><description>&lt;p&gt;&lt;picture&gt;&#10; &lt;source srcset="https://blog.plzhans.com/posts/6-flush-dns-cache/assets/1_30f22a0f-7e83-8064-b489-d30573976c05_hu_f2a507d87cc63e24.webp" type="image/webp"&gt;&#10; &lt;img src="https://blog.plzhans.com/posts/6-flush-dns-cache/assets/1_30f22a0f-7e83-8064-b489-d30573976c05_hu_a647225581e76fe0.png" alt="Windows·Linux·macOS에서 로컬 DNS 캐시를 비워 변경된 레코드를 반영하는 과정을 나타난 대표 이미지" width="1200" height="670" loading="eager" fetchpriority="high"&gt;&#10; &lt;/picture&gt;&lt;/p&gt;&#10;&lt;h2 id="개요"&gt;개요&lt;/h2&gt;&#10;&lt;p&gt;실무 작업을 하다 보면 도메인 설정에서 DNS 레코드를 변경했는데도 로컬 PC나 서버에서 즉시 반영되지 않는 경우가 있습니다.&lt;/p&gt;&#10;&lt;p&gt;이는 OS나 애플리케이션(브라우저 등)이 DNS 응답을 로컬에 캐싱하기 때문입니다.&lt;/p&gt;&#10;&lt;p&gt;이 글에서는 Windows, Linux, macOS에서 로컬 DNS 캐시를 비우는 방법을 정리합니다.&lt;/p&gt;&#10;&lt;blockquote&gt;&#10;&lt;p&gt;⚠️ &lt;strong&gt;로컬 캐시를 비워도 즉시 반영되지 않을 수 있습니다&lt;/strong&gt;&lt;br&gt;&#10;로컬 캐시를 비워도 DNS 리졸버나 네임서버의 캐싱 정책에 의해 &lt;strong&gt;TTL이 남아 있으면&lt;/strong&gt; 변경이 바로 전파되지 않을 수 있습니다.&lt;/p&gt;</description></item></channel></rss>