wg-quick
wg-quick은 common use case에서 WireGuard interface를 간단히 시작하고 종료하는 script다. wg와 운영체제의 network command를 감싸 address, MTU, route, 선택적 DNS와 hook을 함께 처리한다.
Summary
up은 interface를 만들고 configuration, address, MTU와 route를 적용한다.down은 interface를 종료·제거하고 선택적으로 현재 설정을 저장한다.save는 interface를 내리지 않고 현재 configuration을 저장한다.strip은wg-quick전용 key를 제거해wg에 전달할 형식으로 출력한다.
Installation
wg-quick은 Unix 계열 환경의 wireguard-tools에 포함된다.
Debian / Ubuntu
sudo apt update sudo apt install wireguard
Fedora
sudo dnf install wireguard-tools
RHEL 8
sudo yum install https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm https://www.elrepo.org/elrepo-release-8.el8.elrepo.noarch.rpm sudo yum install kmod-wireguard wireguard-tools
이 upstream 절차는 RHEL 8 전용이다. 다른 major version에는 그대로 적용하지 않는다.
macOS
brew install wireguard-tools
Windows
Windows용 WireGuard는 native manager와 tunnel service를 사용하며 Unix shell script인 wg-quick을 기본 workflow로 제공하지 않는다.
설치 확인
wg-quick --help
wg-quick이 설치되어 있지 않아 live help를 실행하지 않았다. command와 동작은 upstream wg-quick(8) manual을 기준으로 정리했다.
Usage
wg-quick up|down|save|strip INTERFACE|CONFIG_FILE
sudo wg-quick up wg0 sudo wg-quick down wg0
interface 이름만 주면 일반적으로 /etc/wireguard/INTERFACE.conf를 찾는다. file path를 직접 줄 때는 file 이름이 interface 이름과 같은 INTERFACE.conf 형식이어야 한다.
Commands
| Command | 역할 |
|---|---|
up | interface 생성, configuration·address·route 적용과 up hook 실행 |
down | down hook 실행, 선택적 저장과 interface 제거 |
save | 활성 interface의 configuration을 file에 저장 |
strip | wg-quick 확장 key를 제외한 wg configuration 출력 |
Interface Lifecycle
일회성 시작과 종료
sudo wg-quick up wg0 sudo wg-quick down wg0
systemd에서 자동 시작
sudo systemctl enable --now wg-quick@wg0 systemctl status wg-quick@wg0 --no-pager journalctl -u wg-quick@wg0 -b --no-pager
sudo wg-quick down wg0 rollback 경로를 먼저 확보한다.
Configuration
wg-quick은 wg configuration에 Address, DNS, MTU, Table, PreUp, PostUp, PreDown, PostDown, SaveConfig를 확장한다. 전체 작성법은 WireGuard configuration을 참고한다.
wg 형식으로 변환
sudo wg-quick strip wg0
출력에는 secret이 포함될 수 있으므로 terminal log나 ticket에 그대로 공유하지 않는다.
활성 interface에 차이 반영
sudo wg syncconf wg0 <(sudo wg-quick strip wg0)
이 방식은 wg가 이해하는 peer 설정 변경에 적합하다. address, DNS, route, MTU 또는 hook이 바뀌면 down 후 up이 필요할 수 있다.
SaveConfig 주의
SaveConfig = true이면 down 시 runtime 상태가 configuration file을 덮어쓸 수 있다. 선언적 file을 source of truth로 관리한다면 일반적으로 생략하고 변경 전 backup을 보관한다.
Troubleshooting
시작 실패
sudo wg-quick up wg0 systemctl status wg-quick@wg0 --no-pager journalctl -u wg-quick@wg0 -b --no-pager sudo wg-quick strip wg0
configuration file permission, key 형식, CIDR, interface 중복, 필요한 resolvconf 또는 firewall command의 존재 여부를 확인한다.
route 또는 DNS 문제
AllowedIPs에서 자동 생성된 route와 기존 route가 충돌하는지 확인한다.- default route가 포함되면 policy routing과 firewall mark도 함께 확인한다.
- Linux의
DNS처리는resolvconf를 호출할 수 있으므로 resolver manager와의 호환성을 확인한다. - MTU 문제로 특정 크기의 packet만 실패하면 path MTU와
MTU설정을 점검한다.
Compatibility
wg-quick은 단순한 use case용 helper다. 복잡한 policy는 NetworkManager 또는 명시적인 network configuration이 더 적합할 수 있다.- route, DNS, firewall helper 동작과 configuration 검색 경로는 운영체제·배포판별로 다를 수 있다.
- Windows에서는 native WireGuard manager와 service workflow를 사용한다.
Help
See Also
History
- codex:: 2026-08-13 WireGuard 문서에서 wg-quick command reference를 분리했다.