8wDlpd.png
8wDFp9.png
8wDEOx.png
8wDMfH.png
8wDKte.png

Ubuntu EC2 AWS 实例上的传出互联网连接停止工作

verfluecht 2月前

46 0

我有一个小型 EC2 Ubuntu 实例,它运行良好已超过 10 年,并且没有任何传入连接和传出连接问题。突然间简单的命令 sudo apt...

我有一个小型 EC2 Ubuntu 实例,它运行良好已超过 10 年,并且没有任何传入连接和传出问题。

突然间,一个简单的命令 sudo apt update 开始无法连接到存储库,如下所示:

无法启动与 eu-west-1.ec2.archive.ubuntu.com:80 (2a05:d018:fd:f302:55ec:6d1c:c751:1067) 的连接。- 连接 (101: 网络不可访问)

它是相当旧的 16 版本,因此使用最新的 Ubuntu 24 创建了新的 EC2 实例。最初一切都运行良好,但是在我安装了 Docker 之后,问题又出现了,现在我甚至无法从外面获取任何东西,它只是卡住直到超时:

wget http://google.com/ 正在解析 google.com (google.com)... 172.253.116.113, 172.253.116.138, 172.253.116.139, ...正在连接到 google.com (google.com)|172.253.116.113|:80... ^C

适当更新:

无法获取 https://download.docker.com/linux/ubuntu/dists/noble/InRelease 无法启动与 download.docker.com:443 (2600:9000:265e:0:3:db06:4200:93a1) 的连接。- 连接(101:网络不可达)

传入连接,例如 SSH 工作 w/p

AWS 控制台中的安全出站规则允许一切:

全部 全部 0.0.0.0/0

网络设置也很好,但问题再次出现在安装 Docker 之后(至少看起来是这样)

我也有本地的 Ubuntu 20 服务器,上面有 docker,它运行完美,尽管我做的和我在 EC2 实例上做的一模一样

我怀疑路由表存在一些混乱,但我没有 netstat 或其他网络工具,无法安装它们。

我设法收集的一些信息

sudo iptables -L -v -n
Chain INPUT (policy ACCEPT 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination

Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination
    0     0 DOCKER-USER  0    --  *      *       0.0.0.0/0            0.0.0.0/0
    0     0 DOCKER-ISOLATION-STAGE-1  0    --  *      *       0.0.0.0/0            0.0.0.0/0
    0     0 ACCEPT     0    --  *      docker0  0.0.0.0/0            0.0.0.0/0            ctstate RELATED,ESTABLISHED
    0     0 DOCKER     0    --  *      docker0  0.0.0.0/0            0.0.0.0/0
    0     0 ACCEPT     0    --  docker0 !docker0  0.0.0.0/0            0.0.0.0/0
    0     0 ACCEPT     0    --  docker0 docker0  0.0.0.0/0            0.0.0.0/0

Chain OUTPUT (policy ACCEPT 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination

Chain DOCKER (1 references)
 pkts bytes target     prot opt in     out     source               destination

Chain DOCKER-ISOLATION-STAGE-1 (1 references)
 pkts bytes target     prot opt in     out     source               destination
    0     0 DOCKER-ISOLATION-STAGE-2  0    --  docker0 !docker0  0.0.0.0/0            0.0.0.0/0
    0     0 RETURN     0    --  *      *       0.0.0.0/0            0.0.0.0/0

Chain DOCKER-ISOLATION-STAGE-2 (1 references)
 pkts bytes target     prot opt in     out     source               destination
    0     0 DROP       0    --  *      docker0  0.0.0.0/0            0.0.0.0/0
    0     0 RETURN     0    --  *      *       0.0.0.0/0            0.0.0.0/0

Chain DOCKER-USER (1 references)
 pkts bytes target     prot opt in     out     source               destination
    0     0 RETURN     0    --  *      *       0.0.0.0/0            0.0.0.0/0
ip route
default via 172.31.32.1 dev enX0 proto dhcp src 172.31.35.63 metric 100
172.31.0.2 via 172.31.32.1 dev enX0 proto dhcp src 172.31.35.63 metric 100
172.31.32.0/20 dev enX0 proto kernel scope link src 172.31.35.63 metric 100
172.31.32.1 dev enX0 proto dhcp scope link src 172.31.35.63 metric 100
192.168.1.0/24 dev docker0 proto kernel scope link src 192.168.1.1 linkdown
curl -v http://google.com
* Host google.com:80 was resolved.
* IPv6: 2a00:1450:400b:c02::65, 2a00:1450:400b:c02::8b, 2a00:1450:400b:c02::8a, 2a00:1450:400b:c02::71
* IPv4: 209.85.203.139, 209.85.203.100, 209.85.203.102, 209.85.203.101, 209.85.203.138, 209.85.203.113
*   Trying 209.85.203.139:80...
*   Trying [2a00:1450:400b:c02::65]:80...
* Immediate connect fail for 2a00:1450:400b:c02::65: Network is unreachable
*   Trying [2a00:1450:400b:c02::8b]:80...
* Immediate connect fail for 2a00:1450:400b:c02::8b: Network is unreachable

总结:10 年来,即使在安装 docker 后的新实例上,连接也没有问题——问题

如能提供任何关于如何解决问题的建议,我们将不胜感激

帖子版权声明 1、本帖标题:Ubuntu EC2 AWS 实例上的传出互联网连接停止工作
    本站网址:http://xjnalaquan.com/
2、本网站的资源部分来源于网络,如有侵权,请联系站长进行删除处理。
3、会员发帖仅代表会员个人观点,并不代表本站赞同其观点和对其真实性负责。
4、本站一律禁止以任何方式发布或转载任何违法的相关信息,访客发现请向站长举报
5、站长邮箱:yeweds@126.com 除非注明,本帖由verfluecht在本站《ubuntu》版块原创发布, 转载请注明出处!
最新回复 (0)
  • 我正在开发一个 Node.js 项目,该项目使用 node-html-to-image 库渲染包含多种语言和字体文本的视频。在我的本地 Windows 机器上一切都运行正常,但当我

    我正在开发一个 Node.js 项目,该项目使用该 node-html-to-image 库渲染带有多种语言和字体的文本的视频。在我的本地 Windows 机器上一切都运行良好,但是当我将项目部署到 Ubuntu EC2 服务器时,非英语文本(如中文和普通话)无法渲染并在视频中显示为空白文本。该项目是关于视频编辑的,在该项目中,用户将能够向视频添加文本,问题在于文本渲染,当我选择非英语文本时,它会显示在前端,但因此前端只负责发送视频数据,其余的将由部署在 AWS ubuntu EC2 机器上的 node.js 脚本处理,视频编辑逻辑将由此 node.js 脚本处理。

    const textToImage = (layer) => {
        return new Promise((resolve, reject) => {
            try {
    
                const textWidth = layer.size.width * multiplyNum
                const textHeight = layer.size.height * multiplyNum
                const textLeft = layer.position.left * multiplyNum
                const textTop = layer.position.top * multiplyNum
                const TextfontSize = parseInt(layer.style.fontSize) * multiplyNum
                let html = layer.src;
    
                if (layer.textToHighlight !== null && layer.textToHighlight !== undefined) {
                    layer.textToHighlight.forEach((curElem) => {
                        html = html.replaceAll(curElem.text, `<span style="color:${curElem.color}; background:${curElem.background};">${curElem.text}</span>`);
                    })
                }
    
                if (layer.innerCss != null && layer.innerCss != undefined) {
                    html = `<span class="spanStyle" style="display: ${layer.innerCss.display};line-height: ${layer.innerCss.lineHeight}; padding: ${(layer.innerCss.padding)}; background: ${layer.innerCss.background}; -webkit-box-decoration-break: clone; box-decoration-break: clone;">${html}</span>`
                }
                else {
                    html = `<span class="spanStyle">${html}</span>`
                }
    
    
                nodeHtmlToImage({
                    output: rootDir + textCount + 'image.png',
                    transparent: true,
                    timeout: 60000,
                    html: `<html>
                                   <head>
                                      <meta charset="UTF-8">
                                      <script src ="https://ajax.googleapis.com/ajax/libs/webfont/1.6.26/webfont.js"></script>
                                       <script>
                                        WebFont.load({
                                            google: {
                                                families: ['${layer.style.fontFamily}']
                                            }
                                        });
                                        </script>
                                      <style> 
    
                                      *{
                                         box-sizing: border-box;
                                         margin: 0;
                                         padding:0;
                                        }
                                            
                                      body {
                                          width: ${mainWidth}px;
                                          height:${mainHeight}px;
                                        }
                                        
                                        .mystyle{
                                            background: ${layer.style.background};
                                            opacity: ${layer.style.opacity};
                                            border:${layer.style.border};
                                            box-shadow: ${layer.style.boxShadow};
                                            object-fit:${layer.style.objectFit};
                                            position: absolute;
                                            left: ${textLeft}px;
                                            top: ${textTop}px;
                                            width: ${textWidth};
                                            height: ${textHeight}px;
                                            text-align: ${layer.style.textAlign};
                                        }
                                        .spanStyle{
                                            color: ${layer.style.color};
                                            font-size: ${TextfontSize};
                                            font-family: ${layer.style.fontFamily};
                                            font-weight:${layer.style.fontWeight};                                   
                                            text-transform: ${layer.style.textTransform};
                                            text-decoration: ${layer.style.textDecoration}; 
                                            font-family: ${layer.style.fontFamily};
                                            font-style: ${layer.style.fontStyle};
                                            line-height: ${layer.style.lineHeight};
                                        }
                                        </style>
                                        </head>
                                        <body>
                                        <div class="mystyle">
                                             ${html}
                                        </div>
                                        </body>
                        </html>`,
                }).then(() => {
                    resolve(rootDir + textCount + 'image.png');
                    console.log(textCount + "text created successfully")
                })
                    .catch((err) => {
                        resolve("");
                        console.error(err, "text failed to create");
                    })
            } catch (error) {
                resolve("");
                console.log("text failed to create")
            }
        })
    }
    

    采取的步骤:

    在 Ubuntu 服务器上安装了必要的语言包。验证了与 Google Fonts 的网络连接。确保服务器上安装了 Puppeteer 依赖项。添加日志记录以检查字体是否正确加载。

    观察到的行为:

    在本地 Windows 环境中,所有语言均能正确呈现。在 Ubuntu EC2 服务器上,非英语文本显示为空白。

    这是来自 EC2 服务器的渲染视频enter image description here

    这是前端:enter image description here

    是什么原因导致非英语文本无法在 Ubuntu EC2 服务器上呈现,我该如何解决这个问题?请回答,因为我已经进行了很多研究,这个问题在本地环境中无法解决,应该在生产中进行更改。我希望视频能够以所有非英语语言(如中文和普通话)正确呈现

返回
作者最近主题: