问题
I have Tryton ERP working locally on a VM, functioning correctly.
However, the client cannot connect to it via internet.
nmap reports port 8000 to be "closed", that is, nothing is listening there.
~# 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
However, my trytond.conf file looks correct, having
jsonrpc = *:8000
and the database connection parameters. (A different VM set up similarly on Azure works correctly.) Full connection file is below.
AFAIK, netstat reports that it is only listening on localhost for the 8000 port:
~# 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
Because on my other VM where everything is fine, the netstat output is different:
root@Tryton:~# netstat -tupan | grep 8000
tcp6 0 0 :::8000 :::* LISTEN
1310/python
But what did I do wrong? My only reference point to change something is the trytond.conf file, right?
Here it is:
#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
回答1:
It turned out the config file was totally correct, as I thought.
The whole issue was just that the Tryton server had not correctly read it after the changes since there was a problem with its reboot.
Unity desktop reported that it needed to "restart to install updates" (don't I know that from Windows?) and after I did, the port opened automatically.
Before system restart, restarting the Tryton server only yielded:
sudo /etc/init.d/tryton—server restart
* Restarting Tryton Application Platform trytond
start—stop—daemon: warning: failed to kill 18175: No such process
[ 0K ]
And I had taken the [OK] to imply that the server had restarted anyway. But no, it hadn't!
After system restart, I got the correct message:
sudo /etc/init.d/tryton—server restart
* Restarting Tryton Application Platform trytond
[ 0K ]
And now also the netstat output is correct and the client connects successfully:
# netstat -tupan | grep 8000
tcp6 0 0 :::8000 :::* LISTEN
1792/python
回答2:
I had the same issue and this was actually the cause of my troubles :
However, my trytond.conf file looks correct, having
jsonrpc = *:8000
The correct syntax (at least for recent versions, 3.4 to 3.8) is the following :
[jsonrpc]
listen = *:8000
As a sidenote, running trytond
with --verbose
flag enables debugging in console (or you can also play with logfiles, feeding trytond
with --logconf logconf.conf
).
来源:https://stackoverflow.com/questions/22205366/tryton-client-doesnt-connect-via-internet-port-8000