gpt4 book ai didi

docker - 允许通过 vpnkit 出站容器网络

转载 作者:行者123 更新时间:2023-12-02 19:30:07 27 4
gpt4 key购买 nike

我在这里有一个 linuxkit 构建的虚拟机,带有一个自定义容器 service我正在尝试运行。

services:
...

- name: net-manager
image: aemengo/net-manager:6bcc223a83e8a303a004bc6f6e383a54a3d19c55-amd64
net: host
capabilities:
- all
binds:
- /usr/bin/vpnkit-expose-port:/usr/bin/vpnkit-expose-port # userland proxy
- /usr/bin/vpnkit-iptables-wrapper:/usr/bin/iptables # iptables wrapper
- /var/vpnkit:/port # vpnkit control 9p mount
- /var/run:/var/run
command:
- sleep
- 1d

使用 Alpine 的基本图像, net-manager 的点服务是允许公共(public)互联网连接到我在 host: net 上旋转的虚拟以太网适配器命名空间。我目前的尝试如下(在容器内):
$ sysctl net.ipv4.conf.all.forwarding=1
$ /usr/bin/iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE

就像您对未使用 vpnkit 的 VM 所做的那样,但这样做似乎没有任何明显的效果。例如, nc -v google.com仍然失败。我错过了什么? vpnkit 已按照此处的示例进行安装和转发:

https://github.com/linuxkit/linuxkit/blob/master/examples/docker-for-mac.yml

最佳答案

事实证明,问题出在这一行:

binds:
...

/usr/bin/vpnkit-iptables-wrapper:/usr/bin/iptables

通过将 iptables 可执行文件覆盖为 docker 提供的可执行文件,即使命令报告没有问题,事情也会出现问题。正如他们的文档中所提到的,它必须用于特定于群体的东西。

修复是删除该绑定(bind)并运行容器中提供的 iptables

关于docker - 允许通过 vpnkit 出站容器网络,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52231410/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com