首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >码头集装箱内使用iptables的端口转发

问码头集装箱内使用iptables的端口转发
EN

Stack Overflow用户
提问于 2017-09-21 17:16:57
回答 1查看 2.3K关注 0票数 2

我在一个集装箱上经营两个服务(A & B)。一个服务模拟另一个服务所需的依赖项。

服务A是一个黑匣子,并调用IP 169.254.169.254.我想使用iptable将该呼叫转发到服务B。

我像这样启动容器,这样它就可以有自己的iptable了,

代码语言:javascript
复制
docker run -it --cap-add=NET_ADMIN --sysctl net.ipv4.conf.eth0.route_localnet=1 <name> bash

在bash中,我配置iptable来转发呼叫,

代码语言:javascript
复制
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

但是,调用不会被路由到127.0.0.1。如果在中执行相同的步骤,则相同的步骤可以工作。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-09-21 18:35:23

您可以运行以下命令

代码语言:javascript
复制
iptables -t nat -A OUTPUT -p tcp --dport 80 -d 169.254.169.254 -j DNAT --to-destination 127.0.0.1:8099

我用下面的方法对我的容器做了一个简单的测试,效果很好。

代码语言:javascript
复制
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>
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46349698

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档