четверг, 12 мая 2011 г.

Проброс портов Ubuntu

В локальной сети интернет раздается сервером с Ubuntu на несколько компьютеров.
Нужно чтобы извне был доступен некий сервис на компьютере во внутренней сети, например торренты.
Для этого необходимо сделать проброс портов с сервера на внутреннюю машину.
В Ubuntu это делается с помощью iptables.

Нужно создать 2 правила для iptables.
1. Это правило подменяет IP приемника на внутренний IP:
sudo iptables -t nat -A PREROUTING -p tcp  -d ВНЕШНИЙ_IP --dport 13107 -j DNAT --to-destination ВНУТРЕННИЙ_IP:13107

2. Это правило обратно подменяет IP отправителя на внешний:
sudo iptables -t nat -A POSTROUTING -p tcp --dst ВНУТРЕННИЙ_IP --dport 13107 -j SNAT --to-source ВНЕШНИЙ_IP
На всякий случай поясню:
ВНЕШНИЙ_IP – это IP инета, который выдаётся провайдером (посмотреть можно командой ifconfig на сервере)
ВНУТРЕННИЙ_IP – это локальный IP компьютера во внутренней сети.
Посмотреть текущие правила iptables можно с помощью команды:
sudo iptables -L -n -v -t nat

Чтобы включить маршрутизацию так же нужно выполнить команду:

sudo echo 1 > /proc/sys/net/ipv4/ip_forward

1 комментарий: