/etc/wireguard/wg0.conf 에 WireGuard 프로필이 있고 재부팅할 때마다 wg-quick up 을 손으로 입력하지 않고 올리고 싶을 것입니다. 패키지에 포함된 systemd 템플릿이 바로 그 일을 하는데, [email protected] 가 wg0 이라는 프로필에 대해 wg-quick을 실행합니다. 또한 프로필이 선언한 주소, 경로, DNS와 모든 훅까지 설치하므로 커널에 키를 적재하는 것보다 많은 일을 합니다. 템플릿이 있다고 가정하기 전에 시스템에 실제로 있는지 확인하세요.

이 안내의 나머지는 실제로 작업하는 순서를 따릅니다.

유닛과 그것이 읽는 프로필 찾기

systemctl list-unit-files 'wg-quick*' 으로 유닛 파일을 나열합니다. 이를 패키징하는 배포판에서는 [email protected] 이 보이고 인스턴스 이름은 프로필에서 가져옵니다. 인스턴스는 /etc/wireguard/<name>.conf 로 해석되므로 wg-quick@wg0 은 wg0.conf 만 읽고 다른 것은 읽지 않습니다. 목록이 비어 있다면 도구 패키지가 설치되지 않은 것이며 아무리 활성화해도 소용없습니다.

프로필을 모드 600, 소유자 root로 유지하세요. 개인 키가 들어 있고, 그대로 두면 유닛은 더 느슨한 권한으로도 아무렇지 않게 실행됩니다.

올리고 저널 읽기

systemctl start wg-quick@wg0 으로 인스턴스를 시작한 다음 systemctl status wg-quick@wg0 과 journalctl -u wg-quick@wg0 -b 를 확인합니다. 시작하자마자 종료되는 유닛은 대개 프로필 오류이며 저널이 해당 줄을 알려 줍니다. wg show 으로 인터페이스가 존재하고 최근 핸드셰이크가 최신인지 확인하세요. wg-quick 설명서 에는 스크립트가 인터페이스 자체 외에 무엇을 하는지 나와 있습니다.

핸드셰이크가 없는 구성된 인터페이스는 경로나 키 문제이지 서비스 문제가 아닙니다.

관리자를 하나만 맡기기

NetworkManager나 다른 클라이언트가 이미 터널을 소유하고 있다면 systemd 유닛을 시작할 때 같은 인터페이스, 경로, DNS에 두 번째 소유자가 생깁니다. 증상은 혼란스럽습니다: 터널은 올라오는데 경로가 사라지거나, 몇 초 뒤 DNS가 되돌아갑니다. 관리자를 하나 고르고 그 프로필에 대해 다른 쪽을 비활성화하세요. 저널은 보통 유닛이 성공을 보고한 직후 인수를 경로나 리졸버 변경으로 보여 줍니다.

두 관리자는 소유권을 공유하지 않습니다. 서로를 덮어씁니다.

중지, 재시작, 부팅 시험하기

systemctl stop wg-quick@wg0 을 실행해 인터페이스가 사라지고 경로가 제거되었는지 확인합니다. 해제 버그는 시작 실패가 아니라 남은 경로로 나타나므로, 그다음 다시 시작해 경로가 돌아오는지 확인하세요. 마지막으로 systemctl enable --now wg-quick@wg0 으로 부팅 시 활성화하고 한 번 재부팅하세요.

부팅 시에는 유닛이 실행되기 전에 엔드포인트 이름이 해석되어야 합니다. DNS가 아직 올라오지 않았다면 유닛은 실패하고, 손으로 시작할 때까지 실패 상태로 남습니다.

소유자 기록하기

유닛이 어떤 프로필을 읽는지, 어떤 관리자가 인터페이스를 소유하는지, 파일이 어디서 왔는지 적어 두세요. 나중에 누군가 같은 터널을 데스크톱 클라이언트로 가져올 때 그 메모가 이전과 한 주소를 두고 다투는 두 배포를 가릅니다. 비슷한 이름의 프로필 두 개가 흔한 혼란 원인이므로 인터페이스 이름도 기록하세요.

소유자가 둘인 터널은 첫 재부팅까지는 동작하고 그다음에는 수수께끼가 됩니다. 그래서 메모는 채팅 스레드가 아니라 저장소에 두어야 합니다.

관련 글