我目前正在开发一个使用 celery 和 rabbitmq 结合的应用程序,出于安全考虑,不需要任何互联网连接的服务只能在本地主机上监听。
环顾四周后我发现这这个问题表明我如何能够最多端口仅在本地主机上监听,但是由于某种原因端口25672
保持打开状态,我确定这是 rabbitmq 的一部分:
$ nmap -sV -p25672 -T5 <my server>
Starting Nmap 7.50 ( https://nmap.org ) at 2018-08-04 23:54 CEST
Nmap scan report for <my server> (<my server>)
Host is up (0.011s latency).
PORT STATE SERVICE VERSION
25672/tcp open unknown
Service detection performed. Please report any incorrect results at https://nmap.org/submit/ .
Nmap done: 1 IP address (1 host up) scanned in 124.87 seconds
在服务器上:
$ lsof -i :25672
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
beam.smp 4513 rabbitmq 12u IPv4 473675236 0t0 TCP *:25672 (LISTEN)
rabbitmq 的条目man
没有说明如何更改这一点,我在网上也找不到如何更改。有人能告诉我如何让它监听127.0.0.1
而不是监听吗0.0.0.0
?
编辑:不管它,iptables 就行。
iptables -A INPUT -p tcp -s localhost --dport 25672 -j ACCEPT
iptables -A INPUT -p tcp --dport 25672 -j DROP
答案1
我在文档在搜索后五秒内rabbitmq port
...
listeners.tcp.1 = 127.0.0.1:5672 listeners.tcp.2 = ::1:5672
或者采用经典配置格式:
[ {rabbit, [ {tcp_listeners, [{"127.0.0.1", 5672}, {"::1", 5672}]} ]} ].
(警告:您可能需要两者,因为 localhost 在过去十年左右发布的所有操作系统上解析为 ::1,而仅绑定到 127.0.0.1 可能会导致某些应用程序出现问题。)