2

我想将一些端口从 WAN 重定向到我的笔记本电脑。问题是,笔记本电脑的无线 IP 与有线 LAN 不同。有没有办法在 iptables 中使用计算机名?

iptables 端口转发规则(使用 IP)应该是:

iptables -t nat -A PREROUTING -p tcp -d 192.168.102.37 --dport 422 -j DNAT --to 192.168.102.37:22

我可以写类似的东西吗

iptables -t nat -A PREROUTING -p tcp -d mycomputername --dport 422 -j DNAT --to mycomputername:22

并且计算机名称将在当前IP中解析?

谢谢你。

4

2 回答 2

2

否 - 尝试这样做会产生“错误的 IP 地址”(至少在 v 1.4.7 中)

iptables 似乎不喜欢目标地址和端口的组合。(您可以为简单的 IP 指定主机名,但在附加端口时似乎不行)。

IPTables 手册还建议不要指定域名。

于 2012-05-29T22:41:02.993 回答
1

这是一个糟糕的想法(但有一些解决方案(特定于 IP 和特定于 MAC),见下文)。正如其他答案所述,手册页建议不要这样做。但这不仅仅是安全性(DNS 本质上是不安全的) - 这也是性能损失。当然你可以有一个主机映射,但仍然指定 IP 是最好的(但即使这样:你可以覆盖或更确切地说指定哪个是首先使用 - dns 或主机,通常使用名称而不是 IP 是有风险的业务)。

但是,有两种可能的解决方案(IP 相关 - 如果您不能这样做,请参阅第三个):首先,根据 MA​​C 地址分配 IP(或必要时的 IP)。

或者,您可以有两个不同的规则:毕竟,它是一条链;它会一直持续到得到答案为止。因此,只需指定两个规则,每个规则都有正确的 IP。这可能是理想的解决方案(可以说第一个解决方案大致相同)。啊,我刚才看到有人评论了静态IP。这确实是答案 - 您不会动态分配 IP。但是如果必须要有动态IP,还是有办法的:

如果您不能自己分配 IP(例如不受您的控制),您可以使用 iptables 的 mac 模块。有关更多信息,请参见手册页。

于 2015-01-16T15:25:58.197 回答