Можно ли использовать имя компьютера в iptables

Я хочу перенаправить какой-то порт из WAN на свой ноутбук. Проблема в том, что IP-адрес ноутбука в беспроводной сети отличается от 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?

Спасибо.


person Matej    schedule 29.05.2012    source источник
comment
Почему вы не можете дать ПК статические IP-адреса?   -  person ThiefMaster    schedule 30.05.2012


Ответы (2)


Нет. Попытка сделать это дает «Неверный IP-адрес» (по крайней мере, в версии 1.4.7).

Похоже, что iptables не нравится комбинация адреса назначения и порта. (Вы можете обойтись без указания имени хоста для простого IP-адреса, но, похоже, нет, когда вы добавляете порт).

Руководство IPTables также рекомендует не указывать доменное имя.

person davidgo    schedule 29.05.2012

Это ужасная идея (но есть решения (зависящие от IP и MAC), см. ниже). Как говорится в другом ответе, справочная страница рекомендует против этого. Но это больше, чем безопасность (DNS по своей сути небезопасен) — это также снижение производительности. Конечно, вы можете иметь сопоставление хостов, но все же лучше указать IP (но даже в этом случае: вы можете переопределить или, скорее, указать, какой используется в первую очередь - dns или hosts и вообще использование имен вместо IP дело рискованное).

Однако есть два возможных решения (связанных с IP — если вы не можете этого сделать, см. третье): во-первых, выделение IP-адреса (или, если необходимо, IP-адресов) на основе MAC-адреса (адресов).

В качестве альтернативы у вас могут быть два разных правила: в конце концов, это цепочка; это продолжается до тех пор, пока не будет получен ответ. Поэтому просто укажите два правила с соответствующими IP-адресами. Это, вероятно, идеальное решение (и, возможно, первое решение почти такое же). Ах, и я только что вижу, что кто-то прокомментировал статические IP-адреса. Это действительно ответ - вы не назначаете IP-адреса динамически. Но если вам нужны динамические IP-адреса, есть способ:

ЕСЛИ вы не можете назначить IP-адреса самостоятельно (например, не под вашим контролем), вы можете использовать модуль iptables для Mac. См. справочную страницу для получения дополнительной информации.

person Community    schedule 16.01.2015