4

我想在 Amazon Linux 的 Amazon EC2 实例上的端口 80 上运行 node.js TCP 服务器。我已经将 80 添加到安全组,但问题是让 node.js 绑定到端口 80,这通常需要 root 权限。

最简单的解决方案似乎是使用 authbind,但无法从 EC2 yum repo 访问它。Amazon Linux 是否有等效的实用程序?或者这个发行版的其他一些解决方法?还是使用 authbind 实际上是个坏主意?

4

3 回答 3

2

我最终绑定到更高的端口,然后使用 iptables 将端口 80 流量转发到该端口。另一种选择是使用 AWS 负载均衡器从传入端口 80 到 ec2 实例上的更高端口。

于 2013-04-09T12:59:58.593 回答
0

这有点乏味,但如果你安装 gcc,你可以从源代码编译它。你可以去这里获取 2.1.1 版本。单击“快照”链接以获取 tar.gz 文件。我似乎无法直接使用 wget 下载它(必须从网络浏览器下载然后上传),YMMV。

于 2014-04-04T17:28:21.720 回答
0

如果使用systemd,您可以使用AmbientCapabilities允许服务绑定到较低的端口。

这是通过/etc/systemd/system目录中的服务配置文件完成的:

[Service]
AmbientCapabilities=CAP_NET_BIND_SERVICE
...
于 2022-01-31T12:15:59.517 回答