---
title: OPNsense에서 WireGuard VPN을 구축하고 Windows 클라이언트에서 연결하는 절차
description: "Network How-To [![](https://bestnetllc.co.jp/wp-content/uploads/2026/03/opnsense-wg.png)](https://bestnetllc.co.jp/wp-content/uploads/2026/03/opnsense-wg.png) 자택·거점·사내 OPNsense를 WireGuard 서버로 구성하고, Windows PC에서 안전하게 접속하기 위한 실전 절차입니다. 본 문서는 “사내 LAN 또는 자택 LAN으로 들어가는” 용도를 가정한 **split tunnel** 구성을 전제로 합니다. 절차의 골격은 OPNsense 공식 *WireGuard Road Warrior Setup*과 WireGuard 일반…"
url: "https://bestnetllc.co.jp/ko/docs/opnsense%ec%97%90%ec%84%9c-wireguard-vpn%ec%9d%84-%ea%b5%ac%ec%b6%95%ed%95%98%ea%b3%a0-windows-%ed%81%b4%eb%9d%bc%ec%9d%b4%ec%96%b8%ed%8a%b8%ec%97%90%ec%84%9c-%ec%97%b0%ea%b2%b0%ed%95%98%eb%8a%94/"
updated: "2026-10-19"
category: "사용 가이드-BESTNET CLOUD"
---

# OPNsense에서 WireGuard VPN을 구축하고 Windows 클라이언트에서 연결하는 절차

Network How-To

[![](https://bestnetllc.co.jp/wp-content/uploads/2026/03/opnsense-wg.png)](https://bestnetllc.co.jp/wp-content/uploads/2026/03/opnsense-wg.png)

자택·거점·사내 OPNsense를 WireGuard 서버로 구성하고, Windows PC에서 안전하게 접속하기 위한 실전 절차입니다.
본 문서는 “사내 LAN 또는 자택 LAN으로 들어가는” 용도를 가정한 **split tunnel** 구성을 전제로 합니다. 절차의 골격은
OPNsense 공식 *WireGuard Road Warrior Setup*과 WireGuard 일반 해설, Windows용 공식 인스톨러 안내에 준거합니다.^[[1]](#ref-1)^[[2]](#ref-2)^[[4]](#ref-4)

예상 소요 시간: 20~30분
업데이트: 2026-03-13

이 문서에서 구축하는 구성

Windows Client

⇄

WireGuard Tunnel

⇄

OPNsense

- 프로토콜: WireGuard / UDP
- 용도: 원격 액세스
- 방침: split tunnel
- 클라이언트: 공식 WireGuard for Windows

Overview

## 개요 및 전제

OPNsense에서 WireGuard는 **Instance**(서버 측 가상 인터페이스 설정)와
**Peer**(접속을 허용할 상대)를 조합하여 구성합니다. OPNsense 공식에서는 터널용 주소를
물리적으로 별도의 인터페이스가 존재하는 것처럼 독립된 네트워크로 설계하는 것을 권장합니다.^[[1]](#ref-1)^[[2]](#ref-2)

### 이 문서의 목표

Windows PC에서 WireGuard로 OPNsense에 접속하여, LAN 내 NAS·RDP·SSH·업무 시스템에 안전하게 액세스할 수 있는 상태를 만듭니다.

### 전제로 하는 접속 방식

클라이언트의 인터넷 전체를 VPN으로 보내지 않고, **LAN 방향 통신만** 터널로 보내는 split tunnel을 채택합니다.

### 클라이언트 앱

Windows 측은 **공식 WireGuard for Windows**를 사용합니다. 인스톨러는 WireGuard 공식 사이트에서 제공됩니다.^[[4]](#ref-4)

**주의:** OPNsense는 버전에 따라 화면 배치나 항목명이 달라질 수 있습니다.
다만, Instance / Peer / General / Firewall이라는 구성 개념은 공통입니다.

- OPNsense 관리 UI에 로그인할 수 있을 것
- WAN 측에서 UDP 51820을 사용할 수 있을 것
- 상위 라우터 하위에 OPNsense가 있는 경우, UDP 51820을 OPNsense WAN으로 포워딩할 수 있을 것
- 접속 대상 LAN 세그먼트와 중복되지 않는 WireGuard 전용 네트워크를 준비할 수 있을 것
- Windows 클라이언트에 공식 WireGuard for Windows를 도입할 수 있을 것

Sample Design

## 샘플 구성

문서 내 설명은 다음 예시로 통일합니다. 수치는 어디까지나 샘플이므로, 실제 환경에서는 자사의 주소 체계로 변경하십시오.

| 항목 | 값 | 의미 |
| --- | --- | --- |
| LAN | `192.168.10.0/24` | 사내·자택 측 내부 네트워크 |
| WireGuard 네트워크 | `10.10.10.0/24` | VPN 터널 전용 세그먼트 |
| OPNsense 터널 IP | `10.10.10.1/24` | Instance에 설정할 주소 |
| Windows 클라이언트 IP | `10.10.10.2/32` | Peer에 할당할 고유 주소 |
| 공개 호스트명 | `vpn.example.jp` | WAN의 글로벌 IP 또는 DDNS명 |
| Listen Port | `51820/UDP` | WireGuard 대기 포트 |

**Windows Client**
10.10.10.2/32⇄**WireGuard Tunnel**
10.10.10.0/24⇄**OPNsense**
10.10.10.1/24→**LAN**
192.168.10.0/24**포인트:** OPNsense 공식 문서에서는 Instance 측 터널 주소를
`10.10.10.1/24`와 같이 네트워크를 포함한 CIDR로 설정하고, 서버 측 Instance에
`/32`나 `/128`을 사용하지 않도록 안내하고 있습니다.^[[1]](#ref-1)

Step 1

## OPNsense 측에서 WireGuard Instance 생성하기

1

### 메뉴

`VPN > WireGuard > Instances`를 열고 **+**로 새로 추가합니다.^[[1]](#ref-1)

[![](https://bestnetllc.co.jp/wp-content/uploads/2026/03/opns-wg01.webp)](https://bestnetllc.co.jp/wp-content/uploads/2026/03/opns-wg01.webp)

| 항목 | 설정 예시 | 보충 설명 |
| --- | --- | --- |
| Enabled | Checked | 활성화 |
| Name | `HomeWireGuard` | 임의의 식별명 |
| Public Key / Private Key | 자동 생성 | 톱니바퀴 아이콘으로 새로 생성 |
| Listen Port | `51820` | 다른 서비스와 중복되지 않는 UDP 포트 |
| MTU | `1420` | PPPoE의 경우 `1412` 검토^[[1]](#ref-1) |
| Tunnel Address | `10.10.10.1/24` | WireGuard 전용 세그먼트 |
| Peers | 공란 | 먼저 Peer를 생성하므로 이 시점에서는 미지정 |
| DNS Server | 공란 | Advanced mode에서도 기본적으로 공란. 설정하면 OPNsense 자체의 DNS 설정을 덮어쓰게 됩니다.^[[1]](#ref-1) |

저장 후 다시 Instance를 열어 **Public Key**를 메모해 둡니다.
이 공개 키는 나중에 Windows 클라이언트 설정에 입력할 서버 측 공개 키입니다.^[[1]](#ref-1)

Step 2

## 클라이언트용 Peer 생성하기

OPNsense의 현행 문서에서는 여러 클라이언트를 배포하는 용도로
**Peer generator** 사용을 안내하고 있습니다. 인스턴스 선택, Endpoint 저장,
주소 자동 할당, Config 텍스트 생성이 가능하며, 공개 키만 OPNsense 측에 저장됩니다. 개인 키는
OPNsense에 보관되지 않으므로 생성한 설정을 안전하게 보관하시기 바랍니다.^[[2]](#ref-2)^[[3]](#ref-3)

### 권장 절차: Peer generator 사용하기

1. `VPN > WireGuard > Peer generator`를 엽니다.
2. 대상 Instance를 선택하고 클라이언트명, 접속 대상 FQDN/포트, 필요한 네트워크, DNS를 입력합니다.
3. Address는 `10.10.10.2/32`와 같은 클라이언트 전용 주소를 할당합니다. 현재 구현에서는 주소 자동 할당도 사용할 수 있습니다.^[[3]](#ref-3)
4. Keepalive interval은 25초 권장(NAT나 FW 통과 시 접속성 관점에서)
5. DNS는 일반적으로 공란으로 두지만, VPN 대상의 DNS 서버에서 호스트명을 조회하려면 여기서 지정해야 합니다.
6. Enable WireGuard를 체크
7. **Store and generate next**로 공개 정보를 저장하고, 생성된 **Config**를 복사해
   `client-windows.conf`로 안전하게 저장합니다. 이어서 `Peers` 화면에서 **Apply**를 실행합니다.^[[2]](#ref-2)

[![](https://bestnetllc.co.jp/wp-content/uploads/2026/03/opns-wg02.webp)](https://bestnetllc.co.jp/wp-content/uploads/2026/03/opns-wg02.webp)

**주의:** Peer generator로 생성한 개인 키는 OPNsense에 저장되지 않습니다.
다시 생성한 경우 Windows 측에서도 설정 파일을 재등록해야 합니다.^[[2]](#ref-2)

### 수동으로 Peer를 생성하는 경우

Peer generator를 사용하지 않는 경우 `VPN > WireGuard > Peers`에서 새 Peer를 생성하고,
클라이언트 공개 키와 클라이언트용 `/32` 주소를 설정합니다.^[[1]](#ref-1)

| 항목 | 설정 예시 | 보충 설명 |
| --- | --- | --- |
| Enabled WireGuard | Checked | 활성화 |
| Name | `Windows-Laptop-01` | 단말을 식별할 수 있는 명칭 |
| Public Key | 클라이언트 공개 키 | Windows 측에서 생성한 키 |
| Allowed IPs | `10.10.10.2/32` | 이 클라이언트에 할당할 고유 주소 |
| Pre-shared Key | 임의 | 추가 보안 조치로 사용 가능^[[2]](#ref-2) |

수동으로 Peer를 생성한 후, 원래 Instance로 돌아가서 생성된 Peer를 연결하고 저장한 다음 **Apply**합니다.^[[1]](#ref-1)

수동 생성 시 `client-windows.conf` 템플릿

```
[Interface]
PrivateKey = <Windows클라이언트의 비밀 키>
Address = 10.10.10.2/32
DNS = 10.10.10.1

[Peer]
PublicKey = <OPNsense Instance의 공개 키>
Endpoint = vpn.example.jp:51820
AllowedIPs = 192.168.10.0/24, 10.10.10.0/24
```

DNS를 터널을 통해 사용하는 경우, 해당 DNS 대상이 `AllowedIPs`에 포함되어 있는지 확인하세요.^[[1]](#ref-1)

Step 3

## 인터페이스 할당 및 활성화

1

### 인터페이스 할당

`Interfaces > Assignments`에서 생성된 `wgX` 장치를 추가하고 알아보기 쉬운 설명명을 지정합니다.^[[1]](#ref-1)

[![](https://bestnetllc.co.jp/wp-content/uploads/2026/03/opns-wg03.webp)](https://bestnetllc.co.jp/wp-content/uploads/2026/03/opns-wg03.webp)

2

### 인터페이스 활성화

`Interfaces > OPTX`에서 “인터페이스 활성화”에 체크 표시하고 저장→”변경 사항 적용”을 클릭합니다

[![](https://bestnetllc.co.jp/wp-content/uploads/2026/03/opns-wg04.webp)](https://bestnetllc.co.jp/wp-content/uploads/2026/03/opns-wg04.webp)

| 항목 | 설정 예 | 보충 |
| --- | --- | --- |
| Enable(활성화) | Checked | 인터페이스 활성화 |
| Description | `HomeWireGuard` | 규칙 생성 시 구별하기 쉽게 함 |
| IPv4 Configuration Type | `None` | 수동으로 IP를 설정하지 않음 |
| IPv6 Configuration Type | `None` | 필요 시에만 설정 |

OPNsense 공식에서는 할당된 인터페이스에 IP를 직접 설정할 필요가 없으며,
Instance에 입력한 터널 주소가 WireGuard 재시작 후 자동으로 반영된다고 안내하고 있습니다.^[[1]](#ref-1)

**보충:** 본 문서는 split tunnel 구성이므로, 클라이언트의 전체 인터넷을 VPN으로 보내기 위한
Gateway / Outbound NAT는 필수가 아닙니다. 외부 인터넷까지 터널로 보내는 full tunnel로 구성하려는 경우에만
추가 NAT / Gateway 설정을 진행합니다.^[[1]](#ref-1)

Step 4

## 방화벽 규칙 생성

공식 절차에서는 **WAN 측에서 터널 수립용 UDP를 허용**하고, 이어서
**WireGuard 인터페이스 측에서 허용할 대상을 허용**하는 2단계 구성입니다.^[[1]](#ref-1)^[[2]](#ref-2)

[![](https://bestnetllc.co.jp/wp-content/uploads/2026/03/opns-wg05.webp)](https://bestnetllc.co.jp/wp-content/uploads/2026/03/opns-wg05.webp)

### WAN 측 규칙

| 항목 | 설정 예시 | 보충 설명 |
| --- | --- | --- |
| Action | `Pass` | 수신 허용 |
| Interface | `WAN` | WAN 수신측 |
| Protocol | `UDP` | WireGuard는 UDP |
| Destination | `WAN address` | 자체 WAN |
| Destination Port | `51820` | Instance의 Listen Port와 일치 |
| Description | `Allow WireGuard` | 임의 |

**운용 팁:** 고정 IP의 거점이나 베스천 호스트에서만 접속하는 운용이라면,
WAN 규칙의 **Source**를 해당 IP 또는 세그먼트로 제한하면 공개 범위를 더욱 줄일 수 있습니다.

### WireGuard 인터페이스측 규칙

[![](https://bestnetllc.co.jp/wp-content/uploads/2026/03/opns-wg06.webp)](https://bestnetllc.co.jp/wp-content/uploads/2026/03/opns-wg06.webp)

| 항목 | 설정 예시 | 보충 설명 |
| --- | --- | --- |
| Action | `Pass` | 터널 내 통신 허용 |
| Interface | `HomeWireGuard` | 할당한 WireGuard 인터페이스 |
| Protocol | `any` | 처음에는 통신 확인이 쉬운 설정으로 가능 |
| Source | `HomeWireGuard net` | 터널 네트워크 |
| Destination | `192.168.10.0/24` | 우선 LAN만 허용 |

OPNsense 공식에서는 WireGuard측 규칙의 대상을 `any`로도 설정할 수 있지만,
실제 운용에서는 **필요한 서브넷·필요한 서버만 허용하는** 것을 권장합니다.^[[1]](#ref-1)

PPPoE 환경이나 일부 TCP 통신에서 문제가 생기는 경우 MTU / MSS 조정

공식 절차에서는 PPPoE 환경에서 Instance MTU를 `1412`로 낮추는 예시가 제시되며,
필요에 따라 `Firewall > Settings > Normalization`에서 MSS clamping을 추가하는 방법이 안내되어 있습니다.
TCP만 불안정하거나, 웹만 열리지 않는 증상이 있는 경우 유효합니다.^[[1]](#ref-1)

| 항목 | 설정 예시 |
| --- | --- |
| Interface | `WireGuard (Group)` |
| Description | `WireGuard MSS Clamping IPv4` |
| Max MSS | `1380`(PPPoE라면 `1372`) |

Step 5

## Windows 클라이언트에 설정 적용하기

Windows측은 **공식 WireGuard for Windows**를 사용하는 것이 가장 간단합니다. 설치 프로그램은
WireGuard 공식 사이트에서 받을 수 있습니다.^[[4]](#ref-4)

1. WireGuard for Windows를 설치합니다.
2. OPNsense의 Peer generator에서 저장한 `client-windows.conf`를 준비합니다. 수동으로 작성하는 경우 앞서 설명한 템플릿을 사용합니다.
3. WireGuard for Windows에 설정 파일을 가져옵니다.
4. 대상 터널을 활성화하고 연결을 시작합니다.

**보충:** NAT 환경이나 모바일 회선 등에서 세션 유지가 불안정한 경우 Keepalive interval 사용을 검토합니다.
OPNsense 공식에서도 NAT / firewall traversal을 유지하고 싶은 경우 Keepalive interval이 효과적이라고 설명하고 있습니다.^[[2]](#ref-2)split tunnel의 클라이언트 설정 예시
client-windows.conf

```
[Interface]
PrivateKey = <클라이언트 비밀키>
Address = 10.10.10.2/32
DNS = 10.10.10.1

[Peer]
PublicKey = <OPNsense 공개키>
Endpoint = vpn.example.jp:51820
AllowedIPs = 192.168.10.0/24, 10.10.10.0/24
```

`AllowedIPs`에 `192.168.10.0/24`와 같은 LAN 세그먼트를 입력하면,
해당 목적지만 터널로 전송됩니다. 클라이언트의 모든 통신을 VPN으로 보내려면,
공식 절차대로 `0.0.0.0/0`이나 `::/0`을 사용하지만, 이 경우 OPNsense 측의 NAT / 라우팅 설계도 추가로 필요합니다.^[[1]](#ref-1)

Step 6

## 연결 확인

- Windows 클라이언트에서 터널을 활성화한다
- `10.10.10.1`(OPNsense 측 터널 IP)로 통신 확인을 한다
- LAN 측의 대표 호스트(예: `192.168.10.10`)로 `ping`, RDP, SSH 등을 시도한다
- 필요에 따라 이름 확인을 시도하고, DNS가 통하는지 확인한다
- `VPN > WireGuard > Status`에서 handshake와 송수신량을 확인한다^[[2]](#ref-2)

Operations

## 공개 전에 적용할 강화 조치

### Peer마다 /32를 할당

각 클라이언트에 고유한 `/32`를 할당하면, 단말 단위로 규칙과 로그를 추적하기 쉬워집니다.^[[1]](#ref-1)

### 필요한 목적지만 허용

WireGuard 인터페이스 측 규칙은 `LAN net`이나 특정 서버 그룹으로 제한하고, `any`로 두지 않는 것이 더 안전합니다.

### 고정 거점에서만 접속하면 Source 제한

WAN 규칙의 송신원을 고정 IP로 제한할 수 있다면, 접근 가능한 상대를 더욱 제한할 수 있습니다.

### 필요에 따라 PSK 추가

OPNsense의 Peer에는 pre-shared key를 추가할 수 있으며, 공식에서도 추가 안전 조치로 안내하고 있습니다.^[[2]](#ref-2)

### 상태 확인은 Status / Log File

Handshakes, 데이터량, 설정 오류 확인은 `Status`와 `Log File`이 기본입니다.^[[2]](#ref-2)

### DNS도 최소 권한으로

터널 내 DNS를 사용한다면, 도달 대상·AllowedIPs·Unbound 측 인터페이스 등록을 함께 확인하십시오.^[[1]](#ref-1)

Troubleshooting

## 연결되지 않을 때 확인 항목

Handshake가 나타나지 않음

먼저 WAN 측 UDP 51820 허용, 상위 라우터의 포트 포워딩, Endpoint의 FQDN/포트, 클라이언트 시간의 큰 차이를 확인합니다.

Handshake는 나타나지만 LAN에 도달하지 않음

Peer의 `Allowed IPs`, 클라이언트 측의 `AllowedIPs`, WireGuard 인터페이스 측 규칙의 목적지를 다시 확인하십시오. OPNsense 공식에서도 Allowed IPs가 잘못되면 패킷이 조용히 폐기된다고 안내하고 있습니다.^[[2]](#ref-2)

ICMP는 통하지만, 일부 Web이나 TCP 통신만 불안정

MTU / MSS의 영향을 의심합니다. PPPoE라면 Instance MTU `1412`와 Normalization의 MSS clamping을 시도하십시오.^[[1]](#ref-1)

DNS만 실패

클라이언트에서 지정한 DNS 목적지가 `AllowedIPs`에 포함되어 있는지 확인합니다. Unbound DNS를 모든 인터페이스 등록으로 운영하는 경우, 새로운 WireGuard 인터페이스 추가 후 Unbound의 reload가 필요합니다.^[[1]](#ref-1)

WireGuard 메뉴를 찾을 수 없음 / 화면이 다름

버전 차이를 확인하십시오. Peer generator 주변은 24.1 계열에서 단계적으로 개선되었으며, UI의 모양이나 항목 배치는 버전에 따라 조금씩 다릅니다.^[[3]](#ref-3)

Sources

## 참고 정보

1. OPNsense Documentation, *WireGuard Road Warrior Setup*
   [https://docs.opnsense.org/manual/how-tos/wireguard-client.html](https://docs.opnsense.org/manual/how-tos/wireguard-client.html)
2. OPNsense Documentation, *Virtual Private Networking > WireGuard*
   [https://docs.opnsense.org/manual/vpnet.html](https://docs.opnsense.org/manual/vpnet.html)
3. OPNsense Documentation, *24.1 “Savvy Shark” Series*(Peer generator 관련 업데이트 포함)
   [https://docs.opnsense.org/releases/CE_24.1.html](https://docs.opnsense.org/releases/CE_24.1.html)
4. WireGuard Official, *Installation*
   [https://www.wireguard.com/install/](https://www.wireguard.com/install/)
