AWS 连接不上实例的端口的排查思路

AWS 连接不上实例的端口的排查思路,第1张

很多同学经常遇到 EC2 连接不上的情况,
有的是创建出来就连接不上,有的是运行的好好的突然就连不上了。
如果是创建出来就连不上,
先看你的 ec2 安全组有没有开对应的端口,端口的源地址有没有包含你的 IP。
再看你的子网是公有子网还是私有子网,查你的子网的路由表有没有到互联网网关。
都没问题说明你的网络没有问题,看 os 层面。
查你的 EC2 的两项状态检查是不是绿的。

如果状态检查挂了,一般重启就好了,不然只能开 case 让后台解决了。
最后有一些镜像内带的有防火墙,连上去看下系统的防火墙开没开。

如果是正常运行突然连不上的情况,就要考虑 AWS 的问题了。
还是先看两项状态检查过没过。
再看 AWS 的服务状态网站: >AWS上提供多种实例的选择,一开始没有多想直接选择了Amazon Linux 2 AMI,直接导致后面配Docker和Nvidia-docker时遇到了各种各样的问题。首先,Amazon Linux使用的是Redhat版本(Amazon Linux, like CentOS, is based on RHEL -- it is fundamentally a minimal/basic install of Red Hat Enterprise Linux (hence optimised for the purpose))

一开始并不了解linux系统的分类,默认Ubuntu==linux,结果闹出了大错误。下文详述。

首先,参考的配置教程是网络上的这个教程:  使用nvidia-docker2 - Gemfield的文章 - 知乎 

第一步的配置Nvidia GPU驱动就出现了问题。首先,由于使用的是Amazon Linux,在线安装Nvida GPU的第一步就由于无法找到apt命令而失效。没办法只能转到下一步:手动安装驱动。由此我又花了大力气去google如何在Redhat版本的linux上安装apt-get命令、如何运行deb包、如何安装dpkg命令等等等等到最后追本溯源才发现了自己思维上的误区。

上面行不通之后又换了一个教程,在此, 强烈推荐使用PPA方法配置Nvidia 驱动

参考的是这个教程: [Ubuntu 1804]PPA方式安装Nvidia驱动

安装的是third-party free recommended版本的驱动。需要注意,安装之后一定得reboot,不然无法生效。

简单,连上虚拟网络,使用的都是代理服务器的IP地址了,具体方法:
1、右键单击“网上邻居”选择“属性”,打开网络连接属性。
2、在右侧的“网络任务”栏中点击“创建一个新的连接。
3、打开新建连接向导,点“下一步”。在 “网络连接属性”选择里,点击“设置高级连接”,点击“下一步”,然后,在接下来的“高级连接选项”中选择“接受传入的连接”。点击“下一步”。勾寻直接并行,点击“下一步”。
4、勾寻允许虚拟专用连接”,点“下一步”。
5、创建一个允许连接的用户权限。点击“添加”按钮,输入双鱼IP转换器账户和密码后点“确定”。点击“下一步”继续。
6、在“网络软件”中勾选需要用到的协议,一般保持默认即可。点击“下一步”后,服务器就搭建完成了。
选择“开始”→“设置”→“控制面板”→“网络连接”→“创建一个新的连接”→“下一步”→“连接到我的工作场所的网络”→“下一步”→“虚拟专用网络连接”,按说明完成后面的 *** 作即可。

AWS默认的security groups是不会开ICMP的
所以就算网络和instance运行都正常得情况下都是无法ping通的
可以在instance 的 security gourps中inbound添加一条规则 custom ICMP Rule Echo Reply Anywhere

假设您有一个可以工作的 Ruby 应用程序,并且需要向其添加电子邮件传递功能。这可能与用户身份验证或任何其他类型的事务性电子邮件有关,这没有什么区别。本教程旨在帮助您实现使用 Ruby 发送电子邮件。

用 Ruby 发送电子邮件的选项

大多数情况下,你可以从三个选项中选择一个。

最简单的方法是使用 Net: : SMTP 类。它提供了通过 SMTP 发送电子邮件的功能。该选项的缺点是 Net: : SMTP 缺少撰写电子邮件的功能。你可以自己创建,但这需要时间。

第二种选择是使用专用的 Ruby gem,如 Mail、 Pony 或其他。这些解决方案使您能够以简单有效的方式处理电子邮件活动。Action Mailer 是一个完美的电子邮件解决方案,通过 Rails 的棱镜。而且,很有可能,这将是你的选择。

第三个选项是类 Socket。通常,这个类允许您设置流程之间或流程内部的通信。因此,电子邮件发送也可以用它来实现。然而,事实是 Socket 并没有为您提供广泛的功能,您也不太可能想要使用它。

现在,让我们尝试使用所描述的每个解决方案发送电子邮件。

如何通过 Net: : SMTP 在 Ruby 中发送电子邮件

根据我的经验,在一个普通的 web 应用程序中使用这个选项是不常见的。但是,如果您在某些物联网设备上使用 mruby (Ruby 语言的一种轻量级实现) ,那么通过 Net: : SMTP 发送电子邮件可能是合适的。此外,如果在无服务器计算中使用,例如 AWS Lambda,它也会这样做。首先查看这个脚本示例,然后我们将详细介绍它。

Ruby 露比

这是一个通过 SMTP 发送文本电子邮件的简单示例(可以在这里找到官方文档)。您可以看到四个标题: 发件人、收件人、主题和日期。请记住,您必须将它们与电子邮件正文中的空行分开。同样重要的是连接到 SMTP 服务器。

Net::SMTPstart('yoursmtpserver', 25) do |smtp|

Start (‘ yoursmtpserver’,25) do | smtp |

自然,这里将显示您的数据,而不是“ yoursmtpserver”,并且25是默认端口号。如果需要,可以指定其他详细信息,如用户名、密码或身份验证方案(普通、登录和 cram _ md5)。它可能看起来如下:

`Net::SMTPstart('yoursmtpserver', 25, ‘localhost’, ‘username’, ‘password’ :plain) do |smtp|`

在这里,您将使用纯文本格式的用户名和密码连接到 SMTP 服务器,客户机的主机名将被标识为 localhost。

之后,可以使用 send _ message 方法并将发送方和接收方的地址指定为参数。

Start (‘ Net: : SMTPstart (‘ yourSMTPserver’,25) do | SMTP |’)的块形式将自动关闭 SMTP 会话。

在 Ruby Cookbook 中,使用 Net: : SMTP 库发送电子邮件被称为极简主义,因为您必须手动构建电子邮件字符串。尽管如此,这并不像你想象的那样没有希望。让我们看看如何用 HTML 内容增强电子邮件,甚至添加附件。

在网上发送 HTML 电子邮件: : SMTP

查看这个引用消息部分的脚本示例。


Ruby


除了消息体中的 HTML 标记之外,我们还有两个额外的头: MIME-Version 和 Content-type。MIME 指的是 MIME。它是 Internet 电子邮件协议的扩展,允许您在单个消息体中组合不同的内容类型。MIME-Version 的值通常为10。它指示消息是 MIME 格式的

至于 Content-type 头,一切都很清楚。在我们的示例中,有两种类型-HTML 和纯文本。另外,确保使用定义的边界分隔这些内容类型。

除了 MIME-Version 和 Content-type,您可以使用其他 MIME 头:

内容-传输-编码-表示二进制到文本的编码方案(7位、 Quoted-printable、 base64、8位或二进制)。


在网上发送带附件的电子邮件: : SMTP

- Content-Disposition-指定表示样式(内联或附件)

让我们添加一个附件,例如 PDF 文件。在这种情况下,我们需要将 Content-type 更新为 multipart/mix。另外,使用 pack (“ m”)函数用 base64编码对附加文件进行编码。

Ruby


之后,你需要定义你的电子邮件的三个部分。

第1部分-主要标题



第2部分-消息行动



第三部分-附件


现在,我们可以把所有的部分放在一起,并最终确定剧本。这就是它看起来的样子:

Ruby

我可以发送电子邮件给多个收件人在网络: : SMTP?


当然,你可以 send _ message 期望第二个和随后的参数包含收件人的电子邮件。例如:


Ruby


发送电子邮件的最佳 Ruby Gems

在 Ruby 生态系统中,您可以找到特定的电子邮件 gems,它们可以改善您的电子邮件发送体验。

Ruby Mail


该库旨在提供一个单点访问管理所有电子邮件相关活动,包括发送和接收电子邮件。
Pony

您可能听说过一个关于用一个命令发送电子邮件的童话故事。抓紧你们的帽子,因为它是真的,由小马宝石提供。

ActionMailer


这是最流行的宝石发送电子邮件在 Rails 上。如果你的应用程序写在上面,ActionMailer 肯定会出现。它允许您使用邮件类和视图发送电子邮件

使用邮件陷阱测试使用 Net: : SMTP 的电子邮件发送


设置非常简单。进入演示收件箱后,复制 SMTP“设置”选项卡上的 SMTP 凭据并将其插入到代码中。或者,您可以在 Integrations 部分获得一个简单消息的即用模板。只要选择一种编程语言或框架,你的应用程序是建立。

Ruby


如果一切正常,您将在邮件陷阱演示收件箱中看到您的消息。此外,您可以尝试检查您的 HTML 内容和附件的电子邮件。


您刚刚阅读了关于如何使用 Ruby 测试和发送电子邮件的完整教程。希望您喜欢!



欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/13476648.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-08-14
下一篇 2023-08-14

发表评论

登录后才能评论

评论列表(0条)

保存