gpt4 book ai didi

azure - 如何修复 Azure VM 中套接字 io 服务器上的连接被拒绝?

转载 作者:行者123 更新时间:2023-12-03 02:12:31 25 4
gpt4 key购买 nike

我有这个简单的 Socket IO 服务器,我正在尝试在 Azure 上运行 Ubuntu VM。

import express from "express";
import { Server } from "socket.io";
import { createServer } from "http";
import cors from "cors";

//Seting up app
const app = express();
const serverHttp = createServer(app);
//CORS seems fine
app.use(cors());
const io = new Server(serverHttp, {
cors: {
origin: "*",
methods: ["GET", "POST"],
},
});
//Creating server
serverHttp.listen(3002, () => {
console.log('listening on 3002');
});

//Logging when someone connects
io.on('connection', () => {
console.log('a user connected');
});

在本地主机上一切正常,我可以毫无问题地连接,但是,我无法在简单的 Azure Ubuntu VM 中完成这项工作。我收到连接拒绝错误。端口已打开,我可以通过 REST 访问它,但不能通过套接字 io 访问它。这是网络配置的屏幕截图:

Network settings

端口 3000-3002 已打开。 REST 可以工作,但没有套接字 io。我在这里做错了什么?

最佳答案

• 我建议您检查您的 Ubuntu VM 是否安装了“udev”更新。由于‘udev’错误地保存了网络接口(interface),因此遇到了此类问题。此外,要更新虚拟机上的“udev”软件包,请在虚拟机上执行以下命令:-

 sudo apt-get update
sudo apt-get install udev

• 此外,请检查您的 Ubuntu VM 上的以下相关网络文件是否存在任何错误配置:-

网卡配置、默认网关的配置文件、静态路由 - ‘/etc/network/interfaces’

主机名配置 - ‘/etc/hostname’

DNS 配置文件 - ‘/etc/nsswitch.conf’

防火墙规则 – ‘/etc/ufw/ufw.conf’`

• 最后,建议您从本地计算机建立 Telnet session 以尝试访问 Azure ubuntu VM。为此,应在访问 Azure ubuntu VM 的本地系统中安装并启用 telnet 客户端,如下所示:-

 telnet yourhostnameorip 3001

与上面一样,telnet 连接所需的每个可能的端口。这将告诉您哪些端口被阻止,以及需要在网络安全组中打开哪些端 Eloquent 能通过套接字 IO 成功连接

如需了解更多信息,请参阅以下链接:-

<强> https://laracasts.com/discuss/channels/servers/socketio-not-working-in-live-server-ubuntu

<强> https://learn.microsoft.com/en-us/troubleshoot/azure/virtual-machines/cannot-connect-linux-network

关于azure - 如何修复 Azure VM 中套接字 io 服务器上的连接被拒绝?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/72916597/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com