8.13. nmcli를 사용하여 WireGuard 클라이언트 구성


NetworkManager에서 연결 프로필을 생성하여 WireGuard 클라이언트를 구성할 수 있습니다. NetworkManager가 WireGuard 연결을 관리하도록 하려면 이 방법을 사용합니다.

이 절차에서는 다음 설정을 가정합니다.

  • 클라이언트:

    • Private key: aPUcp5vHz8yMLrzk8SsDyYnV33IhE/k20e52iKJFV0A=
    • 터널 IPv4 주소: 192.0.2.2/24
    • 터널 IPv6 주소: 2001:db8:1::2/32
  • 서버:

    • 공개 키: UtjqCJ57DeAscYKRfp7cFGiQqdONRn69u249Fa4O6BE=
    • 터널 IPv4 주소: 192.0.2.1/24
    • 터널 IPv6 주소: 2001:db8:1::1/32

사전 요구 사항

  • 서버와 클라이언트 모두에 대해 공개 및 개인 키를 생성했습니다.
  • 다음 정보를 알고 있습니다.

    • 클라이언트의 개인 키
    • 클라이언트의 고정 터널 IP 주소 및 서브넷 마스크
    • 서버의 공개 키
    • 서버의 고정 터널 IP 주소 및 서브넷 마스크

프로세스

  1. NetworkManager WireGuard 연결 프로필을 추가합니다.

    # nmcli connection add type wireguard con-name client-wg0 ifname wg0
    Copy to Clipboard Toggle word wrap

    이 명령은 client-wg0 이라는 프로필을 생성하고 여기에 wg0 가상 인터페이스를 할당합니다.

  2. 선택 사항: client-wg 연결을 자동으로 시작하지 않도록 NetworkManager를 구성합니다.

    # nmcli connection modify client-wg0 autoconnect no
    Copy to Clipboard Toggle word wrap
  3. 클라이언트의 터널 IPv4 주소 및 서브넷 마스크를 설정합니다.

    # nmcli connection modify client-wg0 ipv4.method manual ipv4.addresses 192.0.2.2/24
    Copy to Clipboard Toggle word wrap
  4. 클라이언트의 터널 IPv6 주소 및 서브넷 마스크를 설정합니다.

    # nmcli connection modify client-wg0 ipv6.method manual ipv6.addresses 2001:db8:1::2/32
    Copy to Clipboard Toggle word wrap
  5. 터널을 통해 모든 트래픽을 라우팅하려면 서버의 터널 IP 주소를 기본 게이트웨이로 설정합니다.

    # nmcli connection modify client-wg0 ipv4.gateway 192.0.2.1 ipv6.gateway 2001:db8:1::1
    Copy to Clipboard Toggle word wrap

    터널을 통해 모든 트래픽을 라우팅하려면 이후 단계에서 이 클라이언트의 allowed-ips0.0.0.0/0;::/0 으로 설정해야 합니다.

    터널을 통해 모든 트래픽을 라우팅하면 서버 라우팅 및 방화벽 구성을 기반으로 다른 호스트에 대한 연결에 영향을 줄 수 있습니다.

  6. 연결 프로필에 클라이언트의 개인 키를 추가합니다.

    # nmcli connection modify client-wg0 wireguard.private-key "aPUcp5vHz8yMLrzk8SsDyYnV33IhE/k20e52iKJFV0A="
    Copy to Clipboard Toggle word wrap
  7. 이 클라이언트와 통신할 수 있도록 허용할 각 서버에 대해 피어 구성을 추가합니다. nmcli 유틸리티는 해당 연결 속성 설정을 지원하지 않으므로 이러한 설정을 수동으로 추가해야 합니다.

    1. /etc/NetworkManager/system-connections/client-wg0.nmconnection 파일을 편집하고 추가합니다.

      [wireguard-peer.UtjqCJ57DeAscYKRfp7cFGiQqdONRn69u249Fa4O6BE=]
      endpoint=server.example.com:51820
      allowed-ips=192.0.2.1;2001:db8:1::1;
      persistent-keepalive=20
      Copy to Clipboard Toggle word wrap
      • [wireguard-peer. <public_key_of_the_server>] 항목은 서버의 피어 섹션을 정의하고 섹션 이름에 서버의 공개 키가 있습니다.
      • endpoint 매개 변수는 서버의 호스트 이름 또는 IP 주소와 포트를 설정합니다. 클라이언트는 이 정보를 사용하여 연결을 설정합니다.
      • allowed-ips 매개변수는 이 클라이언트에 데이터를 전송할 수 있는 IP 주소 목록을 설정합니다. 예를 들어 매개변수를 다음과 같이 설정합니다.

        • 서버가 이 클라이언트와 통신할 수 있도록 허용하도록 서버의 터널 IP 주소입니다. 위 예제의 값은 이 시나리오를 구성합니다.
        • 0.0.0.0/0;::/0; 원격 IPv4 및 IPv6 주소가 이 클라이언트와 통신할 수 있도록 합니다. 이 설정을 사용하여 터널을 통해 모든 트래픽을 라우팅하고 WireGuard 서버를 기본 게이트웨이로 사용합니다.
      • 선택적 persistent-keepalive 매개변수는 WireGuard가 서버에 keepalive 패킷을 전송하는 간격을 초 단위로 정의합니다. NAT(네트워크 주소 변환)가 있는 네트워크에서 클라이언트를 사용하거나 비활성 시간이 지나면 방화벽이 UDP 연결을 종료하는 경우 이 매개변수를 설정합니다.
    2. client-wg0 연결 프로필을 다시 로드합니다.

      # nmcli connection load /etc/NetworkManager/system-connections/client-wg0.nmconnection
      Copy to Clipboard Toggle word wrap
  8. client-wg0 연결을 다시 활성화합니다.

    # nmcli connection up client-wg0
    Copy to Clipboard Toggle word wrap
  9. DHCP 또는 SLAAC(상태 비저장 주소 자동 구성)가 있는 네트워크에서 이 호스트를 사용하는 경우 연결이 리디렉션될 수 있습니다. 자세한 내용 및 완화 단계는 연결이 터널을 우회하지 못하도록 전용 라우팅 테이블에 VPN 연결 할당을 참조하십시오.

검증

  1. 서버의 IP 주소를 ping합니다.

    # ping 192.0.2.1
    # ping6 2001:db8:1::1
    Copy to Clipboard Toggle word wrap
  2. wg0 장치의 인터페이스 구성을 표시합니다.

    # wg show wg0
    interface: wg0
      public key: bnwfQcC8/g2i4vvEqcRUM2e6Hi3Nskk6G9t4r26nFVM=
      private key: (hidden)
      listening port: 51820
    
    peer: UtjqCJ57DeAscYKRfp7cFGiQqdONRn69u249Fa4O6BE=
      endpoint: server.example.com:51820
      allowed ips: 192.0.2.1/32, 2001:db8:1::1/128
      latest handshake: 1 minute, 41 seconds ago
      transfer: 824 B received, 1.01 KiB sent
      persistent keepalive: every 20 seconds
    Copy to Clipboard Toggle word wrap

    출력에 개인 키를 표시하려면 WG_HIDE_KEYS=never show wg0 명령을 사용합니다.

    VPN 터널을 통해 트래픽을 이미 보낸 경우 출력에는 최신 핸드셰이크전송 항목만 있습니다.

  3. wg0 장치의 IP 구성을 표시합니다.

    # ip address show wg0
    10: wg0: <POINTOPOINT,NOARP,UP,LOWER_UP> mtu 1420 qdisc noqueue state UNKNOWN group default qlen 1000
        link/none
        inet 192.0.2.2/24 brd 192.0.2.255 scope global noprefixroute wg0
           valid_lft forever preferred_lft forever
        inet6 2001:db8:1::2/32 scope global noprefixroute
           valid_lft forever preferred_lft forever
        inet6 fe80::73d9:6f51:ea6f:863e/64 scope link noprefixroute
           valid_lft forever preferred_lft forever
    Copy to Clipboard Toggle word wrap
맨 위로 이동
Red Hat logoGithubredditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

Red Hat을 사용하는 고객은 신뢰할 수 있는 콘텐츠가 포함된 제품과 서비스를 통해 혁신하고 목표를 달성할 수 있습니다. 최신 업데이트를 확인하세요.

보다 포괄적 수용을 위한 오픈 소스 용어 교체

Red Hat은 코드, 문서, 웹 속성에서 문제가 있는 언어를 교체하기 위해 최선을 다하고 있습니다. 자세한 내용은 다음을 참조하세요.Red Hat 블로그.

Red Hat 소개

Red Hat은 기업이 핵심 데이터 센터에서 네트워크 에지에 이르기까지 플랫폼과 환경 전반에서 더 쉽게 작업할 수 있도록 강화된 솔루션을 제공합니다.

Theme

© 2025 Red Hat