无法在端口80上运行webrick

我试图弄清楚如何将abcd:3000指向我的域名。 这里,abcd是我的IP地址。

按照这个post:

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

我得到的印象是,我需要设置Webrick在80端口,因为这是默认的端口,因此我可以将abcd映射到我的域名,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,我仍然无法从abcd到达我的站点! (也不是abcd:80)

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

普通用户( uid != 0 )不能在类UNIX系统上绑定端口<1024。 你可以做一些iptables黑客或运行Werbick作为root ( 或其他手段在这里描述 ),但我不会build议这样做。

采取适当的networking服务器,如Apache,nginx或lighttpd,让它代理所有的stream量到您的Webrick。 这应该像5行configuration,你会最终设置,你可以控制和修改方式更好。

尝试在不同的端口上运行,就像在tcp / 8080上以非root用户身份运行一样

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

它可能只是webrick被打破…尝试mod_passenger,如果这是一个rails应用程序