Wireguard - 클라이언트는 서버에 ping을 보낼 수 있지만 서로에게는 ping을 보낼 수 없습니다.

Wireguard - 클라이언트는 서버에 ping을 보낼 수 있지만 서로에게는 ping을 보낼 수 없습니다.

3개의 노드(서버 1개와 추가 클라이언트 2개)가 있습니다.

두 클라이언트 모두와 서버의 두 클라이언트 모두에서 서버 엔드포인트를 성공적으로 ping할 수 있습니다. 그러나 두 클라이언트는 서로 성공적으로 ping할 수 없습니다.

엔드포인트가 올바르게 전송되고 있는지 확실하지 않습니다. 무엇을 설정해야 하는지에 대한 많은 정보를 찾을 수 없습니다.

서버에 디버그 오류 로그가 표시됩니다.

[ 2848.826167] wireguard: wg0: Invalid MAC of handshake, dropping packet from 90.218.41.186:1024

내가 어디에서 잘못되었을 수 있습니까?


  peers = [
    # For a client configuration, one peer entry for the server will suffice.

    # server
    {
      publicKey = "***************";
      allowedIPs = [ "10.100.0.1"];
      endpoint = "**Server_IP_redacted**:51820"; 
      persistentKeepalive = 25;
    }

    # pineapple
    {
      publicKey = "*************";
      allowedIPs = [ "10.100.0.2" ];
      endpoint = "**Server_IP_redacted**:51820"; 
      persistentKeepalive = 25;
    }
  ];

답변1

서버에 대한 단일 피어를 정의하고 allowedIps명시적인 IP 대신 적절한 서브넷을 설정한 후 제대로 작동하기 시작했습니다.

peers = [

        # server
        {
          publicKey = "**********";
          allowedIPs = [ "10.100.0.0/24"];
          endpoint = "**Server_IP_redacted**:51820"; 
          persistentKeepalive = 25;
        }

  ];

서버에서도 NAT를 활성화해야 한다고 생각합니다.

  networking.nat.enable = true;

관련 정보