Форум русскоязычного сообщества Ubuntu


За новостями русскоязычного сообщества и Ubuntu в целом можно следить на нашей страничке в Google+

Автор Тема: Вопрос по порт форвардингу  (Прочитано 2069 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн ksevelyar

  • Автор темы
  • Любитель
  • *
  • Сообщений: 89
    • Просмотр профиля
    • dobroserver
Вопрос по порт форвардингу
« : 21 Март 2010, 16:36:15 »
Сделал так:

sudo /sbin/iptables -P FORWARD ACCEPT
sudo /sbin/iptables --table nat -A POSTROUTING -o eth0 -j MASQUERADE

sudo /sbin/iptables -t nat -A PREROUTING -p tcp -i eth0 -d external_ip --dport 8888 -j DNAT --to 192.168.0.2:8888
sudo /sbin/iptables -t nat -A PREROUTING -p udp -i eth0 -d external_ip --dport 8888 -j DNAT --to 192.168.0.2:8888

Но по адресу  external_ip:8888 ничего не получается (хотя через локалхост:8888 на этом компьютере всё работает).

Ипи раздаются через dhcp dnsmasq и у нужного внутреннего компьютера ипи именно 192.168.0.2 (проверил ipconfig)
« Последнее редактирование: 22 Март 2010, 02:24:00 от ksevelyar »
Грудь в крестах или голова в кустах.

Оффлайн Sam Stone

  • Старожил
  • *
  • Сообщений: 1124
    • Просмотр профиля
Re: Вопрос по порт форвардингу
« Ответ #1 : 21 Март 2010, 18:00:38 »
-d internal_ip лишнее. И как ты вообще предполагаешь коннектиться к к внешнему интерфейсу по внутреннему айпишнику?..

Суть форвардинга: на внешний айпишник на определенный порт стучится программа и в зависимости от настроек коннект на этот порт перенаправляется на внутренний айпишник. Т.е. зафорвардить с одного порта больше, чем на один внутренний хост, низя. (если я неправ, поправьте)
16.04.1 4.4.0-59-generic x86_64 GNU/Linux

Оффлайн ksevelyar

  • Автор темы
  • Любитель
  • *
  • Сообщений: 89
    • Просмотр профиля
    • dobroserver
Re: Вопрос по порт форвардингу
« Ответ #2 : 22 Март 2010, 02:23:11 »
Конечно external, а не internal :)

Убрал -d internal_ip - к сожалению не помогло.
Грудь в крестах или голова в кустах.

Оффлайн Unreg

  • Активист
  • *
  • Сообщений: 751
  • Ubuntu 8.04 / Acer Aspire One 110 > Debian 5.04
    • Просмотр профиля
    • LJ
Re: Вопрос по порт форвардингу
« Ответ #3 : 22 Март 2010, 09:33:30 »
iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 8888 -j DNAT --to-destination 192.168.0.2
=
iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 8888 -j DNAT --to-destination 192.168.0.2:8888
на 192.168.0.2:8888 веб сервер?
http://anonymouse.org/cgi-bin/anon-www.cgi/http://[external_ip]
что говорит?

Оффлайн ksevelyar

  • Автор темы
  • Любитель
  • *
  • Сообщений: 89
    • Просмотр профиля
    • dobroserver
Re: Вопрос по порт форвардингу
« Ответ #4 : 22 Март 2010, 20:41:00 »
Цитировать
на 192.168.0.2:8888 веб сервер?
Да.

Работает ???:

http://anonymouse.org/cgi-bin/anon-www.cgi/http://ksevelyar.ru:8888

Не работает:

http://ksevelyar.ru:8888
Грудь в крестах или голова в кустах.

Оффлайн Unreg

  • Активист
  • *
  • Сообщений: 751
  • Ubuntu 8.04 / Acer Aspire One 110 > Debian 5.04
    • Просмотр профиля
    • LJ
Re: Вопрос по порт форвардингу
« Ответ #5 : 22 Март 2010, 21:12:42 »
dnat

Оффлайн ksevelyar

  • Автор темы
  • Любитель
  • *
  • Сообщений: 89
    • Просмотр профиля
    • dobroserver
Re: Вопрос по порт форвардингу
« Ответ #6 : 22 Март 2010, 21:29:48 »
?
Грудь в крестах или голова в кустах.

Оффлайн Unreg

  • Активист
  • *
  • Сообщений: 751
  • Ubuntu 8.04 / Acer Aspire One 110 > Debian 5.04
    • Просмотр профиля
    • LJ
Re: Вопрос по порт форвардингу
« Ответ #7 : 23 Март 2010, 16:08:28 »
прочитайте правило ещё раз
iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 8888 -j DNAT --to-destination 192.168.0.2
всё что приходит на внешний интерфейс (eth0) на tcp порт 8888 перекинуть на 192.168.0.2 на tcp порт 8888
(Нажмите, чтобы показать/скрыть)

http://www.opennet.ru/docs/RUS/iptables/#DNATTARGET

Оффлайн ksevelyar

  • Автор темы
  • Любитель
  • *
  • Сообщений: 89
    • Просмотр профиля
    • dobroserver
Re: Вопрос по порт форвардингу
« Ответ #8 : 23 Март 2010, 23:29:45 »
прочитайте правило ещё раз
iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 8888 -j DNAT --to-destination 192.168.0.2
всё что приходит на внешний интерфейс (eth0) на tcp порт 8888 перекинуть на 192.168.0.2 на tcp порт 8888

Да, и? Что вы хотите сказать?

Прочитал по вашей ссылке о похожей проблеме:
Если теперь обратиться к WEB-серверу из Интернет, то все будет работать прекрасно. Но что же произойдет, если попробовать соединиться с ним из локальной сети? Соединение просто не установится.Правда тут наверно имеется в виду из локальной сети по локальному адресу, так как по внешнему адресу я не могу пробиться даже после этого решения (в той же статье):

sudo iptables -t nat -A POSTROUTING -p tcp -d 192.168.0.2 --dport 8888 -j SNAT --to-source 192.168.0.1

sudo iptables -t nat -A OUTPUT --dst ksevelyar.ru -p tcp --dport 8888 -j DNAT --to-destination 192.168.0.2

Грудь в крестах или голова в кустах.

Оффлайн Mam(O)n

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 5855
    • Просмотр профиля
Re: Вопрос по порт форвардингу
« Ответ #9 : 24 Март 2010, 00:17:09 »
Не работает:

http://ksevelyar.ru:8888
От меня работает. Показывай полную картину sudo iptables-save.

Оффлайн ksevelyar

  • Автор темы
  • Любитель
  • *
  • Сообщений: 89
    • Просмотр профиля
    • dobroserver
Re: Вопрос по порт форвардингу
« Ответ #10 : 24 Март 2010, 00:31:25 »
Вы не поняли. Работает для всех машин, кроме тех, которые находятся в моей локальной сети, а это меня совершенно не устраивает:
Цитировать
The above rules work fine when you access from outside, but if you try to access the same port xxx.xxx.xxx.xxx:8888 from an internal machine, it will not work. But from the internal network you dont need the forwarding, since you can directly access the machine 192.168.0.2:8888.
« Последнее редактирование: 24 Март 2010, 00:33:09 от ksevelyar »
Грудь в крестах или голова в кустах.

Оффлайн Mam(O)n

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 5855
    • Просмотр профиля
Re: Вопрос по порт форвардингу
« Ответ #11 : 24 Март 2010, 00:55:35 »
Я это понял.

Вот только не пойму, что там уже наверчено в правилах. Может в FORWARD рубится... Показывай sudo iptables-save.

Оффлайн ksevelyar

  • Автор темы
  • Любитель
  • *
  • Сообщений: 89
    • Просмотр профиля
    • dobroserver
Re: Вопрос по порт форвардингу
« Ответ #12 : 24 Март 2010, 01:21:45 »
Я использую эти команды если решения не работают (чтобы не было лишних / неисправных правил):

ptables -F && iptables -X

iptables -t nat -F && iptables -t nat -X


Вот вывод этой команды:

ksevelyar@dobroserver:~$ sudo iptables-save
# Generated by iptables-save v1.4.4 on Wed Mar 24 01:28:15 2010
*nat
:PREROUTING ACCEPT [432998:37417375]
:POSTROUTING ACCEPT [1363:101173]
:OUTPUT ACCEPT [98462:7210780]
-A PREROUTING -i eth0 -p tcp -m tcp --dport 8888 -j DNAT --to-destination 192.168.0.2
-A POSTROUTING -o eth0 -j MASQUERADE
COMMIT
# Completed on Wed Mar 24 01:28:15 2010
# Generated by iptables-save v1.4.4 on Wed Mar 24 01:28:15 2010
*filter
:INPUT ACCEPT [12262703:1182602121]
:FORWARD ACCEPT [1603:140144]
:OUTPUT ACCEPT [11838658:7608432860]
COMMIT
# Completed on Wed Mar 24 01:28:15 2010

Работают три правила:

iptables -P FORWARD ACCEPT
iptables --table nat -A POSTROUTING -o eth0 -j MASQUERADE

iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 8888 -j DNAT --to-destination 192.168.0.2

« Последнее редактирование: 24 Март 2010, 01:29:44 от ksevelyar »
Грудь в крестах или голова в кустах.

Оффлайн Mam(O)n

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 5855
    • Просмотр профиля
Re: Вопрос по порт форвардингу
« Ответ #13 : 24 Март 2010, 01:42:04 »
192.168.0.0/24 на eth1 - локалка?

Тогда добавь еще
iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -d 192.168.0.0/24 -o eth1 -j MASQUERADEи вместо
Цитировать
iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 8888 -j DNAT --to-destination 192.168.0.2
используй
iptables -t nat -A PREROUTING -d ksevelyar.ru -p tcp --dport 8888 -j DNAT --to-destination 192.168.0.2

Оффлайн ksevelyar

  • Автор темы
  • Любитель
  • *
  • Сообщений: 89
    • Просмотр профиля
    • dobroserver
Re: Вопрос по порт форвардингу
« Ответ #14 : 24 Март 2010, 01:54:30 »
Огромное спасибо, теперь работает.
Грудь в крестах или голова в кустах.

 

Страница сгенерирована за 0.056 секунд. Запросов: 23.