首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >不能在80号港口上运行

问不能在80号港口上运行
EN

Server Fault用户
提问于 2013-11-24 09:57:37
回答 2查看 3.8K关注 0票数 1

我试图找出如何将a.b.c.d:3000指向我的域名。这里a.b.c.d是我的IP地址。

根据这一员额:

如何使用DNS/主机名或其他方式解析特定的IP:端口

我给人的印象是,我需要在端口80上设置Webrick,因为这是默认的假定端口,因此我可以将a.b.c.d映射到我的域名,mydomain.org将到达我的站点。

这是一个正确的假设,还是我走错了路?

无论如何,我不能让Webrick使用端口80,我得到了以下错误:

WARN TCPServer Error: Permission denied - bind(2)

检查端口80上的侦听器:

代码语言:javascript
复制
$ netstat -tlnp
(Not all processes could be identified, non-owned process info
 will not be shown, you would have to be root to see it all.)
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name
tcp        0      0 127.0.0.1:53            0.0.0.0:*               LISTEN      -               
tcp        0      0 127.0.0.1:631           0.0.0.0:*               LISTEN      -               
tcp        0      0 127.0.0.1:8089          0.0.0.0:*               LISTEN      3266/banshee    
tcp6       0      0 ::1:631                 :::*                    LISTEN      -               

没有使用端口80的其他进程。

从其他帖子中,我得到的印象是,映射到1024以下的端口是不可能的。

运行以下命令:

iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-port 8080

现在,在8080端口设置Webrick,我仍然无法从a.b.c.d到达我的站点!(或a.b.c.d:80)

这种情况不应该是不寻常的,我错过了什么?如果重要的话,我使用的是标准Rails 4开发环境,因为我只期望有100页的浏览量/月。

EN

回答 2

Server Fault用户

发布于 2013-11-24 12:43:24

正常用户(uid != 0)不能绑定类UNIX系统上的端口<1024 .您可以执行一些iptables攻击,或者以root (或者这里描述的其他方法)的形式运行Werbick,但我不建议这样做。

使用一个适当的let服务器,如Apache、nginx或lighttpd,并让它代理所有的流量到您的Webrick。这应该类似于5行配置,最终您将得到一个可以更好地控制和修改的设置。

票数 1
EN

Server Fault用户

发布于 2013-11-24 19:22:53

尝试在不同端口上运行,比如在tcp/8080上以非root用户的身份运行。

另外,运行lsof |egrep "80|http",查看在tcp/80上运行的是什么

可能只是砖头坏了。如果这是rails应用程序,可以试试mod_passenger

票数 0
EN
页面原文内容由Server Fault提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://serverfault.com/questions/557071

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档