[英]Open Port in Ubuntu
So I'm using AWS using EC2 and I'm trying to open up a port for Postgresql.所以我正在使用 EC2 使用 AWS,并且我正在尝试为 Postgresql 打开一个端口。 In AWS I already have it open:
在 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
When I do netstat it looks as though the port is listening:当我执行 netstat 时,它看起来好像端口正在侦听:
# netstat -an | grep 5432
tcp 0 0 127.0.0.1:5432 0.0.0.0:* LISTEN
When I do a localhost nmap I get the following:当我执行 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
And here's where the fun begins.这就是乐趣开始的地方。 When I do an nmap from an alternative host I get the following:
当我从替代主机执行 nmap 时,我得到以下信息:
PORT STATE SERVICE
22/tcp open ssh
80/tcp open http
5432/tcp closed postgresql
I also looked at my iptables to see if I was missing something, but the iptables look empty (which should mean they aren't really doing much)我还查看了我的 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
Am I missing something cause I can't seem to figure out how to access the ip.我是否遗漏了什么,因为我似乎无法弄清楚如何访问 ip。 Whenever I try I get the following error:
每当我尝试时,都会收到以下错误:
Is the server running on host "xx.xx.xx.xx" and accepting TCP/IP connections on port 5432?
How do I make it so that I can open up the port so that external servers have access to it?我如何才能打开端口以便外部服务器可以访问它? Thanks in advance =) Lemme know if you need any additional data.
提前致谢 =) 让我知道您是否需要任何其他数据。
EDIT : As asked below, I tested telnetting, and I was able to telnet into the localhost, but when attempting from the outside I get:编辑:如下所述,我测试了 telnet 连接,并且能够 telnet 到本地主机,但是当从外部尝试时,我得到:
$ telnet xx.xx.xx.xx 5432
Trying xx.xx.xx.xx...
telnet: Unable to connect to remote host: Connection refused
Also, I double checked and I was properly able to telnet into ssh:另外,我仔细检查了一下,我能够正确地 telnet 到 ssh:
$ 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
Edit /etc/postgresql/<version>/main/postgresql.conf
and set the listen_addresses
to your outgoing interface or all.编辑
/etc/postgresql/<version>/main/postgresql.conf
并将listen_addresses
设置为您的传出接口或全部。 Restart postgresql: sudo service postgresql restart
.重新启动 postgresql:
sudo service postgresql restart
。
It works for me the last method (thks Julio):最后一种方法对我有用(感谢 Julio):
Edit: postgresql.conf编辑: postgresql.conf
sudo nano /etc/postgresql/9.3/main/postgresql.conf
Enable or add:启用或添加:
listen_addresses = '*'
Restart the database engine:重启数据库引擎:
sudo service postgresql restart
Besides, you can check the file: pg_hba.conf此外,您可以查看文件: pg_hba.conf
sudo nano /etc/postgresql/9.3/main/pg_hba.conf
And add your network or host address:并添加您的网络或主机地址:
host all all 192.168.1.0/24 md5
If you have edited postgresql.conf and main/pg_hba.conf and still having a problem, please try如果你已经编辑了postgresql.conf和main/pg_hba.conf并且仍然有问题,请尝试
sudo ufw allow 5432/tcp
to unblock psql port解锁 psql 端口
如果您使用 docker 连接到主机的 postgresql,您必须使用主机的 ip,您可以通过运行ip addr show docker0
获得该 ip,希望它可以帮助某人。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.