gpt4 book ai didi

docker - docker上的nginx:对等重置连接

转载 作者:行者123 更新时间:2023-12-02 19:16:40 26 4
gpt4 key购买 nike

操作系统:Manjaro KDE; Docker版本:19.03.12-ce
尝试搜索类似的问题,但没有任何帮助。
在此情况下,在docker或任何其他容器上运行nginx时,我无法访问它。

$ docker run -p 80:80 nginx
$ curl -vvv localhost
* Trying ::1:80...
* Connected to localhost (::1) port 80 (#0)
> GET / HTTP/1.1
> Host: localhost
> User-Agent: curl/7.71.1
> Accept: */*
>
* Recv failure: Connection reset by peer
* Closing connection 0
curl: (56) Recv failure: Connection reset by peer
这是netstat输出的相关部分:
$ sudo netstat -pnltu | grep 80
tcp6 0 0 :::80 :::* LISTEN 80884/docker-proxy
我也尝试过:
$ docker run -p 127.0.0.1:80:80 nginx
导致netstat:
$ sudo netstat -pnltu | grep 80
tcp 0 0 127.0.0.1:80 0.0.0.0:* LISTEN 81440/docker-proxy
结果相同。但是,如果我这样运行它:
$ docker run --network host -p 80:80 nginx
它按预期工作。知道为什么吗?

最佳答案

我想到了!
罪魁祸首是我(mullvad的)wireguard配置,该配置向主机添加了自己的iptables规则,以实现kill-switch,从而迫使整个流量通过VPN或将其丢弃。
如果有人遇到类似问题,请检查您的iptables。

PostUp = iptables -I OUTPUT ! -o %i -m mark ! --mark $(wg show %i fwmark) -m addrtype ! --dst-type LOCAL -j REJECT && ip6tables -I OUTPUT ! -o %i -m mark ! --mark $(wg show %i fwmark) -m addrtype ! --dst-type LOCAL -j REJECT
PreDown = iptables -D OUTPUT ! -o %i -m mark ! --mark $(wg show %i fwmark) -m addrtype ! --dst-type LOCAL -j REJECT && ip6tables -D OUTPUT ! -o %i -m mark ! --mark $(wg show %i fwmark) -m addrtype ! --dst-type LOCAL -j REJECT

关于docker - docker上的nginx:对等重置连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63206290/

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