
약 일주일 전에 저는 Wireguard 기반 VPN 서버를 운영했습니다. 며칠 전 클라이언트가 데이터 수신을 중단했다는 사실을 발견하기 전까지는 모든 것이 괜찮았습니다. 인터넷 검색으로 문제를 해결하지 못했습니다. Wireshark를 통해 클라이언트에서 서버로 이동하는 트래픽을 분석한 결과 핸드셰이크가 완료되지 않았다는 사실을 알게 되었습니다(서버 응답이 전혀 없는 클라이언트 시스템에서 시작되는 끝없는 핸드셰이크 시작 패킷). wg0.conf의 내용은 다음과 같습니다.
[Interface]
PrivateKey = SERVER_PRIVATE_KEY
Address = 192.168.69.1/24
ListenPort = 51820
PostUp = iptables -A FORWARD -i wg0 -j ACCEPT; iptables -A FORWARD -o wg0 -j ACCEPT; iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
PostDown = iptables -D FORWARD -i wg0 -j ACCEPT; iptables -D FORWARD -o wg0 -j ACCEPT; iptables -t nat -D POSTROUTING -o eth0 -j MASQUERADE
[Peer]
PublicKey = CLIENT_PUBLIC_KEY
AllowedIPs = 192.168.69.8/32
샘플 클라이언트 구성은 다음과 같습니다.
[Interface]
PrivateKey = CLIENT_PRIVATE_KEY
Address = 192.168.69.8/32
DNS = 1.1.1.1, 1.0.0.1
[Peer]
PublicKey = SERVER_PUBLIC_KEY
AllowedIPs = 0.0.0.0/0
Endpoint = VPS_IP:51820
PersistentKeepalive = 25
불일치를 피하기 위해 양쪽의 공개/개인 키 내용을 두 번 확인했습니다. 모든 트래픽을 차단하는 방화벽이 아닐까 의심했지만 커널 로그에서 이를 확인할 수 있는 내용을 찾지 못했습니다.
답변1
드디어 서버의 공개/개인 키 쌍을 재생성하여 문제를 해결했습니다!