Настройка: У меня есть Linux (Gentoo, если это имеет значение), который служит шлюзом для всей квартиры. Этот ящик творит чудеса NAT с iptables и dhcpd.
Эта проблема: У меня есть определенный компьютер, на который я хочу перенаправить порт (для торрентов, если, опять же, есть разница).
У меня достаточно навыков администрирования Linux, чтобы прочитать инструкции и правильно настроить все (в конечном итоге), но инструкции, которые я нашел для своего случая, были слишком неясными и казались излишне сложными.
Для того, что я собрал, у меня двоякая проблема: заставить dhcpd надежно назначить определенный статический IP-адрес компьютеру, который я хочу, а затем настроить iptables для переадресации портов.
Может ли кто-нибудь дать мне конкретное пошаговое руководство, как это сделать? Я уверен, что я не единственный, кто этого хочет ...
Редактировать: Мои версии программного обеспечения:
# iptables --version iptables v1.4.0 # dhcpd --version isc-dhcpd-V3.1.1-Gentoo
Чтобы dhcp надежно назначал определенный статический IP-адрес компьютеру, который вам нужен, обычно нужно изучить, как сообщить вашему DHCP-серверу (независимо от того, какой из них вы работаете) статически сопоставить MAC-адрес с IP-адресом. Это заставит его всегда выдавать один и тот же IP-адрес (который вы указываете) на этот MAC-адрес.
ISC dhcp нуждается в строфе конфигурации вроде
host mycomputer {
hardware ethernet 00:12:34:56:78:9A;
fixed-address 192.168.1.10;
}
dnsmasq нужна строка вроде:
dhcp-host=00:12:34:56:78:9A,192.168.1.10
сведения о которых указаны в справочная страница.
где:
Как только это будет сделано, у вас теперь есть «статический» IP-адрес для перенаправления вашего порта. Для этого вы хотите, как говорит @Avery Payne, сделать:
iptables -t nat -I PREROUTING -s ! {internal-network} -d {public-address} -p tcp --dport {port-on-public-address} -j DNAT --to-dest {internal-address}
где:
Обратите внимание на пробел между -s, восклицательным знаком и {внутренняя-сеть}, не забудьте оставить пробелы с обеих сторон.
iptables -t nat -I PREROUTING -s ! {internal-network} -d {public-address} -p tcp --dport {port-on-public-address} -j DNAT --to-dest {internal-address}
где:
Обратите внимание на пробел между -s, восклицательным знаком и {internal-network}, не забудьте поставить пробел на обе стороны.