Как открыть порт 8000 на Ubuntu 12.04?
На моей виртуальной машине Ubuntu 12.04 приложение (Tryton) корректно работает на порту 8000 при локальном использовании. Однако извне я не могу подключиться к порту 8000 через Интернет. (Ранее я использовал Windows Azure, которая имеет удобную для пользователя конфигурацию конечной точки.)
Netstat, запущенный локально, сообщает, что порт прослушивается: (я назвал эту виртуальную машину "NoConnection", чтобы отличить ее от ниже)
root@NoConnection:~# netstat -tupan | grep 8000
tcp 0 0 127.0.0.1:8000 0.0.0.0:* LISTEN
10051/python
tcp 0 0 127.0.0.1:8000 127.0.0.1:58160 ESTABLISHED
10051/python
tcp 0 0 127.0.0.1:58160 127.0.0.1:8000 ESTABLISHED
10860/python
Локальная проверка с помощью nmap также выглядит нормально:
root@NoConnection:~# nmap -v -A -PN localhost
Starting Nmap 5.21 ( http://nmap.org ) at 2014-03-05 09:55 EST
NSE: Loaded 36 scripts for scanning.
Initiating SYN Stealth Scan at 09:55
Scanning localhost (127.0.0.1) [1000 ports]
Discovered open port 22/tcp on 127.0.0.1
Discovered open port 3389/tcp on 127.0.0.1
Discovered open port 8000/tcp on 127.0.0.1
Discovered open port 631/tcp on 127.0.0.1
Discovered open port 5432/tcp on 127.0.0.1
Discovered open port 5910/tcp on 127.0.0.1
Completed SYN Stealth Scan at 09:55, 0.03s elapsed (1000 total ports)
PORT STATE SERVICE VERSION
22/tcp open ssh OpenSSH 5.9p1 Debian 5ubuntu1.1 (protocol 2.0)
631/tcp open ipp CUPS 1.5
3389/tcp open microsoft-rdp xrdp
5432/tcp open postgresql PostgreSQL DB
5910/tcp open vnc VNC (protocol 3.8)
8000/tcp open http-alt?
Кстати, порт 8000 - это Tryton ERP, но nmap этого не знает.
Однако сканирование nmap с другого компьютера *не* обнаруживает открытый порт:
root@WorksRight:~# nmap -v -A -PN IP_of_NoConnect_VM
Starting Nmap 5.21 ( http://nmap.org ) at 2014-03-05 15:00 UTC
NSE: Loaded 36 scripts for scanning.
Initiating Parallel DNS resolution of 1 host. at 15:00
Completed Parallel DNS resolution of 1 host. at 15:00, 0.08s elapsed
Initiating SYN Stealth Scan at 15:00
Scanning IP_of_NoConnect_VM [1000 ports]
Discovered open port 22/tcp on IP_of_NoConnect_VM
Discovered open port 3389/tcp on IP_of_NoConnect_VM
Discovered open port 5910/tcp on IP_of_NoConnect_VM
Completed SYN Stealth Scan at 15:00, 0.13s elapsed (1000 total ports)
Я полагаю, что это не относится к приложению Tryton, а к тому, как виртуальная машина Linux настроена со своими портами.
Для справки: на работающей другой виртуальной машине (в Windows Azure), где Tryton настроен правильно и доступен через порт 8000, вывод netstat для порта 8000 выглядит так:
root@WorksRight:~# netstat -tupan | grep 8000
tcp6 0 0 :::8000 :::* LISTEN
1310/python
tcp6 0 0 127.0.0.1:8000 127.0.0.1:36818 TIME_WAIT
-
tcp6 0 0 127.0.0.1:8000 127.0.0.1:36820 TIME_WAIT
-
tcp6 0 0 127.0.0.1:8000 127.0.0.1:36814 TIME_WAIT
-
tcp6 0 0 127.0.0.1:8000 127.0.0.1:36813 TIME_WAIT
-
И на неподключенной виртуальной машине это показывает:
root@NoConnection:~# netstat -tupan | grep 8000
tcp 0 0 127.0.0.1:8000 0.0.0.0:* LISTEN
10051/python
tcp 0 0 127.0.0.1:8000 127.0.0.1:58160 ESTABLISHED
10051/python
tcp 0 0 127.0.0.1:58160 127.0.0.1:8000 ESTABLISHED
10860/python
И конечно, да, я проверил, у обеих машин открыт порт в файле trytond.conf для конкретного приложения:
#This file is part of Tryton. The COPYRIGHT file at the top level of
#this repository contains the full copyright notices and license terms.
[options]
# Activate the json-rpc protocol
jsonrpc = *:8000
1 ответ
Как оказалось, сервер приложений просто перезапустился неправильно и, следовательно, не прочитал изменения в файле конфигурации.
Более подробный ответ здесь: клиент Tryton не подключается через интернет-порт 8000.