首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >IPtables:转发到另一个主机的端口不工作

IPtables:转发到另一个主机的端口不工作
EN

Server Fault用户
提问于 2014-01-27 10:57:37
回答 2查看 1.5K关注 0票数 0

我正在尝试一些东西,所以这是我的测试设置:

设置:

  • 我有一个带有公共和私有子网的AWS VPC。
  • 我在公共子网中有一个具有公共IP地址的主机(例如主机A)
  • 我有一个私有子网中的主机在端口80上运行nginx (例如主机B具有IP地址10.0.1.132 )。

我想做什么

我想通过访问主机A从因特网上访问主机B上的the服务器。

How

我在主机A上设置了systctl.conf中的IP转发参数,然后放在iptables规则下面:

代码语言:javascript
复制
iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j DNAT --to-destination 10.0.1.132:80

发行:

它不工作,当我访问端口80上的主机A时,我无法打开WebPage

其他信息(关于AWS安全组):

  • 我可以从port 80访问host A0.0.0.0/0
  • 我可以通过port 80向外访问host A10.0.1.0/24
  • 我可以从port 80访问host B上的host A

下面是内核信息:

代码语言:javascript
复制
# sysctl  -p | grep forward
net.ipv4.ip_forward = 1

另外,我还可以在80端口上从主机A到80端口的主机B进行电信。因此,这证明我的AWS安全组正在按预期工作。

我想我在IPtables上出了问题。可以帮我找出上面的设置有什么问题。

EN

回答 2

Server Fault用户

发布于 2014-01-27 11:12:32

你知道私有主机应该是…吗?

  • …默认路由指向路由器吗?
  • …是SNATed,这样它的答复就会被退回吗?
票数 1
EN

Server Fault用户

发布于 2014-01-27 12:57:59

我想我在IPtables上出了问题。可以帮我找出上面的设置有什么问题。

没错,流量将通过,但随后会被IPTables阻塞。您需要一个可以接受NAT流量的前向规则:

代码语言:javascript
复制
iptables -A FORWARD -p tcp -m tcp -d 10.0.1.132:80 -j ACCEPT

请注意,-A可能是不正确的,您可能需要-I (插入),然后在“前进”之后提供一个数字,这表示在前向链中要插入规则的位置。(在滴滴之前)你可以用

代码语言:javascript
复制
iptables -L FORWARD -n --line-numbers
票数 0
EN
页面原文内容由Server Fault提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://serverfault.com/questions/570093

复制
相关文章

相似问题

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