web-dev-qa-db-ja.com

Ubuntuでポートを開く

だから私はEC2を使用してAWSを使用しており、Postgresqlのポートを開こうとしています。 AWSでは既に開いています:

TCP
Port (Service)      Source                  Action
0 - 65535           sg-92aadda2 (default)   Delete
22 (SSH)            0.0.0.0/0               Delete
80 (HTTP)           0.0.0.0/0               Delete
5432                0.0.0.0/0               Delete

Netstatを実行すると、ポートがリッスンしているように見えます。

# netstat -an | grep 5432
tcp        0      0 127.0.0.1:5432          0.0.0.0:*               LISTEN

Localhost nmapを実行すると、次の結果が得られます。

 Nmap scan report for localhost (127.0.0.1)
 Host is up (0.000010s latency).
 Not shown: 997 closed ports
 PORT      STATE SERVICE
 22/tcp    open  ssh
 80/tcp    open  http
 5432/tcp  open  postgresql

そして、ここからが楽しみです。代替ホストからnmapを実行すると、次の結果が得られます。

PORT      STATE  SERVICE
22/tcp    open   ssh
80/tcp    open   http
5432/tcp  closed postgresql

また、iptablesを見て、何かが足りないかどうかを確認しましたが、iptablesは空に見えます(つまり、実際には多くのことをしていないことを意味します)

$ iptables -L
Chain INPUT (policy ACCEPT)
target     prot opt source               destination
ACCEPT     all  --  anywhere             anywhere
REJECT     all  --  anywhere             127.0.0.0/8          reject-with icmp-port-unreachable
ACCEPT     all  --  anywhere             anywhere             state RELATED,ESTABLISHED
ACCEPT     tcp  --  anywhere             anywhere             tcp dpt:http
ACCEPT     tcp  --  anywhere             anywhere             tcp dpt:https
ACCEPT     tcp  --  anywhere             anywhere             state NEW tcp dpt:ssh
ACCEPT     tcp  --  anywhere             anywhere             tcp dpt:postgresql
ACCEPT     icmp --  anywhere             anywhere
LOG        all  --  anywhere             anywhere             limit: avg 5/min burst 5 LOG level debug prefix "iptables denied: "
DROP       all  --  anywhere             anywhere

Chain FORWARD (policy ACCEPT)
target     prot opt source               destination
DROP       all  --  anywhere             anywhere

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination
ACCEPT     all  --  anywhere             anywhere

IPにアクセスする方法を理解できないように見えるため、何かが欠けていますか?試すたびに、次のエラーが表示されます。

Is the server running on Host "xx.xx.xx.xx" and accepting TCP/IP connections on port 5432?

外部サーバーがアクセスできるようにポートを開くことができるようにするにはどうすればよいですか?事前に感謝=)Lemmeは追加データが必要かどうかを知っています。

[〜#〜] edit [〜#〜]:以下のように、telnetをテストし、localhostにtelnetできましたが、外部から試行すると次のようになります。

$ telnet xx.xx.xx.xx 5432
Trying xx.xx.xx.xx...
telnet: Unable to connect to remote Host: Connection refused

また、私は再確認し、sshに適切にtelnetできました:

$ telnet xx.xx.xx.xx 22
Trying xx.xx.xx.xx...
Connected to xx.xx.xx.xx.
Escape character is '^]'.
SSH-2.0-OpenSSH_5.9p1 Debian-5ubuntu1.1
21
Aram Papazian

編集/etc/postgresql/<version>/main/postgresql.confおよびlisten_addresses送信インターフェースまたはすべてに。 postgresqlを再起動します:Sudo service postgresql restart

37
TeTeT

それは私にとって最後の方法で機能します(フリオのおかげです):

編集: postgresql.conf

Sudo nano /etc/postgresql/9.3/main/postgresql.conf

有効化または追加:

listen_addresses = '*'

データベースエンジンを再起動します:

Sudo service postgresql restart


また、次のファイルを確認できます。pg_hba.conf

Sudo nano /etc/postgresql/9.3/main/pg_hba.conf

ネットワークまたはホストアドレスを追加します。

Host all all 192.168.1.0/24 md5

29
angelous

Postgresql.confとmain/pg_hba.confを編集してもまだ問題がある場合は、sudo ufw allow 5432/tcpでpsqlポートのブロックを解除してください

2
kamasteve