Невозможно получить доступ к серверу экспресс / узла через порт 3001, несмотря на то, что включен через firewall-cmd - PullRequest
0 голосов
/ 09 октября 2018

Сегодня утром я искал, пытаясь выяснить, как решить мою проблему, но, похоже, ничего не подходит для моей ситуации или не решает мою проблему, и вот я здесь.

У меня работает сервер CentOS Linux release 7.5.1804 (Core) и я установил узел v10.11.0 для размещения веб-сайта.У меня есть домен foo.ca, в результате чего у меня работает два отдельных веб-сервера (один для клиента, другой для сервера).Клиент работает на порту 3000, и я использовал iptables для переадресации порта 80 на порт 3000, чтобы я мог просматривать свой веб-сайт без явного перечисления порта (т. Е. Путем ввода foo.ca в адресной строке)

sudo iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-port 3000

Это работает нормально, и я вижу foo.ca

Моя проблема возникает, когда я пытаюсь получить доступ к серверу, который работает на порту 3001. Я включил порт через tcp с помощью firewall-cmd:

sudo firewall-cmd --zone=public --add-port=3000/tcp --permanent
sudo firewall-cmd --zone=public --add-port=3001/tcp --permanent
sudo firewall-cmd --reload

Если я наберу foo.ca:3001 chrome сообщает, что сайт не может быть достигнут, foo.ca слишком долго не отвечал.

Я протестировал порт 3001 через онлайн-инструмент, и он говорит, чтоэто открыто, я также проверил netstat:

netstat -tuplen
(Not all processes could be identified, non-owned process info
 will not be shown, you would have to be root to see it all.)
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       User       Inode      PID/Program name
tcp        0      0 127.0.0.1:27017         0.0.0.0:*               LISTEN      995        12161      -
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      0          12066      -
tcp        0      0 0.0.0.0:3000            0.0.0.0:*               LISTEN      1000       56647615   4926/node
tcp        0      0 0.0.0.0:3001            0.0.0.0:*               LISTEN      1000       56671635   6195/node

Некоторые онлайн предложения включали использование 0.0.0.0 вместо localhost, но, как вы можете видеть, я уже реализовал это.Я на самом деле не знаю, какие у меня варианты на данный момент, я пытался включить порт через iptables, но я не уверен, что что-то сделал:

iptables -A INPUT -p tcp --dport 3001 -j ACCEPT

Последнее, мой экспресс-серверкод выглядит так:

const express = require('express')
const app = express()
const port = 3001

app.get('/', (req, res) => res.send('Hello World!'))

app.listen(port, '0.0.0.0', () => console.log(`Example app listening on port ${port}!`))

И я запускаю его как node test

У кого-нибудь есть какие-нибудь идеи?Я не большой сетевой гуру

1 Ответ

0 голосов
/ 17 апреля 2019

Решением было то, что моя сеть почему-то блокировала его

...