网络配置以支持在Docker容器中运行Wireguard

问题描述

我想在一个容器中运行Wireguard。长话短说,我的docker实例很旧(非常/ 1.7.0)。我已经建立并运行它并监听连接:

interface: wg0
public key: JhRxiXF9nlzyMWcxiuPc/PIDWxNryX2FvdbMtcgJ/Eo=
private key: (hidden)
listening port: 32040

peer: iWCu/UNSuf8AXry7ltiL+aNJQcAyXHs8lR5S0dMReX8=
endpoint: 172.58.92.33:35095
allowed ips: 0.0.0.0/0,::/0
latest handshake: 9 seconds ago
transfer: 3.07 KiB received,0 B sent

客户端可以连接到服务器(心跳很好!),我遇到的问题是流量没有正确地从容器中路由到目的地并返回。我猜这是DNAT的问题。

10.0.10.0/24 dev bond0  proto kernel  scope link  src 10.0.10.150
10.8.0.1 dev tun0  proto kernel  scope link  src 10.8.52.36
172.17.0.0/16 dev docker0  proto kernel  scope link  src 172.17.42.1

任何指导/想法都会受到赞赏。

解决方法

原来这需要放在容器内:

iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE

那之后工作完美!