springboot程序部署ubuntu,端口为80,使用iptables转发端口——解决 Permission denied问题

一、背景:

在ubuntu的下面部署了springboot应用,为了安全我们使用非root用户进行启动,非root用户不能监听1024以下的端口号,如果直接改成80和443,会报安全性异常。

java.net.SocketException: Permission denied

二、解决思路:

使用iptables将ubuntu的80端口转发到本程序8096端口

三、具体步骤:

1.切换到root账户 

su root

2.检查80端口是否被占用,如被占用,修改占用程序的端口,将80端口释放出来

netstat -tln | grep 80

注意:一般nigix占用80端口, 修改gitlab的nigix端口

3.检查iptables是否安装,安装下iptables

(1)切换到root用户,输入如下命令检查是否安装

#which iptables

(2)没有安装,则安装下iptables

    apt-get install iptables

(3)查看规则列表

     iptables -L

(4)允许所有ip访问80

iptables -I INPUT -p tcp --dport 80 -j ACCEPT

4.打开转发开关
要让iptables的端口转发生效,首先需要打开转发开关

永久打开,重启依然有效
编辑/etc/sysctl.conf文件,将net.ipv4.ip_forward=1前面的#注释去掉,保存文件,然后执行sudo sysctl -p使其生效

参考 https://www.cnblogs.com/ddif/p/9940571.html

5.配置转发规则, 将80端口映射到8091

iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-port 8091

保存

iptables-save > /root/iptables.conf

恢复

iptables-restore < /root/iptables.conf

参考:https://www.cnblogs.com/EasonJim/p/6851007.html

注意:如果配置错误,可以删除规则

5. 删除转发规则

(1)列出规则,包括序号

 iptables -t nat -L -n --line-numbers

(2)根据序号删除,这里假如它的序号是1

iptables -t nat -D PREROUTING 1
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值