如何在Linux上以普通用户身份在端口80上运行服务器?
发布时间:2020-05-23 17:41:38 所属栏目:Linux 来源:互联网
导读:我已经搜索了很长一段时间,但找不到它. 我在Ubuntu Linux上并希望在端口80上运行服务器,但由于Ubuntu的安全机制,我收到以下错误: java.net.BindException: Permission denied:80 我认为应该很简单,要么禁用这种安全机制,以便所有用户都可以使用端口80,或者为
|
我已经搜索了很长一段时间,但找不到它. 我在Ubuntu Linux上并希望在端口80上运行服务器,但由于Ubuntu的安全机制,我收到以下错误:
我认为应该很简单,要么禁用这种安全机制,以便所有用户都可以使用端口80,或者为当前用户分配所需的权限以访问端口80. 解决方法简答:你不能.低于1024的端口只能由root打开.根据评论 – 好吧,你可以使用 CAP_NET_BIND_SERVICE,但是这种应用于java bin的方法将使得任何java程序都可以使用此设置运行,如果不是安全风险,这是不可取的.答案很长:您可以将端口80上的连接重定向到您可以作为普通用户打开的其他端口. 以root身份运行: # iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-port 8080 由于环回设备(如localhost)不使用预先路由规则,如果需要使用localhost等,也可以添加此规则(thanks @Francesco): # iptables -t nat -I OUTPUT -p tcp -d 127.0.0.1 --dport 80 -j REDIRECT --to-ports 8080 注意:上述解决方案不适合多用户系统,因为任何用户都可以打开端口8080(或您决定使用的任何其他高端口),从而拦截流量. (致CesarB). 编辑:根据评论问题 – 删除上述规则: # iptables -t nat --line-numbers -n -L 这将输出如下内容: Chain PREROUTING (policy ACCEPT) num target prot opt source destination 1 REDIRECT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:8080 redir ports 8088 2 REDIRECT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:80 redir ports 8080 你感兴趣的规则是nr. 2,所以删除它: # iptables -t nat -D PREROUTING 2 (编辑:安卓应用网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- linux – 是否可以列出缓存的文件?
- linux – 如何通过pam_krb5中的kerberos拒绝访问已禁用的AD
- linux – 解释来自/ proc / [id] / mountstats或/ proc / s
- linux – 由lsof找到但不是由netstat发现的套接字
- linux – 如何使Unix二进制自包含?
- linux – 如何将列的数据传输到行(用awk)?
- linux – mosquitto-client获得拒绝连接
- linux – 可能被劫持的SSH会话和SSH最佳实践
- linux – Varnish“FetchError no backend connection”错误
- linux – 使用CentOS 5.5的Crucial C300 SSD上的ext4的SSD
