小编Sas*_*cha的帖子

一些暴露的Docker端口无法从外部访问(dovecot,postfix)

这让我疯了,但出于某种原因,我无法从外面访问某些端口.我几乎检查了所有可能的设置,但我不知道为什么这不起作用.我不知道在哪里解决这个问题(Ubuntu防火墙与Docker vs. Dovecot vs. Postfix),我真的希望你们能帮助我.

仅供参考:mycooldomain.com只是我域名的占位符,目前我不想分享.

我会为帮我解决这个问题的人买一杯啤酒!:)

简介

在我的根服务器上,我正在运行以下docker邮件服务器容器(https://github.com/tomav/docker-mailserver/),它暴露了几个端口(143,25,587,993).容器运行dovecot(IMAP)和后缀(SMTP).

TL;博士

我有上述邮件服务器(dovecot,postfix)在docker容器中运行,只能连接到一个端口(143 - IMAP).其他端口25,587和993无法从外部访问 - 仅可从主机直接访问.Docker正确公开它们并正确地列在iptables中.容器中的日志(dovecot,postfix)在请求进入时没有显示任何反应(没有被拒绝的请求或类似的东西),所以我想它们永远不会到达容器中的服务.其他docker容器端口(例如我的web服务器:80,443).

这是详细信息:

我可以直接从主机连接到每个端口(让我们测试IMAP安全端口):

mastix@localhost:~$ telnet mail.mycooldomain.com 993
Trying xxx.xxx.xxx.xxx…
Connected to mail.mycooldomain.com.
Escape character is '^]'.
220 mail.mycooldomain.com ESMTP Postfix (Ubuntu)
Run Code Online (Sandbox Code Playgroud)

但不是来自我的本地机器:

mastixmc$ telnet mail.mycooldomain.com 993
Trying xxx.xxx.xxx.xxx…
telnet:connect to address xxx.xxx.xxx.xxx: Operation timed out
telnet: Unable to connect to remote host
Run Code Online (Sandbox Code Playgroud)

docker-compose ps告诉我他们暴露并正确绑定:

110/tcp,
0.0.0.0:143-143/tcp,
0.0.0.0:25->25/tcp, 4190/tcp,     
0.0.0.0:587->587/tcp,             
0.0.0.0:993->993/tcp, 995/tcp
Run Code Online (Sandbox Code Playgroud)

netstat -ntlp 告诉我同样的事情:

Proto Recv-Q Send-Q Local Address …
Run Code Online (Sandbox Code Playgroud)

ubuntu postfix-mta ports dovecot docker

11
推荐指数
1
解决办法
1431
查看次数

PM2 - Raspbian上的自动启动(Raspberry Pi)不起作用

好,朋友们,

这让我疯了......无法让我的nodejs应用程序在覆盆子pi上自动启动@boot ...

机器:覆盆子2(Raspbian Jessie)

尝试了我在Google上找到的几乎所有可能的解决方案.

这就是我最终得到的结果:

安装pm2

$ sudo npm install -g pm2
Run Code Online (Sandbox Code Playgroud)

这将安装为init.d脚本并以pi用户身份运行应用程序

$ sudo pm2 startup raspberry -u pi
[PM2] Generating system init script in /etc/init.d/pm2-init.sh
[PM2] Making script booting at startup...
[PM2] -raspberry- Using the command:
  su -c "chmod +x /etc/init.d/pm2-init.sh && update-rc.d pm2-init.sh defaults"
[PM2] Done.
Run Code Online (Sandbox Code Playgroud)

我已经读过脚本引用了错误的.pm2文件夹(看起来在根文件夹中,而不是用户的文件夹中)所以我改变了

 $ sudo vi /etc/init.d/pm2-init.sh
Run Code Online (Sandbox Code Playgroud)

改变export PM2_HOME="/root/.pm2"以export PM2_HOME="/home/pi/.pm2"

$ cd /opt/mycoolnodeproject
Run Code Online (Sandbox Code Playgroud)

用pm2启动我的节点项目

$ pm2 start server.js -x --name "node-project"
Run Code Online (Sandbox Code Playgroud)

保存活动进程,以便在重新启动时重新启动它们(如果pi崩溃,它会自动将其保存在关闭状态)

$ pm2 dump
Run Code Online (Sandbox Code Playgroud)

所以现在服务器启动并运行正常......直到我重新启动!我以为pm2会自动启动我的节点应用程序但由于某种原因它不会...... :(

知道问题可能是什么? …

autostart node.js raspberry-pi raspbian pm2

6
推荐指数
2
解决办法
1万
查看次数