Клиент Tryton не подключается через интернет-порт 8000
У меня есть Tryton ERP, работающий локально на ВМ, работающий правильно.
Однако клиент не может подключиться к нему через интернет.
Nmap сообщает, что порт 8000 "закрыт", то есть там ничего не прослушивается.
~# nmap -PN -p 8000 <IP>
Starting Nmap 5.21 ( http://nmap.org ) at 2014-03-05 12:29 EST
Nmap scan report for <IP>
Host is up (0.00017s latency).
PORT STATE SERVICE
8000/tcp closed http-alt
Тем не менее, мой файл trytond.conf выглядит правильно, имея
jsonrpc = *:8000
и параметры подключения к базе данных. (Другая виртуальная машина, настроенная аналогичным образом в Azure, работает правильно.) Полный файл подключения приведен ниже.
AFAIK, netstat сообщает, что прослушивает только localhost для порта 8000:
~# 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:58296 ESTABLISHED
10051/python
tcp 0 0 127.0.0.1:58296 127.0.0.1:8000 ESTABLISHED
13842/python
Потому что на моей другой виртуальной машине, где все в порядке, вывод netstat отличается:
root@Tryton:~# netstat -tupan | grep 8000
tcp6 0 0 :::8000 :::* LISTEN
1310/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
#ssl_jsonrpc = False
# This is the hostname used when generating tryton URI
#hostname_jsonrpc =
# Configure the path of json-rpc data
#jsondata_path = /var/www/localhost/tryton
# Activate the xml-rpc protocol
#xmlrpc = *:8069
#ssl_xmlrpc = False
# Activate the webdav protocol
#webdav = *:8080
#ssl_webdav = False
# This is the hostname used when generating WebDAV URI
#hostname_webdav =
# Configure the database type
# allowed values are postgresql, sqlite, mysql
db_type = postgresql
# Configure the database connection
# # Note: Only databases owned by db_user will be displayed in the connection dialog
# # of the Tryton client. db_user must have create permission for new databases
# # to be able to use automatic database creation with the Tryton client.
db_host = localhost
db_port = 5432
db_user = postgres
db_password = postgres_password
db_minconn = 1
db_maxconn = 64
# Configure the postgresql path for the executable
#pg_path = None
# Configure the Tryton server password
admin_passwd = admin_password
# Configure the path of the files for the pid and the logs
#pidfile = False
#logfile = False
#privatekey = server.pem
#certificate = server.pem
# Configure the SMTP connection
#smtp_server = localhost
#smtp_port = 25
#smtp_ssl = False
#smtp_tls = False
#smtp_password = False
#smtp_user = False
#smtp_default_from_email = False
# Configure the path to store attachments and sqlite database
data_path = /var/lib/tryton
# Allow to run more than one instance of trytond
#multi_server = False
# Configure the session timeout (inactivity of the client in sec)
#session_timeout = 600
# Enable auto-reload of modules if changed
#auto_reload = True
# Prevent database listing
#prevent_dblist = False
# Enable cron
# cron = True
# unoconv connection
#unoconv = pipe,name=trytond;urp;StarOffice.ComponentContext
# Number of retries on database operational error
# retry = 5
# Default language code
# language = en_US
# Timezone of the server
timezone = 0
2 ответа
Оказалось, что файл конфигурации был полностью правильным, как я и думал.
Вся проблема заключалась в том, что сервер Tryton неправильно прочитал его после изменений, так как была проблема с его перезагрузкой.
Рабочий стол Unity сообщил, что ему нужно "перезапустить, чтобы установить обновления" (разве я не знаю, что это из Windows?), И после того, как я это сделал, порт открылся автоматически.
Перед перезагрузкой системы перезапуск сервера Tryton дал только:
sudo /etc/init.d/tryton—server restart
* Restarting Tryton Application Platform trytond
start—stop—daemon: warning: failed to kill 18175: No such process
[ 0K ]
И я взял [OK], чтобы подразумевать, что сервер все равно перезапустился. Но нет, это не так!
После перезагрузки системы я получил правильное сообщение:
sudo /etc/init.d/tryton—server restart
* Restarting Tryton Application Platform trytond
[ 0K ]
И теперь также вывод netstat правильный, и клиент успешно соединяется:
# netstat -tupan | grep 8000
tcp6 0 0 :::8000 :::* LISTEN
1792/python
У меня была та же самая проблема, и это было фактически причиной моих неприятностей:
Тем не менее, мой файл trytond.conf выглядит правильно, имея
jsonrpc = *:8000
Правильный синтаксис (по крайней мере, для последних версий, 3.4 до 3.8) следующий:
[jsonrpc]
listen = *:8000
В качестве бегущей строки trytond
с --verbose
флаг включает отладку в консоли (или вы также можете играть с лог-файлами, кормления trytond
с --logconf logconf.conf
).