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


Считаете, что Ubuntu недостаточно дружелюбна к новичкам?
Помогите создать новое Руководство для новичков!

Автор Тема: Проброс портов  (Прочитано 822 раз)

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

Оффлайн nikitadimitrov

  • Автор темы
  • Новичок
  • *
  • Сообщений: 2
    • Просмотр профиля
Проброс портов
« : 22 Июня 2016, 15:59:09 »
Есть сервер (использует Debian), на котором запущен сервер nginx. У машины нее есть два сетевых интерфейса. Один из них (eth0) имеет белый IP, доступен из интернета, через него осуществляется доступ в Интернет, на него настроен домен, все хорошо. Второй (eth2) воткнут в роутер "Интернет-центр Yota" и получает свой IP по DHCP от него. На самом Yota-роутере настроен проброс 80 порта на этот IP, роутер имеет статический внешний IP. Однако по внешнему IP сайт оказывается недоступен. При этом, telnet на 80 порт устанавливает соединение, но ответа не приходит: таймаут подключения. Более того, по внутреннему IP подсети Yota-роутера сайт тоже доступен!
Если я переключаю проброс порта на собственную машину, где тоже крутится сервер, все работает. Получается, дело в настройках сервера.
В чем может быть дело, почему он не отвечает на "проброшенные" запросы?


~# ifconfig -a
eth0      Link encap:Ethernet  HWaddr 00:25:90:63:4d:96
          inet addr:91.1.1.1  Bcast:91.1.1.255  Mask:255.255.255.0
          inet6 addr: fe80::225:90ff:fe63:4d96/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:5341944 errors:0 dropped:6725 overruns:0 frame:0
          TX packets:6732969 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:2982997488 (2.7 GiB)  TX bytes:7521756636 (7.0 GiB)
          Interrupt:16 Memory:fb5e0000-fb600000

eth1      Link encap:Ethernet  HWaddr 00:25:90:63:4d:97
          inet addr:10.0.1.1  Bcast:10.0.0.255  Mask:255.255.255.0
          inet6 addr: fe80::225:90ff:fe63:4d97/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:23916009 errors:0 dropped:0 overruns:0 frame:0
          TX packets:19949059 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:21361883768 (19.8 GiB)  TX bytes:2975714198 (2.7 GiB)
          Interrupt:17 Memory:fb6e0000-fb700000

eth2      Link encap:Ethernet  HWaddr 00:e0:4c:36:06:87
          inet addr:10.0.2.2  Bcast:10.0.2.255  Mask:255.255.255.0
          inet6 addr: fe80::2e0:4cff:fe36:687/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:1906 errors:0 dropped:0 overruns:0 frame:0
          TX packets:2036 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:174272 (170.1 KiB)  TX bytes:1637092 (1.5 MiB)

lo        Link encap:Local Loopback
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:16436  Metric:1
          RX packets:106220083 errors:0 dropped:0 overruns:0 frame:0
          TX packets:106220083 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:117442997191 (109.3 GiB)  TX bytes:117442997191 (109.3 GiB)



~# route
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
default         91.1.1.1        0.0.0.0         UG    0      0        0 eth0
10.0.1.0        *               255.255.255.0   U     0      0        0 eth1
10.0.2.0        *               255.255.255.0   U     0      0        0 eth2
91.1.1.0        *               255.255.255.0   U     0      0        0 eth0
192.168.0.0     10.0.1.1        255.255.255.252 UG    0      0        0 eth1


Пользователь добавил сообщение 22 Июня 2016, 16:45:16:
Вот еще полезная инфа:

~# ping -I eth2 8.8.8.8
PING 8.8.8.8 (8.8.8.8) from 10.0.2.2 eth2: 56(84) bytes of data.
From 10.0.2.2 icmp_seq=2 Destination Host Unreachable
From 10.0.2.2 icmp_seq=3 Destination Host Unreachable
From 10.0.2.2 icmp_seq=4 Destination Host Unreachable
From 10.0.2.2 icmp_seq=5 Destination Host Unreachable
From 10.0.2.2 icmp_seq=6 Destination Host Unreachable
From 10.0.2.2 icmp_seq=7 Destination Host Unreachable
« Последнее редактирование: 22 Июня 2016, 16:45:16 от nikitadimitrov »

Оффлайн fisher74

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 13761
    • Просмотр профиля
Re: Проброс портов
« Ответ #1 : 22 Июня 2016, 17:13:45 »
У Вас сервер получает запрос через один интерфейс, а отдаёт через другой (в случае коннекта через йоту)
Для исправления ситуации курите iproute2

Оффлайн nikitadimitrov

  • Автор темы
  • Новичок
  • *
  • Сообщений: 2
    • Просмотр профиля
Re: Проброс портов
« Ответ #2 : 22 Июня 2016, 17:48:38 »
Супер, спасибо!
Наше замечательную статью, в которой рассматривается как раз мой пример, "Доступность сервера через несколько аплинков": https://habrahabr.ru/post/108690/

Приведу выдержку:

Теперь более реалистичный пример. Имеется два аплинка до двух провайдеров, необходимо обеспечить доступность сервера с обоих каналов:

В качестве маршрута по умолчанию используется один из провайдеров, не важно какой. При этом веб-сервер будет доступен только через сеть этого провайдера. Запросы через сеть другого провайдера приходить будут, но ответные пакеты будут уходить на шлюз по умолчанию и ничего из этого не выйдет.
Решается это весьма просто:
Определяем таблицы:
# ip route add default via 11.22.33.1 table 101
# ip route add default via 55.66.77.1 table 102

Определяем правила:
# ip rule add from 11.22.33.44 table 101
# ip rule add from 55.66.77.88 table 102

Думаю теперь уже объяснять смысл этих строк не надо. Аналогичным образом можно сделать доступность сервера по более чем двум аплинкам.


В моем случае хватило двух команд:

~# ip route add default via 10.0.2.1 table 102
~# ip rule add from 10.0.2.2 table 102

 

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