AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / ubuntu / 问题 / 1161679
Accepted
WoJ
WoJ
Asked: 2019-07-29 06:36:24 +0800 CST2019-07-29 06:36:24 +0800 CST 2019-07-29 06:36:24 +0800 CST

Wireguard 是如何管理的?

  • 772

我使用 Wireguard 作为我的主要 VPN(运行一个服务器并有几个客户端连接到它) - 它工作正常,但我今天意识到我不明白它是如何实际管理的。正是以下一系列事件使我意识到了这一点:

  • 客户端 A 和客户端 B 定义在/etc/wireguard/wg0.conf. 他们都正确连接。
  • 我添加了一些修改内核的软件包。这触发了关于等的通常消息modprobe。我从来没有真正关注过这些,因为它们承认一切都很好。
  • 完成上述步骤后,客户端 A 仍然连接,客户端 B 不再连接。我正在尝试使用客户端 C 并连接。

然后我看了看,wg show它没有显示对等 B。由于对等 B(= 客户端 B)在,/etc/wireguard/wg0.conf那么一定是出了问题。解决方法:重启。

重启客户端 A 自动重连后,客户端 B 仍然没有连接(并且在 中仍然不可见wg show,即使处于断开连接状态)。

它怎么可能一开始就被连接起来呢?(我问我自己)。

最后一个想法:

wg-quick down wg0
wg-quick up wg0

一切恢复正常,客户端 A 和客户端 B 连接。

这意味着一件事:初始(开机后或 post-apt-which-changed-kernel)启动wireguard必须使用另一个配置文件。这是可以想象的——客户端 A 是很久以前设置的,客户端 B 是最近才添加的(到/etc/wireguard/wg0),所以可能是我忘记了我在哪里设置的。

我过去曾经遇到过上述问题,现在我记得了,并用两个wg-quick命令修复了它,但没有时间进一步辩论(这将解释客户端 B 是如何设法连接的)

我的问题:在 Ubuntu 18.04 中,实际启动的服务是什么wireguard(从wireguardPPA 安装),该服务使用的配置文件在哪里?

networking server vpn wireguard
  • 2 2 个回答
  • 595 Views

2 个回答

  • Voted
  1. WoJ
    2019-07-29T07:33:46+08:002019-07-29T07:33:46+08:00

    Wireguard 通过 启动systemd-networkd。安装还会创建一个新界面wg0。

    配置是通过两个文件完成的(somename可以是任何东西,例如wg0或wireguard)(1)

    1. /etc/systemd/network/somename.netdev

    该文件将保存interface和peers的配置。它使用[WireGuard]and[WireGuardPeer]而不是通常的[Interface]and [Peer](参见(1))

    [NetDev]
    Name = wg0
    Kind = wireguard
    Description = Wireguard
    
    [WireGuard]
    ListenPort = 51820
    PrivateKey = <your private key>
    
    # laptop
    [WireGuardPeer]
    PublicKey = h/trC+5Z8qbGBJtroYITQGMNUn5XQZ/JRqVR3iIH5Ro=
    AllowedIPs = 192.168.20.2/32
    
    1. /etc/systemd/network/somename.network

    该文件将保存接口的 IP 相关配置(这里没有专门与wireguard相关的)

    [Match]
    Name = wg0
    
    [Network]
    Address = 192.168.20.1/32
    
    [Route]
    Gateway = 192.168.20.1
    Destination = 192.168.20.0/24
    

    这些配置文件是在systemctl [re]start systemd-networkd.


    (1)请注意,各种文档 ( ) 中提到的配置文件/etc/wireguard/wg0不与systemd-networkd. wg-quick如果您运行命令,它将被使用。

    这个答案在这里感谢@Rinzwind和他指向systemd-networkd及其配置文件

    • 2
  2. Best Answer
    WoJ
    2020-02-19T12:18:26+08:002020-02-19T12:18:26+08:00

    我正在添加另一个答案,因为我最终使用了另一种方法。那个是基于[email protected]模板的。

    我通过启用(并启动、停止等)它,systemctl enable [email protected]并且配置位于/etc/wireguard. 它具有 Wireguard 的经典格式。

    为了管理配置,我使用了出色的Wg Gen Web界面。

    • 0

相关问题

  • 使用 dpkg 手动安装软件包是否会阻止未来的升级路径?

  • 如何从命令行刻录双层 dvd iso

  • 如果在服务器机器上运行 Ubuntu 桌面版,性能损失是多少?

  • 将桌面版剥离为服务器版的最简单方法是什么?

  • 如何与无头服务器进行图形交互?

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    如何运行 .sh 脚本?

    • 16 个回答
  • Marko Smith

    如何安装 .tar.gz(或 .tar.bz2)文件?

    • 14 个回答
  • Marko Smith

    如何列出所有已安装的软件包

    • 24 个回答
  • Marko Smith

    无法锁定管理目录 (/var/lib/dpkg/) 是另一个进程在使用它吗?

    • 25 个回答
  • Martin Hope
    Flimm 如何在没有 sudo 的情况下使用 docker? 2014-06-07 00:17:43 +0800 CST
  • Martin Hope
    Ivan 如何列出所有已安装的软件包 2010-12-17 18:08:49 +0800 CST
  • Martin Hope
    La Ode Adam Saputra 无法锁定管理目录 (/var/lib/dpkg/) 是另一个进程在使用它吗? 2010-11-30 18:12:48 +0800 CST
  • Martin Hope
    David Barry 如何从命令行确定目录(文件夹)的总大小? 2010-08-06 10:20:23 +0800 CST
  • Martin Hope
    jfoucher “以下软件包已被保留:”为什么以及如何解决? 2010-08-01 13:59:22 +0800 CST
  • Martin Hope
    David Ashford 如何删除 PPA? 2010-07-30 01:09:42 +0800 CST

热门标签

10.10 10.04 gnome networking server command-line package-management software-recommendation sound xorg

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve