Wiguard와 함께 KDEConnect를 사용하는 방법

Wiguard와 함께 KDEConnect를 사용하는 방법

브로드캐스트를 구현하지 않는 wireguard를 통해 KDEConnect를 어떻게 사용할 수 있습니까?

답변1

세 대의 컴퓨터가 있다고 가정해 보겠습니다.

  • Wireguard 서버를 실행할 서버, Wireguard IP는 10.100.0.1입니다.
  • Android용 KDEConnect를 실행하는 휴대폰의 경우 와이어가드 IP는 10.100.0.2입니다.
  • kdeconnect, wireguard ip 10.100.0.3을 실행하는 KDE 플라즈마가 탑재된 노트북

먼저 서버에서 Wireguard를 구성하십시오. 저는 개인적으로 이 작업을 수행하기 위해 nixos를 사용하기로 선택했지만 수동으로 구성하거나 파일을 사용하여 구성할 수도 있습니다 .conf. 이것은 내 nix 구성 파일입니다.

# Source: https://nixos.wiki/wiki/Wireguard
#### Create keys, as root:
# mkdir ~/wireguard-keys
# umask 077 ~/wireguard-keys
# wg genkey > ~/wireguard-keys/private
# wg pubkey < ~/wireguard-keys/private > ~/wireguard-keys/public
{ config, pkgs, lib, ... }:
let
  port = 51820;
in
{
  environment.systemPackages = with pkgs; [ wireguard ];

  networking.wireguard.interfaces = {
    # "wg0" is the network interface name. You can name the interface arbitrarily.
    wg0 = {
      # Determines the IP address and subnet of the server's end of the tunnel interface.
      ips = [ "10.100.0.1/24" ];

      # The port that Wireguard listens to. Must be accessible by the client.
      listenPort = port;

      # Path to the private key file.
      #
      # Note: The private key can also be included inline via the privateKey option,
      # but this makes the private key world-readable; thus, using privateKeyFile is
      # recommended.
      privateKeyFile = "/root/wireguard-keys/private";

      peers = [
        # List of allowed peers.
        {
          # Android
          publicKey = "myandroidpublickey=";
          # List of IPs assigned to this peer within the tunnel subnet.
          # Used to configure routing.
          allowedIPs = [ "10.100.0.2/32" ];
        }
        {
          # Laptop
          publicKey = "mylaptoppublickey=";
          # List of IPs assigned to this peer within the tunnel subnet.
          # Used to configure routing.
          allowedIPs = [ "10.100.0.3/32" ];
        }
      ];
    };
  };

  # Ensure IP forwarding is enabled.
  boot.kernel.sysctl."net.ipv4.ip_forward" = 1;

  # Add a masquerade rule to iptables so the clients can
  # talk to the internet
  networking.firewall.extraCommands = ''
   iptables -t nat -A POSTROUTING -s 10.100.0.0/24 ! -d 10.100.0.0/24 -j MASQUERADE
  '';
  # Make sure port is open
  networking.firewall = {
    allowedTCPPorts = [ port ];
    allowedUDPPorts = [ port ];
  };


}

중요한 부분예, IP 전달이 활성화되어 있는지 확인하고 명령을 실행하십시오 iptables -t nat -A POSTROUTING -s 10.100.0.0/24 ! -d 10.100.0.0/24 -j MASQUERADE. 실제로 위장하지 않으면 휴대폰에서 인터넷에 접속할 수 없으며, 위장하기 전에 목적지가 네트워크 외부에 있는지 확인하는 것을 잊어버리면 KDEConnect에 연결할 수 없습니다. 당신의 전화에서 (나는 많은 시간을 보냈습니다. 그때서야 ​​이것을 깨달았습니다).

그런 다음 랩톱에서 Wireguard를 구성합니다. 예를 들어 다음을 입력합니다 /etc/wireguard/wg0.conf.

# https://wiki.archlinux.fr/Wireguard
# To run, use:
# wg-quick up wg0
# ou systemctl enable --now [email protected]
# Sur le noeud 2, le "client"
[Interface]
# le /24 est important : on définit un réseau (/24) auquel l'interface appartient
Address = 10.100.0.3/24
PrivateKey = computerprivatekey

# On définit qui est le "serveur"
[Peer]
PublicKey = serverpublickey
# le /24 indique ici que tous les noeuds du VPN vont d'abord communiquer avec le serveur,
# qui va nous renvoyer ce qui nous concerne :
# on peut s'attendre à recevoir du trafic de la part d'hypothétiques nouveaux noeuds qui seraient dans 10.X.Y/24
AllowedIPs = 10.100.0.0/24
Endpoint = serverip.com:51820
# En général les clients sont derrière du NAT, et si on veut que le serveur puisse joindre le client à tout moment, il faut :
PersistentKeepalive = 15

Android 휴대폰에 Wireguard 앱(다음 위치에서 사용 가능)을 설치하세요.앱 스토어그리고FD로이드), 새 인터페이스를 생성하고 새 개인 키를 생성한 후 인터페이스 주소에서 선택합니다 10.100.0.2/32. 피어에서 서버의 공개 키를 추가하고 허용된 IP를 입력합니다 0.0.0.0/0(실제로는 더 제한적인 IP 집합을 선택할 수 있습니다). 터미널을 구성한 myserver.com:51820다음 구성을 저장/활성화/네트워크 테스트합니다.

마지막으로, 휴대폰에서 KDEConnect를 열고 "새 장치 연결"로 이동한 후 오른쪽 상단 모서리에 있는 세 개의 점 "IP로 장치 추가"를 클릭하고 노트북의 IP를 추가하세요 10.100.0.3. 즐기다!

참고: 휴대폰의 IP를 구성하고 싶지 않다면 KDEConnect를 다시 컴파일하여 브로드캐스트 주소를 휴대폰의 IP로 변경할 수도 있지만... 이는 그다지 실용적이지 않습니다.

관련 정보