我想启动一个websocket服务器,但不能从其他机器连接到它。 只有当我启动具有root权限的websocket服务器时,它才起作用。 所以这似乎是一个权限问题。
我的用户需要打开一个套接字的权限是什么?
通常情况下,需要root权限才能打开1024以下的端口,其中包括web(80),ssh(22),ftp(21)等众多已知服务。
一些守护进程可以configuration为侦听1024以上的端口上的其他端口,这样可以让您以非root用户的权限使用它们,但是它会根据产品的不同而不同。
还有其他的解决方法,比如使用CAP_NET_BIND_SERVICE , 在这个答案中有更详细的描述,其中的总结是,
简短的答案是你做:
setcap 'cap_net_bind_service=+ep' /path/to/program然后随时执行的程序将具有
CAP_NET_BIND_SERVICEfunction。setcap在debian软件包libcap2-bin。