gpt4 book ai didi

docker - 在Docker容器中使用iptables进行端口转发

转载 作者:行者123 更新时间:2023-12-02 19:35:04 25 4
gpt4 key购买 nike

我在一个容器上运行两个服务(A和B)。一种服务模拟了另一种所需的依赖关系。

服务A是一个黑匣子,它会 call IP 169.254.169.254。我想使用iptables将该 call 转发到服务B。

我正在这样启动容器,因此它可以有自己的iptables,

docker run -it --cap-add=NET_ADMIN --sysctl net.ipv4.conf.eth0.route_localnet=1 <name> bash

一旦进入bash,我将iptables配置为转发 call ,
iptables -t nat -I PREROUTING -p tcp -d 169.254.169.254 --dport 80 -j DNAT --to-destination "127.0.0.1:8099" -i eth0

但是,该 call 不会路由到127.0.0.1。如果在Ubuntu Xenial VM中完成,则将执行相同的步骤。

最佳答案

您可以运行以下内容

iptables -t nat -A OUTPUT -p tcp --dport 80 -d 169.254.169.254 -j DNAT --to-destination 127.0.0.1:8099

我使用下面的方法对容器进行了简单的测试,效果很好
root@a09ced7f6961:/# iptables -t nat -A OUTPUT -p tcp --dport 8080 -d 123.45.67.89 -j DNAT --to-destination 127.0.0.1:80

root@a09ced7f6961:/# curl 123.45.67.89:8080
<!DOCTYPE html>
<html>
<head>
<title>Welcome to nginx!</title>

关于docker - 在Docker容器中使用iptables进行端口转发,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46349698/

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