wg-quick up wg0을 실행할 때 Wireguard가 인터넷 액세스를 중단하는 이유는 무엇입니까?

wg-quick up wg0을 실행할 때 Wireguard가 인터넷 액세스를 중단하는 이유는 무엇입니까?

라즈베리파이를 와이어가드 서버로 사용하려고 합니다.

이더넷 케이블을 통해 라즈베리 파이를 라우터에 연결할 때 라우터는 파이를 IP에 할당합니다.192.168.1.35

나는 다음을 실행하여 파이가 인터넷에 접속하고 있음을 확인했습니다.평평한www.startpage.comSSH를 통해 파이에 연결할 때

그런데 일단 달려보니wg-빠른 시작 wg0파이에서 나는 모든 인터넷 접속을 잃었습니다. SSH를 통한 핑이 더 이상 작동하지 않습니다.

인터넷 액세스를 다시 얻으려면 실행해야 했습니다.wg-빠른 드롭 wg0

Wireguard가 내 인터넷을 중단시키기 위해 뭔가를 하고 있습니다.

내 Raspberry Pi 라인배커 구성 파일

sudo nano /etc/wireguard/wg0.conf

[Interface]
PrivateKey = PI_PRIVATE_KEY
Address = 192.168.1.100
ListenPort = 51820

[Peer]
PublicKey = CLIENT_PUBLIC_KEY
AllowedIPs = 0.0.0.0/0, ::0

클라이언트 구성 파일

sudo nano /etc/wireguard/wg0.conf

[Interface]
PrivateKey = CLIENT_PRIVATE_KEY
Address = 192.168.1.101/24

[Peer]
PublicKey = PI_PUBLIC_KEY
AllowedIPs = 0.0.0.0/0, ::/0
Endpoint = PI/ROUTER_PUBLIC_IP:51820

참고: 다른 결과를 테스트하기 위해 두 구성에서 AllowedIPs 설정을 여러 번 변경했습니다. 내 Pi의 wg-quick up wg0은 여전히 ​​내 pi를 통해 인터넷을 중단하지만 인터넷은 제대로 실행됩니다.

나는 알아차렸다wg-빠른 시작 wg0내 nft 규칙 세트를 수정하는 동안위로

sudo nft list ruleset
 
 
table ip wg-quick-wg0 {
        chain preraw {
                type filter hook prerouting priority raw; policy accept;
                iifname != "wg0" ip daddr 192.168.2.100 fib saddr type != local drop
        }
 
        chain premangle {
                type filter hook prerouting priority mangle; policy accept;
                meta l4proto udp meta mark set ct mark
        }
 
        chain postmangle {
                type filter hook postrouting priority mangle; policy accept;
                meta l4proto udp meta mark 0x0000ca6c ct mark set meta mark
        }
}

wg0 인터페이스가 다운되면 이러한 규칙이 존재하지 않으므로 이러한 규칙의 무언가가 pi 내의 인터넷 액세스를 차단할 수 있습니다.

문제 제거

  1. 192.168.1.100은 라우터의 다른 장치에서 사용되지 않습니다.
  2. 주석 해제net.ipv4.ip_forward=1존재하다/etc/sysctl.conf차이점은 없습니다. 정확한 문제는 여전히 동일합니다.네트워크 접속ip4 댓글을 달거나 wg0의 댓글을 삭제하세요. 아니요네트워크 접속ip4 댓글을 달거나 wg0의 주석을 해제하세요.
  3. 이 단계에서 wireguard 클라이언트는 관련이 없습니다.
  4. 이 문제는 오류가 발생하므로 wireguard 개인/공개 키와는 아무런 관련이 없습니다.

답변1

Wireguard 인터페이스가 시작되면 VPN을 통해 모든 것을 전송하도록 정의됩니다.

AllowedIPs = 0.0.0.0/0, ::/0

이는 전형적인고객구성이 서버 구성에 적합하지 않은 것은 거의 확실합니다.

대신 클라이언트가 연결 후 자체적으로 사용하는 (소형) 서브넷을 선언해야 합니다. 예를 들어,

192.168.0.2/32

네트워크 주소가 다른 곳에서 사용 중인 서브넷의 일부가 아닌지 확인하세요.

관련 정보