首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >IPTables -端口到另一个ip和端口(从内部)

问IPTables -端口到另一个ip和端口(从内部)
EN

Unix & Linux用户
提问于 2013-05-18 15:42:21
回答 3查看 47.7K关注 0票数 10

我目前在端口80下运行NAS盒。为了从外部访问NAS,我将NAS上的端口8080映射到端口80,如下所示:

iptables -t nat -A PREROUTING -p tcp --dport 8080 -j DNAT --to-destination 10.32.25.2:80

这就像一种魅力。然而,这是唯一的工作,只有当我访问网站从外部的网络(在工作,在不同的房子,等等)。因此,当我输入mywebsite.com:8080时,IPTables正确地完成了工作,一切正常。

现在,我遇到的问题是,如何从网络内部重定向这个端口?我的域名mywebsite.com从内部指向我的路由器(我的linux服务器) (10.32.25.1),但我想从内部将端口8080重定向到10.32.25.2上的端口80。

有线索吗?

编辑#1

为了帮助解决这个问题,我把这个图表放在一起。请随时更新,如果它是不正确的或错误的陈述,您正在寻找的。

代码语言:javascript
复制
                                 iptables
                                     |                   .---------------.
    .-,(  ),-.                       v               port 80             |
 .-(          )-.        port 8080________               |               |
(    internet    )------------>[_...__...°]------------->|      NAS      |
 '-(          ).-'     10.32.25.2    ^   10.32.25.1      |               |
     '-.( ).-'                       |                   |               |
                                     |                   '---------------'
                                     |
                                     |
                                   __  _ 
                                  [__]|=|
                                  /::/|_|
EN

回答 3

Unix & Linux用户

回答已采纳

发布于 2013-05-19 02:13:42

我终于找到了办法。首先,我必须将-i eth1添加到我的“外部”规则(eth1是我的广域网连接)。我还需要添加另外两条规则。最后,我带来的是:

代码语言:javascript
复制
iptables -t nat -A PREROUTING -i eth1 -p tcp --dport 8080 -j DNAT --to 10.32.25.2:80
iptables -t nat -A PREROUTING -p tcp --dport 8080 -j DNAT --to 10.32.25.2:80
iptables -t nat -A POSTROUTING -p tcp -d 10.32.25.2 --dport 80 -j MASQUERADE
票数 16
EN

Unix & Linux用户

发布于 2015-05-20 16:03:05

您还忘记提到包转发应该能够执行目的地NAT。默认情况下,它通常是关闭的,因此iptables规则将无法工作。可以通过发出以下命令启用它:

代码语言:javascript
复制
echo 1 > /proc/sys/net/ipv4/ip_forward
票数 4
EN

Unix & Linux用户

发布于 2019-11-22 08:43:12

首先,您需要验证是否激活了转发:

cat /proc/sys/net/ipv4/ip_forward

如果不是1,运行echo 1 > /proc/sys/net/ipv4/ip_forward。

如果您希望将端口80和443上10.32.25.1的流量转发给10.32.25.2's 80端口,那么您应该使用以下规则:

代码语言:javascript
复制
iptables -t nat -A PREROUTING -d 10.32.25.1 -p tcp -m multiport --dports 80,443 -j DNAT --to-destination 10.32.25.2:80
票数 0
EN
页面原文内容由Unix & Linux提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://unix.stackexchange.com/questions/76300

复制
相关文章

相似问题

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