我试图找出如何将a.b.c.d:3000指向我的域名。这里a.b.c.d是我的IP地址。
根据这一员额:
我给人的印象是,我需要在端口80上设置Webrick,因为这是默认的假定端口,因此我可以将a.b.c.d映射到我的域名,mydomain.org将到达我的站点。
这是一个正确的假设,还是我走错了路?
无论如何,我不能让Webrick使用端口80,我得到了以下错误:
WARN TCPServer Error: Permission denied - bind(2)
检查端口80上的侦听器:
$ 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页的浏览量/月。
发布于 2013-11-24 12:43:24
正常用户(uid != 0)不能绑定类UNIX系统上的端口<1024 .您可以执行一些iptables攻击,或者以root (或者这里描述的其他方法)的形式运行Werbick,但我不建议这样做。
使用一个适当的let服务器,如Apache、nginx或lighttpd,并让它代理所有的流量到您的Webrick。这应该类似于5行配置,最终您将得到一个可以更好地控制和修改的设置。
发布于 2013-11-24 19:22:53
尝试在不同端口上运行,比如在tcp/8080上以非root用户的身份运行。
另外,运行lsof |egrep "80|http",查看在tcp/80上运行的是什么
可能只是砖头坏了。如果这是rails应用程序,可以试试mod_passenger
https://serverfault.com/questions/557071
复制相似问题