IPアドレスだけを使用してサーバーにアクセスできるようにするために、これまでのところ成功していません。
たとえば、"localhost"を使用してアクセスできますが、ルーターが192.168.1.XのようなIPアドレスを使用してアクセスしたい
これはmi pg_hba.confです。
# TYPE DATABASE USER ADDRESS METHOD
# "local" is for Unix domain socket connections only
local all all trust
# IPv4 local connections:
Host all all 127.0.0.1/32 trust
# IPv6 local connections:
Host all all ::1/128 trust
# Allow replication connections from localhost, by a user with the
# replication privilege.
#local replication postgres trust
#Host replication postgres 127.0.0.1/32 trust
#Host replication postgres ::1/128 trust
Host all all 0.0.0.0/0 trust
何か助けは?
まず、postgresql.confファイルを編集し、 listen_addresses を設定します。 'localhost'のデフォルト値は、ループバックアダプターのみをリッスンします。すべてのアドレスでリッスンすることを意味する「*」に変更するか、具体的には、接続を受け入れるインターフェイスのIPアドレスをリストすることができます。これは、インターフェースが割り当てたIPアドレスであり、ifconfig
またはip addr
コマンドを使用して確認できます。
Listen_addressesへの変更を有効にするには、postgresqlを再起動する必要があります。
次に、 pg_hba.conf で、次のようなエントリが必要になります。
# TYPE DATABASE USER ADDRESS METHOD
Host {dbname} {user} 192.168.1.0/24 md5
{dbname}は、アクセスを許可するデータベース名です。すべてのデータベースに「すべて」を指定できます。
{user}は、接続を許可されているユーザーです。これはpostgresqlユーザーであり、必ずしもUNIXユーザーではないことに注意してください。
ADDRESS部分は、許可するネットワークアドレスとマスクです。私が指定したマスクは、要求どおりに192.168.1.xで機能します。
METHOD部分は、使用する認証方法です。そこではいくつかのオプションがあります。 md5は、md5ハッシュパスワードを使用することを意味します。サンプルで持っていた「信頼」は、認証がまったくないことを意味します-これは絶対にお勧めできません。
Pg_hba.confへの変更は、サーバーをリロードした後に有効になります。 pg_ctl reload
を使用して(またはOSディストリビューションによっては、initスクリプトを使用して)これを行うことができます。