Вопрос или проблема
Я пытаюсь настроить переадресацию портов на своем настольном компьютере с Ubuntu. Ранее мне удалось успешно перенаправить порты с моего роутера на другие компьютеры в этой сети, поэтому я не думаю, что это проблема роутера, и у меня есть публичный статический IP, который хостит мой сервер.
В настоящее время я пытаюсь перенаправить случайно выбранный порт: 58970 на мой компьютер с Ubuntu, который имеет IP 192.168.0.174
(base) tue@tue-ubuntu:~$ ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: eno1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
link/ether 18:c0:4d:db:fd:d1 brd ff:ff:ff:ff:ff:ff
altname enp4s0
inet 192.168.0.174/24 brd 192.168.0.255 scope global dynamic noprefixroute eno1
valid_lft 2985sec preferred_lft 2985sec
inet6 2a06:4006:2033:0:3e:f9fc:11ff:8478/64 scope global temporary dynamic
valid_lft 3883sec preferred_lft 2883sec
inet6 2a06:4006:2033:0:e40c:8b84:fe3a:da6b/64 scope global dynamic mngtmpaddr noprefixroute
valid_lft 3883sec preferred_lft 2883sec
inet6 fe80::a646:62fd:198a:6378/64 scope link noprefixroute
valid_lft forever preferred_lft forever
3: wlp5s0: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN group default qlen 1000
link/ether bc:17:b8:c0:bd:b8 brd ff:ff:ff:ff:ff:ff
4: br-3b5806c4ad15: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default
link/ether 02:42:0b:84:44:d0 brd ff:ff:ff:ff:ff:ff
inet 172.18.0.1/16 brd 172.18.255.255 scope global br-3b5806c4ad15
valid_lft forever preferred_lft forever
inet6 fe80::42:bff:fe84:44d0/64 scope link
valid_lft forever preferred_lft forever
5: docker0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN group default
link/ether 02:42:d1:4c:de:b7 brd ff:ff:ff:ff:ff:ff
inet 172.17.0.1/16 brd 172.17.255.255 scope global docker0
valid_lft forever preferred_lft forever
7: veth7fc3c63@if6: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue master br-3b5806c4ad15 state UP group default
link/ether 1e:f4:aa:af:bf:4b brd ff:ff:ff:ff:ff:ff link-netnsid 0
inet6 fe80::1cf4:aaff:feaf:bf4b/64 scope link
valid_lft forever preferred_lft forever
Сначала я отключил ufw, но потом подумал, что он может понадобиться для работы переадресации портов, и попытался следовать этому руководству: https://99rdp.com/how-to-open-a-port-in-ubuntu-20-04/
В общем, я включил ufw и добавил порты в ufw, теперь у меня есть:
(base) tue@tue-ubuntu:~$ sudo ufw status
Статус: активен
Куда Действие Откуда
-- ------ ----
58970 РАЗРЕШИТЬ Везде
51036 РАЗРЕШИТЬ Везде
58970 (v6) РАЗРЕШИТЬ Везде (v6)
51036 (v6) РАЗРЕШИТЬ Везде (v6)
Однако порт не отображается, когда я использую netstat, как было предложено:
(base) tue@tue-ubuntu:~$ netstat -lntu
Активные интернет-соединения (только серверы)
Протокол Recv-Q Send-Q Локальный адрес Удаленный адрес Состояние
tcp 0 0 127.0.0.1:29754 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:17500 0.0.0.0:* LISTEN
tcp 0 0 127.0.0.53:53 0.0.0.0:* LISTEN
tcp 0 0 127.0.0.1:17603 0.0.0.0:* LISTEN
tcp 0 0 127.0.0.1:17600 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:111 0.0.0.0:* LISTEN
tcp 0 0 127.0.0.1:631 0.0.0.0:* LISTEN
tcp6 0 0 :::17500 :::* LISTEN
tcp6 0 0 ::1:3350 :::* LISTEN
tcp6 0 0 ::1:631 :::* LISTEN
tcp6 0 0 :::3389 :::* LISTEN
tcp6 0 0 :::111 :::* LISTEN
tcp6 0 0 :::80 :::* LISTEN
udp 0 0 0.0.0.0:17500 0.0.0.0:*
udp 0 0 127.0.0.53:53 0.0.0.0:*
udp 0 0 0.0.0.0:111 0.0.0.0:*
udp 0 0 0.0.0.0:33266 0.0.0.0:*
udp 0 0 0.0.0.0:5353 0.0.0.0:*
udp6 0 0 :::111 :::*
udp6 0 0 :::33156 :::*
udp6 0 0 fe80::a646:62fd:198:546 :::*
udp6 0 0 :::5353 :::*
А если я зайду на https://www.yougetsignal.com/tools/open-ports/ и введу свой публичный IP-адрес и порт, мне также сообщают, что порт закрыт.
У кого-нибудь есть хорошие идеи о том, какие должны быть мои следующие шаги или как я должен устранять эту проблему?
Вывод вашей netstat
показывает, что нет приложения, прослушивающего соединение на порту 58970.
Нет слушателя = Порт закрыт.
Ответ или решение
Проблема с переадресацией портов в Ubuntu
Если вы сталкиваетесь с проблемами при переадресации портов на своем компьютере под управлением Ubuntu, важно разобраться со всеми этапами настройки. Вы описали ситуацию, в которой вы пытаетесь перенаправить порт 58970 на машину с локальным IP 192.168.0.174. Я помогу вам подробно рассмотреть, что может быть не так и как это исправить.
1. Проверка состояния UFW
Вы уже включили UFW (Uncomplicated Firewall) и открыли необходимый порт. Ваша команда ufw status
показывает, что порт 58970 действительно открыт:
To Action From
-- ------ ----
58970 ALLOW Anywhere
58970 (v6) ALLOW Anywhere (v6)
Это хороший первый шаг, но давайте убедимся, что UFW правильно настроен для обработки входящего трафика.
2. Проверка, прослушивает ли приложение порт
Ваша команда netstat -lntu
показывает, что на порту 58970 в данный момент ничего не прослушивается:
Proto Recv-Q Send-Q Local Address Foreign Address State
...
Это означает, что на этом порту нет приложения, которое готово принимать подключения. Вам необходимо проверить следующее:
- Убедитесь, что приложение, которое должно использовать этот порт (например, веб-сервер или другой сервис), действительно запущено и настроено на прослушивание этого порта. Если вы не уверены, какое приложение использовать, вы можете протестировать, запустив простейший сервер, например:
sudo nc -l -p 58970
Эта команда запустит простой TCP-сервер на порту 58970. Теперь, в другой терминал, вы можете попробовать подключиться к этому порту с помощью:
nc localhost 58970
Если подключение успешно, это значит, что проблема действительно кроется в приложении, которое вы пытаетесь настроить.
3. Настройка маршрутизатора
Так как вы утверждаете, что успешно перенаправляли порты на других компьютерах в вашей сети, убедитесь, что:
- Вы действительно указали правильный IP-адрес (192.168.0.174) на своем маршрутизаторе для перенаправления порта.
- Проверьте, что у вас нет конфликтов с другими правилами перенаправления портов.
- Перезагрузите маршрутизатор после внесения изменений в настройки.
4. Тестирование открытых портов
Вы уже использовали сайт yougetsignal.com
для проверки, открыт ли порт. Если порт закрыт, это подтверждает, что проблема находится на сервере, а не на клиенте.
5. Логи и дебаг
Для более глубокого анализа запустите следующую команду для отображения логов:
sudo tail -f /var/log/ufw.log
Это может помочь вам увидеть, блокируются ли какие-либо подключения и какие правила работают. Также проверьте журналы вашего приложения, чтобы узнать, слушает ли оно запросы на этом порту.
Выводы
Ваша проблема заключается в отсутствии приложения, которое слушает на порту 58970 на Ubuntu. Убедитесь, что соответствующее приложение запущено и корректно настроено. Проверьте конфигурации маршрутизатора и используйте средства логирования для дальнейшего анализа. Следуя этим шагам, вы сможете успешно настроить переадресацию портов в Ubuntu.