如何在wireguard中启用网络活动日志记录?
我搜索了查看服务器上日志的方法,但在/var/log.
当它作为 systemd 服务运行时,我可以看到一些最少的信息
sudo systemctl status wg-quick@wg0
Run Code Online (Sandbox Code Playgroud)
但这提供的信息很少。
还试过:
journalctl -u wg-quick@wg0
Run Code Online (Sandbox Code Playgroud)
但这并没有比上一个命令显示更多。
理想情况下,我希望能够看到对等连接和(可选)正在发出的请求。
到目前为止,我发现的唯一有用的诊断命令是sudo wg show wg0(或只是sudo wg),但我希望有一种方法可以提高详细程度并实时显示。
可以通过使用第三方网络工具(例如tcpdump | grep 10.66.66(假设隧道设置在10.66.66.x)和上来了解哪些连接被启动nethogs,但这仍然没有回答如何直接通过wireguard 进行连接的问题。
我有一台运行 Wireguard 的服务器,并且我有多个客户端(对等方)连接到它并正在运行。我不太确定 VPN 是如何工作的,但这是我当前的设置。
在/etc/wireguard/wg0.conf我的服务器看起来像这样。
[Interface]
Address = 172.16.16.1/24
SaveConfig = true
ListenPort = 8999
PrivateKey = XXX
[Peer]
PublicKey = XXX
AllowedIPs = 172.16.16.2/32
[Peer]
PublicKey = XXX
AllowedIPs = 172.16.16.3/32
Run Code Online (Sandbox Code Playgroud)
我的客户端上的配置wg0.conf看起来像这样。
[Interface]
PrivateKey = XXX
Address = 172.16.16.x/32
[Peer]
PublicKey = XXX
AllowedIPs = 172.16.16.0/24
PersistentKeepalive = 30
Run Code Online (Sandbox Code Playgroud)
一切都启动并运行后,从我的具有 IP 地址的客户端172.16.16.2,我可以 ping 服务器172.16.16.1。我可以从我的其他客户端执行同样的操作172.16.16.3,我可以 ping 服务器 172.16.16.1。
有趣的是,从我的服务器,我能够 ping 所有的对等点!也就是说,从内部172.16.16.1,我可以 ping172.16.16.2和172.16.16.3。但这是设置的主要目的! …
我对 Wireguard 的理解是服务器和客户端的接口(虽然看起来听不清?)每个都有自己的.conf文件。例如,考虑以下.conf文件。
[Interface]
PrivateKey = some_key_1
Address = 10.193.130.174/16
[Peer]
PublicKey = some_key_2
PresharedKey = some_key_3
AllowedIPs = 10.129.130.1/32
Endpoint = 54.91.5.130:1952
Run Code Online (Sandbox Code Playgroud)
如何判断这是客户端.conf文件还是服务器文件(如果可能的话)?这可能是一个非常简单的问题,但是Endpoint和AllowedIPs字段之间的区别是[Peer]什么?我从CryptoKey Routing推断,一旦interface接收到一个数据包,它就会用interface私钥对其进行解密,并AllowedIPs根据所有信息检查发件人 IP peers,如果凭据实际上与peer它匹配,它就会接受它。在另一方面,如果interface想送它与它加密的数据包peer的公共密钥,但它是将其发送到Endpoint的或一个AllowedIPs?
编辑 1:我确实使用man wg过,Endpoint但对我来说仍然模糊的定义。尽管如此,该AllowedIPs领域似乎更容易掌握。
编辑 2:经过进一步研究,我认为该AllowedIPs字段指定了对等方可用于接收流量或发送流量的 IP 地址。如果有人可以确认或更正这一点,我将不胜感激。
WireGuard 是否支持 VPN 服务器向其客户端推送路由和 DHCP 选项的方式,就像 OpenVPN 所做的那样:
push "route 10.0.2.0 255.255.255.0 "
push "dhcp-option DNS 10.66.0.4"
Run Code Online (Sandbox Code Playgroud)
我有 100 多个客户端,它们动态地设置了与 VPN 服务器的 VPN 连接,我希望在它们连接到 VPN 服务器时安装这些路由和选项。
我想使用库 com.wireguard.android:tunnel (1.0.20211029) 创建第三方 VPN 应用程序,任何人都可以帮助我为我提供任何好的资源或指导我吗?
在我的应用程序中,我从文件管理器导入 .config 文件,现在如何使用隧道库将该文件连接到服务器。我正在使用 java 。
我确实遵循了https://github.com/WireGuard/wireguard-android但该应用程序包装了很多隧道库代码。我正在寻找一个简单的示例,说明如何直接使用隧道库,而无需使用 TunnelManager 和 ObservableTunnel 进行所有包装。
请指导我
我使用 Go 版本 1.13、Mac Catalina 和 Xcode 11.7 进行构建。
由于以下错误,Xcode 构建过程无法完成。
Command ExternalBuildToolExecution failed with a nonzero exit code:
>ExternalBuildToolExecution WireGuardGoBridgemacOS (in target 'WireGuardGoBridgemacOS' from project 'WireGuard')
cd /Users/mycomputer/Documents/wireguard-apple-master/WireGuard/../wireguard-go-bridge
export ACTION=
export ALTERNATE_GROUP=staff
export ALTERNATE_MODE=u+w,go-w,a+rX
export ALTERNATE_OWNER=decycle
export ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES=YES
export ALWAYS_SEARCH_USER_PATHS=NO
export APPLE_INTERNAL_DEVELOPER_DIR=/AppleInternal/Developer
export APPLE_INTERNAL_DIR=/AppleInternal
export APPLE_INTERNAL_DOCUMENTATION_DIR=/AppleInternal/Documentation
export APPLE_INTERNAL_LIBRARY_DIR=/AppleInternal/Library
export APPLE_INTERNAL_TOOLS=/AppleInternal/Developer/Tools
export APPLICATION_EXTENSION_API_ONLY=NO
export APPLY_RULES_IN_COPY_FILES=NO
export APPLY_RULES_IN_COPY_HEADERS=NO
export APP_ID_IOS=com.27net.vpnapp
export APP_ID_MACOS=com.27net.vpnapp
export ARCHS=x86_64
export ARCHS_STANDARD=x86_64
export ARCHS_STANDARD_32_64_BIT="x86_64 i386"
export ARCHS_STANDARD_32_BIT=i386
export ARCHS_STANDARD_64_BIT=x86_64
export ARCHS_STANDARD_INCLUDING_64_BIT=x86_64
export AVAILABLE_PLATFORMS="appletvos appletvsimulator iphoneos iphonesimulator macosx …Run Code Online (Sandbox Code Playgroud) WireGuard 服务器似乎没有将连接转发到 Internet。
我尝试在我的计算机和服务器上从头开始重新安装 Wireguard,但问题仍然存在。
当我sudo wg-quick up wg0-client,我得到:
[#] wg setconf wg0-client /dev/fd/63
[#] ip address add 10.200.200.2/32 dev wg0-client
[#] ip link set mtu 1420 up dev wg0-client
[#] resolvconf -a tun.wg0-client -m 0 -x
Too few arguments.
Too few arguments.
[#] wg set wg0-client fwmark 51820
[#] ip -4 route add 0.0.0.0/0 dev wg0-client table 51820
[#] ip -4 rule add not fwmark 51820 table 51820
[#] ip -4 rule add table main suppress_prefixlength 0 …Run Code Online (Sandbox Code Playgroud) 我正在尝试在我的 Windows 机器上构建wireguard-android源代码,通过反复试验逐步解决问题。
我安装了 CMake 和 Make,我遇到的第一个问题是uname(mingw64)报告的“错误”值,与Google 托管的 golang文件名不匹配。
我已经编辑(破解)make 文件以指向 Windows 版本 (amd64) 的真实文件名。问题是 windows 版本有一个.zip扩展名而不是.tar.gzzip 的结果似乎与管道命令不兼容。
原始命令:
curl "https://dl.google.com/go/go$(DESIRED_GO_VERSION).$(shell uname -s | tr '[:upper:]' '[:lower:]')-$(NDK_GO_ARCH_MAP_$(shell uname -m)).tar.gz" | tar -C "$(dir $@)" --strip-components=1 -xzf -
Run Code Online (Sandbox Code Playgroud)
我尝试的更改:(使用 if-else 因为它仍然需要在 mac 上运行)
ifeq "msys" "$(shell uname -o | tr '[:upper:]' '[:lower:]')"
# Note: when enclosed in the ifeq, the ARCH_MAP part no longer worked
# Note: using tar …Run Code Online (Sandbox Code Playgroud) 我正在尝试使用 com.wireguard.android:tunnel 库制作 android WireGuard 客户端。
当尝试连接时,我收到此错误。但是,连接似乎工作正常。
E/WireGuard/GoBackend/abc: UAPIOpen: mkdir /data/data/com.wireguard.android: 权限被拒绝
这个错误可以忽略吗?
我的wireguard服务器和客户端配置如下:
服务器:
[Interface]
PrivateKey = <server private key>
Address = 192.168.2.4
ListenPort = 51821
[Peer]
PublicKey = <client public key>
AllowedIPs = 172.20.10.5/32
Run Code Online (Sandbox Code Playgroud)
客户:
[Interface]
PrivateKey = <client private key>
Address = 172.20.10.5
[Peer]
PublicKey = <server public key>
AllowedIPs = 192.168.2.4/32
Endpoint = <Public IP>:51821
PersistentKeepalive = 25
Run Code Online (Sandbox Code Playgroud)
当我启动它们时,我的客户端无法 ping 服务器网络中的任何机器。在浏览器中,该 IP 仍然是客户端的 Internet IP。当我wg在客户端上运行时,它显示发送了一些数据,而在传输信息中收到了 0 个数据。
我的配置有什么明显的错误吗?如果没有,常见的故障排除方法是什么?