是否可以在iptables中使用计算机名称

时间:2012-05-29 22:34:02

标签: iptables computer-name

我想将一些端口从WAN重定向到我的笔记本电脑。问题是,笔记本电脑在无线上具有与有线局域网不同的IP。有没有办法在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中解析?

谢谢。

2 个答案:

答案 0 :(得分:1)

否 - 尝试此操作会出现“错误的IP地址”(至少在v 1.4.7中)

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

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

答案 1 :(得分:1)

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

两种可能的解决方案(与IP相关 - 如果你不能这样做,请参阅第三篇),但是: 首先,根据MAC地址分配IP(或必要的IP)。

或者,你可以有两个不同的规则:它毕竟是一个链;它一直持续到它有答案。因此,只需使用适当的IP指定两个规则。这可能是理想的解决方案(可以说第一种解决方案大致相同)。啊,我刚才看到有人评论静态IP。这真的是答案 - 你不动态分配IP。但是如果你必须有动态IP,还有一种方法:

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