端口"/>
即使关闭防火墙,也无法在 Ubuntu 上为 Express 打开外部端口
在 Ubuntu 上运行 Express 时,我无法打开用于连接的外部端口。我无法使用外部 IP 地址和端口连接到远程主机。以前用Apache做代理一切顺利,现在只用Express连基本端口都打不开(Apache已经彻底关掉了)
这里是当前情况和环境设置:
1.Ubuntu 20
2.防火墙确认关闭
3.以root身份登录并运行Express
4.如果我使用80端口监听,像这样:
dotenv.config();
const port = process.env.DB_PORT; //80
const app = express();
app.use(express.json());
app.use(routerIndex);
app.get('/', (req, res) => {
res.send('ok')
})
app.listen(port, () => {
console.log('server port on :'+ port);
})
在http://ip可以看到执行结果,返回“ok”。
5.但是,如果我使用不同的端口,比如1166,就会失败,在http://ip:1166看不到执行结果。最终,它会超时。
6.我也试过打开防火墙并为1166端口指定端口转发,像这样:
sudo ufw enable
sudo ufw allow 1166/tcp
sudo ufw allow ssh
sudo ufw reload
sudo ufw status
Status: active
To Action From
3600/tcp ALLOW Anywhere
3600 ALLOW Anywhere
80/tcp ALLOW Anywhere
89/tcp ALLOW Anywhere
22/tcp ALLOW Anywhere
1166/tcp ALLOW Anywhere
3600/tcp (v6) ALLOW Anywhere (v6)
3600 (v6) ALLOW Anywhere (v6)
80/tcp (v6) ALLOW Anywhere (v6)
89/tcp (v6) ALLOW Anywhere (v6)
22/tcp (v6) ALLOW Anywhere (v6)
1166/tcp (v6) ALLOW Anywhere (v6)
但是还是打不开http://ip:1166 最终超时
我不知道如何解决这个问题了。谁能提供任何帮助?感谢任何帮助。
回答如下:我还不能发表评论,所以请不要投票太严厉。
您是否使用
localhost:1166
和 netstat -tlpn
在本地进行了测试,以验证它确实在备用端口上列出。
接下来,您的测试系统的远程系统在哪里?例如。它是在同一个网络上,在云端,在另一个数据中心吗?
如果它在单独的网络上,请确保没有防火墙或路由器也需要允许访问该端口。如果它在云中,也是如此,验证安全组设置是否正确。
更多推荐
即使关闭防火墙,也无法在 Ubuntu 上为 Express 打开外部端口
发布评论