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

iptables только частично перенаправляет порты

Я перемещаю все, что использует порт 80 на порт 9000 на моем сервере, поэтому я настроил свой apache + его виртуальные хосты для прослушивания 9000, используя ip xx.xx.xx.106, и я настроил свои iptables на предварительную маршрутизацию, и они работают хорошо.

Проблема в том, что у меня есть приложение nodejs, работающее на xx.xx.xx.108: 9000, которое не перенаправляется, когда я набираю адрес в моем браузере без номера порта. Вместо этого он переходит в каталог по умолчанию на моем сервере через порт 80 (отлично работает, когда я перехожу прямо к адресу: порт)

Вот мой маршрут

➜  public_html  iptables -t nat -L -v -n --line-numbers
Chain PREROUTING (policy ACCEPT 639 packets, 80831 bytes)
num   pkts bytes target     prot opt in     out     source               destination
1      285 16568 REDIRECT   tcp  --  eth0   *       0.0.0.0/0            0.0.0.0/0           tcp dpt:80 redir ports 9000

Chain POSTROUTING (policy ACCEPT 48 packets, 3125 bytes)
num   pkts bytes target     prot opt in     out     source               destination

Chain OUTPUT (policy ACCEPT 45 packets, 2981 bytes)
num   pkts bytes target     prot opt in     out     source               destination
1        3   144 REDIRECT   tcp  --  *      *       0.0.0.0/0            127.0.0.1           tcp dpt:80 redir ports 9000
2        0     0 REDIRECT   tcp  --  *      *       0.0.0.0/0            173.234.60.106      tcp dpt:80 redir ports 9000
3        0     0 REDIRECT   tcp  --  *      *       0.0.0.0/0            173.234.60.108      tcp dpt:80 redir ports 9000

Странно то, что порт 80 ничего не слушает, а файл index.php в каталоге по умолчанию правильно компилирует PHP. Это заставляет меня задуматься, есть ли служба по умолчанию, которая слушает порт 80.