使Ruby服务器在端口80上工作

使Ruby服务器在端口80上工作,ruby,port,Ruby,Port,我正在用Ruby创建一个简单的web服务器,它在浏览器中显示文本LOLZ。我现在有: #!/usr/bin/ruby require 'socket' server = TCPServer.open(2000) loop do client = server.accept client.puts "HTTP/1.1 200 OK\r\n" client.puts "Content-type: text/plain\r\n" client.puts "\r\n" client.puts "LO

我正在用Ruby创建一个简单的web服务器,它在浏览器中显示文本LOLZ。我现在有:

#!/usr/bin/ruby
require 'socket'

server = TCPServer.open(2000)
loop do

client = server.accept
client.puts "HTTP/1.1 200 OK\r\n"
client.puts "Content-type: text/plain\r\n"
client.puts "\r\n"
client.puts "LOLZ"
client.close

end
这正如预期的那样有效。但是,我希望它在端口80上工作。每当我将2000更改为80,并使用bash启动服务器时,都会出现以下错误:

unknown-00-25-4b-8c-b9-b3:rServe koningbaardxiv$ ./rServe.rb
    ./rServe.rb:4:in `initialize': Permission denied - bind(2) (Errno::EACCES)
        from ./rServe.rb:4:in `open'
        from ./rServe.rb:4
有人能帮我吗? 谢谢


编辑:我刚刚发现这适用于0到999:S范围内的所有端口。1024以下的端口被保留,也称为已知端口。您只能以root用户身份访问它们

$ sudo ./rServe.rb
发件人:

端口号分为三个范围:众所周知的端口, 注册端口以及动态和/或专用端口

众所周知的端口是从0到1023的端口

发件人:

我不怪那些发明端口1024限制的人,考虑到20世纪70年代和80年代UNIX机器的使用方式,这是一个自然而重要的安全特性。一台典型的UNIX机器允许一群不一定完全信任的人登录并做一些事情。您不希望这些不受信任的用户能够安装一个定制的守护进程,假装是一个众所周知的服务,如telnet或ftp,因为这可能被用来窃取密码和其他肮脏的东西


1024以下的端口为保留端口,也称为已知端口。您只能以root用户身份访问它们

$ sudo ./rServe.rb
发件人:

端口号分为三个范围:众所周知的端口, 注册端口以及动态和/或专用端口

众所周知的端口是从0到1023的端口

发件人:

我不怪那些发明端口1024限制的人,考虑到20世纪70年代和80年代UNIX机器的使用方式,这是一个自然而重要的安全特性。一台典型的UNIX机器允许一群不一定完全信任的人登录并做一些事情。您不希望这些不受信任的用户能够安装一个定制的守护进程,假装是一个众所周知的服务,如telnet或ftp,因为这可能被用来窃取密码和其他肮脏的东西


端口80上已经有Apache侦听的内容了吗?端口80上已经有Apache侦听的内容了吗?