Назад | Перейти на главную страницу

Linux не отвечает на соединения с перенаправлением портов

Я новичок на этом сайте и хочу заранее извиниться за любые ошибки, глупые вопросы и т. Д. (Если таковые имеются).
У меня проблема с сетью, и я надеюсь, что у кого-то есть идеи, как ее решить. Я почти уверен, что это просто.

Прежде всего, давайте представим мою конфигурацию / геометрию сети:

    ------
  (        )             SRV                 PC-A                 PC-B
 (          )     ╔════════════╤══╗    ╔═══╤═══════════╗    ╔════════════╤══╗
(  INTERNET  )═══>║ 95.12.34.56│  ║    ║   │192.168.1.1║═══>║ 192.168.1.5│  ║
 (          )     ╟────────────┘  ║    ║   └───────────╢    ╟────────────┘  ║
  (        )      ║               ║    ║               ║    ╚═══════════════╝
    ------        ║   ┌───────────╢    ╟────────────┐  ║ 
                  ║   │192.168.0.1║═══>║ 192.168.0.4│  ║ 
                  ╚═══╧═══════════╝    ╚════════════╧══╝

SRV и ПК-А работать на Windows XP Pro SP2. У них обоих одинаковый программный пакет, который выполняет межсетевой экран, NAT, переадресацию портов и перезапись.

ПК-В запускает Arch Linux без iptables правила, он использует только hosts.allow и hosts.deny подходить. ПК-В также есть раздел с Windows XP Pro SP2 (свежая установка, никакого другого программного обеспечения, которое взаимодействует с системой, брандмауэр отключен).

# iptables -L
Chain INPUT (policy ACCEPT)
target     prot opt source               destination

Chain FORWARD (policy ACCEPT)
target     prot opt source               destination

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination

ПК-А есть правила для перенаправления и перезаписи портов:
- порт 3333 => порт 3306 @ 192.168.1.5;
- все ICMP => 192.168.1.5

Теперь поведение:
Случай 1) когда ПК-В работает Windows
- из ПК-В Я могу пинг IP из интернета, IP из 192.168.0.0/24 и IP из сетей 192.168.1.0/24
- если я запускаю сервер MySQL на ПК-В, Я могу подключиться к нему из SRV (с указанием хоста 192.168.0.4 и порта 3333), а также из ПК-А (netstat показывает установленное соединение с 192.168.0.1, когда SRV подключается с помощью перенаправления и перезаписи портов)
- из SRV Я могу пинговать ПК-В

Случай 2) когда ПК-В работает Arch Linux:
- из ПК-В Я могу пинг IP-адреса из Интернета, IP-адреса из 192.168.1.0/24 и только IP-адрес 192.168.0.4, но не другие IP-адреса из сети 192.168.1.0/24
- если я запускаю сервер MySQL на ПК-В, Я не может подключиться к нему из SRV (с указанием хоста 192.168.0.4 и порта 3333), только с ПК-А

Выполняя все эти тесты, SRV и ПК-А работали без изменений, перезапусков или чего-то подобного. Они правильно выполняют свою работу и запускают Windows на ПК-В докажите это. Я также провел проверку пакетов с помощью Wireshark, и пакеты доставляются на машину Linux.

Теперь вопрос в том, что не так с машиной Linux? Почему в Windows все работает так, как должно, а в Linux - нет?

Я предполагаю, что что-то связанное с маршрутами отсутствует.
Вероятно, система не знает, как отвечать на пакеты с исходным IP = 192.168.0.1 (но почему в этом случае она может пинговать 192.168.0.4?).
Маршруты:

# ip route show
192.168.1.0/24 dev eth0  proto kernel  scope link  src 192.168.1.5
default via 192.168.1.1 dev eth0

Вы можете использовать ssh 192.168.1.5? Вы разрешили 192.168.0.0/24 в host.allow?

192.168.1.1 отвечает за пересылку запроса с 192.168.1.5 на 192.168.0.0/24, потому что в соответствии с маршрутами 192.168.1.1 является шлюзом вашего Linux-сервера.