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
    • 最新
    • 标签
主页 / user-155466

Joshua Walsh's questions

Martin Hope
Yoshi Walsh
Asked: 2024-04-06 10:32:27 +0800 CST

重新启动 Ubuntu 后,wireguard 客户端无法再连接到网络上的其他主机

  • 6

我是一名家庭劳动者。我的 WireGuard VPN 已经正常运行了大约 16 个月。它在虚拟机内的 Ubuntu Server 安装上运行。虚拟机管理程序在 TrueNAS CORE 上运行。

自从我第一次设置 WireGuard 以来,我就遇到了客户端无法通过 VPN 连接到公共互联网的问题。但由于我设置 VPN 的主要目的只是为了能够远程管理我的服务器并访问网络上的设备,所以这不是一个大问题。我使用AllowedIPs客户端配置中的设置仅192.168.10.0/24通过 VPN 将流量路由到我的子网,并且发往公共互联网的流量不会触及 WireGuard。

最近我重新启动了我的 Ubuntu 虚拟机。当它重新上线时,我能够连接到 WireGuard VPN,并且通过 VPN,我可以连接到我的 Ubuntu VM (192.168.10.240) 上运行的任何服务。但是我无法连接到网络上的任何其他设备。

我curl在 Ubuntu VM 上使用,它仍然能够看到其他设备(例如 TrueNAS Core)。我还可以使用 SSH 隧道来访问这些其他设备。但我无法像平常那样通过 WireGuard 访问它们。

自上次重新启动 Ubuntu VM 以来,我唯一知道的变化是我在 Docker 中安装了 Pterodactyl Wings。这会添加一个 Docker Bridge 接口。(子网 172.19.0.0/16,网关 172.19.0.1)但据我所知,这没有理由与 WireGuard 的网络冲突。

我真的不知道从哪里开始解决这个问题,我希望得到您的任何建议。

编辑:正如您在下面看到的,我使用 PostUp / PostDown 命令来确保 IP 表正确处理 MASQUERADE。我的 WireGuard 子网 ( 10.8.0.1/24) 与网络上的其他子网不冲突。我确实配置了多个对等点,并且每个对等点/32在此子网中都有一个唯一的。我的客户的AllowedIPs设置为将流量路由到192.168.10.0/24.

当我的客户端已连接时,我也能够10.8.0.2从服务器和客户端成功 ping 通。我还可以从另一个客户端 ping 一个客户端。

由于我可以连接到 192.168.10.240,这可能意味着 WireGuard 服务器正在提供从10.8.0.0/24到 的路由192.168.10.0/24。当流量需要物理离开该主机时,似乎会出现问题。那么问题可能出在我的 USG 路由器上(但在重新启动虚拟机时我没有更改任何内容)或者 Ubuntu 可能不接受来自 NIC 的相关流量?

我不知道如何解决这个问题。

编辑2:我将客户端设备物理连接到我的家庭实验室网络,它能够按预期访问所有服务器。但随后我激活了 WireGuard(同时仍保持物理连接),并且无法访问除 192.168.10.240 之外的所有服务器。因此,这表明 WireGuard 客户端肯定正在通过隧道将流量路由到这些地址。

我还尝试暂时使用非常简约的iptables配置(见下文),但这没有改变。


WireGuard 服务器配置:

[Interface]
Address = 10.8.0.1/24
ListenPort = 51820
PrivateKey = [redacted]
PostUp = iptables -A FORWARD -i %i -j ACCEPT; iptables -A FORWARD -o %i -j ACCEPT; iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
PostDown = iptables -D FORWARD -i %i -j ACCEPT; iptables -D FORWARD -o %i -j ACCEPT; iptables -t nat -D POSTROUTING -o eth0 -j MASQUERADE
[Peer]
PublicKey = [redacted]
AllowedIPs = 10.8.0.2/32

WireGuard 客户端配置:

[Interface]
PrivateKey = [redacted]
Address = 10.8.0.2/24

[Peer]
PublicKey = [redacted]
AllowedIPs = 10.8.0.1/24, 192.168.10.0/24
Endpoint = example.org:51820

网络详情:

  • 子网192.168.10.0/24
  • 网关 192.168.10.1(UniFi USG)
  • DHCP 范围 192.168.10.100 - 192.168.10.199

相关主机:

  • TrueNAS 服务器(物理)- 192.168.10.221
  • QuickSync 服务器(物理)- 192.168.10.222
  • TrueNAS 的 IPMI(物理)- 192.168.10.231
  • Ubuntu VM 托管在 TrueNAS 服务器上 - 192.168.10.240(WireGuard 服务器!)
  • QuickSync 服务器上的 Docker 容器 (macvlan) - 192.168.10.241

追踪:

C:\Users\test>tracert 192.168.10.221

Tracing route to 192.168.10.221
over a maximum of 30 hops:

  1     *       25 ms    20 ms  10.8.0.1
  2     *        *        *     Request timed out.
  3     *        *        *     Request timed out.
  4     *        *        *     Request timed out.
  5     *        *        *     Request timed out.
  6     *        *        *     Request timed out.
  7     *        *        *     Request timed out.
  8     *        *        *     Request timed out.
  9     *        *        *     Request timed out.
 10     *        *        *     Request timed out.
 11     *        *        *     Request timed out.
 12     *        *        *     Request timed out.
 13     *        *        *     Request timed out.
 14     *        *        *     Request timed out.
 15     *        *        *     Request timed out.
 16     *        *        *     Request timed out.
 17     *        *        *     Request timed out.
 18     *        *        *     Request timed out.
 19     *        *        *     Request timed out.
 20     *        *        *     Request timed out.
 21     *        *        *     Request timed out.
 22     *        *        *     Request timed out.
 23     *        *        *     Request timed out.
 24     *        *        *     Request timed out.
 25     *        *        *     Request timed out.
 26     *        *        *     Request timed out.
 27     *        *        *     Request timed out.
 28     *        *        *     Request timed out.
 29     *        *        *     Request timed out.
 30     *        *        *     Request timed out.

Trace complete.

从服务器 Ping 到客户端

PING 10.8.0.2 (10.8.0.2) 56(84) bytes of data.
64 bytes from 10.8.0.2: icmp_seq=1 ttl=128 time=20.4 ms
64 bytes from 10.8.0.2: icmp_seq=2 ttl=128 time=27.0 ms
64 bytes from 10.8.0.2: icmp_seq=3 ttl=128 time=19.4 ms
64 bytes from 10.8.0.2: icmp_seq=4 ttl=128 time=27.1 ms
64 bytes from 10.8.0.2: icmp_seq=5 ttl=128 time=27.2 ms
^C
--- 10.8.0.2 ping statistics ---
5 packets transmitted, 5 received, 0% packet loss, time 4006ms
rtt min/avg/max/mdev = 19.409/24.223/27.209/3.536 ms

从客户端 Ping 到自身(在 VPN 上)

Pinging 10.8.0.2 with 32 bytes of data:
Reply from 10.8.0.2: bytes=32 time<1ms TTL=128
Reply from 10.8.0.2: bytes=32 time<1ms TTL=128

Ping statistics for 10.8.0.2:
    Packets: Sent = 2, Received = 2, Lost = 0 (0% loss),
Approximate round trip times in milli-seconds:
    Minimum = 0ms, Maximum = 0ms, Average = 0ms

从客户端 Ping 到其他客户端

Pinging 10.8.0.2 with 32 bytes of data:
Reply from 10.8.0.2: bytes=32 time=64ms TTL=127
Reply from 10.8.0.2: bytes=32 time=41ms TTL=127
Reply from 10.8.0.2: bytes=32 time=39ms TTL=127

Ping statistics for 10.8.0.2:
    Packets: Sent = 3, Received = 3, Lost = 0 (0% loss),
Approximate round trip times in milli-seconds:
    Minimum = 39ms, Maximum = 64ms, Average = 48ms

极简 iptables 配置

# Generated by iptables-save v1.8.7 on Sun Apr 14 14:57:35 2024
*filter
:INPUT DROP [0:0]
:FORWARD DROP [119314:15037722]
:OUTPUT ACCEPT [169491:32755967]
:DOCKER-USER - [0:0]
-A INPUT -i lo -j ACCEPT
-A INPUT -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
-A INPUT -j ACCEPT
-A FORWARD -j DOCKER-USER
-A FORWARD -i wg0 -j ACCEPT
-A FORWARD -o wg0 -j ACCEPT
-A DOCKER-USER -j RETURN
COMMIT
# Completed on Sun Apr 14 14:57:35 2024
# Generated by iptables-save v1.8.7 on Sun Apr 14 14:57:35 2024
*nat
:PREROUTING ACCEPT [222:56161]
:INPUT ACCEPT [14:1327]
:OUTPUT ACCEPT [248:13567]
:POSTROUTING ACCEPT [256:16075]
-A POSTROUTING -o eth0 -j MASQUERADE
COMMIT
# Completed on Sun Apr 14 14:57:35 2024
networking
  • 1 个回答
  • 57 Views
Martin Hope
Joshua Walsh
Asked: 2019-02-03 07:13:33 +0800 CST

apt/yum 上的软件包通常是为哪些微架构构建/调整的?

  • 2

我只是在学习一些关于低级语言的知识,我注意到 gcc 你可以指定 -march 和 -mtune 参数来优化特定 CPU 系列的软件。

但我也发现有人说从源代码构建程序不会比下载二进制文件快得多。当然,能够为系统中的 CPU 优化软件会显着提高速度,尤其是在像ffmpegAVX 等使用相当微架构相关功能的软件中?

我想知道的是,包管理器上的二进制文件是否以某种方式针对多个微架构进行了优化?包管理器是否下载特定于我系统微架构的二进制文件?

software-installation compiling
  • 1 个回答
  • 57 Views
Martin Hope
Joshua Walsh
Asked: 2018-11-22 21:06:53 +0800 CST

当ffmpeg到达命名管道的末尾时,如何阻止它退出?

  • 2

我正在使用一个程序,它在运行时连续将 MPEG-TS 视频数据写入文件。我希望它可以连续运行很多天。

我想使用 ffmpeg 实时转码此视频数据。为了使 .mts 文件在我用完硬盘空间之前不会持续增长,我试图让第一个程序写入命名管道并ffmpeg从该管道读取。

我试过这样做ffmpeg -i /tmp/test.mts -c:v libx264 test.mp4,但似乎 ffmpeg 一旦到达管道末端就会退出,而不是等待新数据。例如,如果我启动程序,等待 30 秒然后运行 ​​ffmpeg,我只会得到大约 50 秒的视频。(30 秒 + ffmpeg 赶上的时间)

我已经设法让它工作了,ffmpeg -i pipe:0 -c:v libx264 test.mp4 < /tmp/test.mts但这对我来说感觉有点hacky,使用标准输入来做到这一点。有没有一种方法可以直接提供命名管道作为 ffmpeg 的输入,并让它在到达当前数据末尾时等待新数据?

谢谢!

fifo ffmpeg
  • 1 个回答
  • 3491 Views

Sidebar

Stats

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

    模块 i915 可能缺少固件 /lib/firmware/i915/*

    • 3 个回答
  • Marko Smith

    无法获取 jessie backports 存储库

    • 4 个回答
  • Marko Smith

    如何将 GPG 私钥和公钥导出到文件

    • 4 个回答
  • Marko Smith

    我们如何运行存储在变量中的命令?

    • 5 个回答
  • Marko Smith

    如何配置 systemd-resolved 和 systemd-networkd 以使用本地 DNS 服务器来解析本地域和远程 DNS 服务器来解析远程域?

    • 3 个回答
  • Marko Smith

    dist-upgrade 后 Kali Linux 中的 apt-get update 错误 [重复]

    • 2 个回答
  • Marko Smith

    如何从 systemctl 服务日志中查看最新的 x 行

    • 5 个回答
  • Marko Smith

    Nano - 跳转到文件末尾

    • 8 个回答
  • Marko Smith

    grub 错误:你需要先加载内核

    • 4 个回答
  • Marko Smith

    如何下载软件包而不是使用 apt-get 命令安装它?

    • 7 个回答
  • Martin Hope
    user12345 无法获取 jessie backports 存储库 2019-03-27 04:39:28 +0800 CST
  • Martin Hope
    Carl 为什么大多数 systemd 示例都包含 WantedBy=multi-user.target? 2019-03-15 11:49:25 +0800 CST
  • Martin Hope
    rocky 如何将 GPG 私钥和公钥导出到文件 2018-11-16 05:36:15 +0800 CST
  • Martin Hope
    Evan Carroll systemctl 状态显示:“状态:降级” 2018-06-03 18:48:17 +0800 CST
  • Martin Hope
    Tim 我们如何运行存储在变量中的命令? 2018-05-21 04:46:29 +0800 CST
  • Martin Hope
    Ankur S 为什么 /dev/null 是一个文件?为什么它的功能不作为一个简单的程序来实现? 2018-04-17 07:28:04 +0800 CST
  • Martin Hope
    user3191334 如何从 systemctl 服务日志中查看最新的 x 行 2018-02-07 00:14:16 +0800 CST
  • Martin Hope
    Marko Pacak Nano - 跳转到文件末尾 2018-02-01 01:53:03 +0800 CST
  • Martin Hope
    Kidburla 为什么真假这么大? 2018-01-26 12:14:47 +0800 CST
  • Martin Hope
    Christos Baziotis 在一个巨大的(70GB)、一行、文本文件中替换字符串 2017-12-30 06:58:33 +0800 CST

热门标签

linux bash debian shell-script text-processing ubuntu centos shell awk ssh

Explore

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

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve