0

我有一个本地安装的tryton。但是从远程客户端连接不起作用。tryton 是基于 Postgre SQL 构建的,从文档中我认为问题的本质就在那里。


编辑:原来问题既不是 PostgreSQL 也不是 trytond.conf 脚本本身,而是我需要在 Windows Azure 上的虚拟机设置中为端口 8000 添加一个端点。请参阅http://xmodulo.com/ 2012/12/how-to-open-ports-on-windows-azure-vm.html。但是,下面关于 trytond.conf 文件的答案也是正确的。


在 /etc/trytond.conf 我输入了 tryton 服务器的 IP 地址:

#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]

# This is the hostname used when generating tryton URI
#hostname = 

# Activate the json-rpc protocol
jsonrpc = 23.97.165.118:8000
#ssl_jsonrpc = False

(这是一个示例 IP)

运行常见问题解答中的检查:trytond 运行正确: 在此处输入图像描述

监听端口: 在此处输入图像描述

但是,没有通过互联网从客户端连接。

我希望互联网上任何地方的每个客户端都能够连接(不是最好的安全性,但用户的 IP 会改变,所以没有办法避免这种情况)。

我必须在 /etc/postgresql/9.1/main/pg_hba.conf 中输入什么?

什么需要进入 postgresql.conf?在哪一个?用“whereis postgresql.conf”搜索会发现几个版本:

root@Tryton:~# whereis postgresql.conf
postgresql: /etc/postgresql /usr/lib/postgresql /usr/share/postgresql

非常感谢您提前提供的帮助。

编辑:这是配置文件。在服务器上本地运行正常,但无法通过互联网连接 tryton 客户端。

配置文件(更改)

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]

# This is the hostname used when generating tryton URI
#hostname = 

# Activate the json-rpc protocol
jsonrpc = *:8000
#ssl_jsonrpc = False

# 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

# 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 = False
#db_port = False
db_user = tryton
db_password = tryton_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

pg_hba.conf

# PostgreSQL Client Authentication Configuration File
# ===================================================


# DO NOT DISABLE!
# If you change this first entry you will need to make sure that the
# database superuser can access the database using some other method.
# Noninteractive access to all databases is required during automatic
# maintenance (custom daily cronjobs, replication, and similar tasks).
#
# Database administrative login by Unix domain socket
local   all             postgres                                md5

# TYPE  DATABASE        USER            ADDRESS                 METHOD

# "local" is for Unix domain socket connections only
local   all             all                                     peer
# IPv4 local connections:
# Original:
#host    all             all             127.0.0.1/32            md5
# Neu:
# Option 1: host     all          all      0.0.0.0/0       md5
host     all          all      127.0.0.1/32       md5



# IPv6 local connections:
# Original:
#host    all             all             ::1/128                 md5
# Neu:
host     all          all      ::/0            md5

# Allow replication connections from localhost, by a user with the
# replication privilege.
#local   replication     postgres                                peer
#host    replication     postgres        127.0.0.1/32            md5
#host    replication     postgres        ::1/128                 md5

postgresql.conf

# -----------------------------
# PostgreSQL configuration file
# -----------------------------
#


#------------------------------------------------------------------------------
# CONNECTIONS AND AUTHENTICATION
#------------------------------------------------------------------------------

# - Connection Settings -

listen_addresses = '*'          # what IP address(es) to listen on;
                    # comma-separated list of addresses;
                    # defaults to 'localhost', '*' = all
                    # (change requires restart)



port = 5432             # (change requires restart)
max_connections = 100           # (change requires restart)
4

2 回答 2

1

没有与 postgresql 相关的问题,因为 postgresql 连接是从服务器完成的,所以问题出在配置文件上,而正是jsonrpc选项。

基本上,此设置用于说明哪个本地接口/IP 将尝试侦听连接:

因此,如果您使用:

jsonrpc = 23.97.165.118:8000

服务器将侦听 23.97.165.118 并且只接受与目标 23.97.165.118 的连接,因此您将无法访问它抛出 localhost 因为 localhost 映射到 127.0.0.1

话虽如此,我会推荐使用以下设置:

jsonrpc = *:8000

它将侦听服务器的所有接口(本地主机和您拥有的任何外部连接)。

注意:您必须重新启动 tryton 服务器才能应用配置文件中的更改。

于 2014-02-27T16:27:53.723 回答
1

我有同样的问题,接受答案中的建议实际上是我麻烦的原因。正确的语法(至少对于最近的版本,3.4 到 3.8)如下:

[jsonrpc]
listen = *:8000
于 2016-02-14T18:10:43.783 回答