网站开发进阶(二)阿里云将80端口请求转发到其他端口

阿里云将80端口请求转发到其他端口

背景

租了一台阿里云ECS,想搭建一个java Web 程序,环境都搭建好后,将Tomcat端口改为80并执行。

./startup.sh

程序报错端口号冲突。

估计是80端口被占用了,但是想绑定域名,还是需要将80端口映射到tomcat才行。

于是检查占用80端口的程序

输入命令:netstat -ano,列出所有端口的情况。在列表中我们观察被占用的端口,比如是49157,首先找到它。

查看被占用端口对应的PID,输入命令:netstat -aon|findstr "49157",回车,记下最后一位数字,即PID,这里是2720。

继续输入tasklist|findstr "2720",回车,查看是哪个进程或者程序占用了2720端口,结果是:svchost.exe

是一个叫AliYunDun的程序将80端口占用了。

于是各种google,大神回答说阿里盾并不是将80端口给占用了,而是为了保护请求,进行一层防护。是云盾作为client连接了你server的80端口。并不是bind listen在server的80端口上。于是就有了下面的解决方法:

解决方案(Linux环境)

由于80端口受到各种保护措施,所以一般程序是无法获取80端口使用权的,要想实现不输入端口号直接访问程序,需要将80端口的请求转发到Tomcat设定的端口上去,也就是默认的8080端口。

首先查看服务器网卡及ip设置:

很明显eth1为外网网卡。

 

设置端口号转发规则:

iptables -A PREROUTING -t nat -i eth1 -p tcp --dport 80 -j REDIRECT --to-port 8080

保存规则

[root ~]# cd /etc/rc.d/init.d

[root ~]# ./iptables save

## iptables: Saving firewall rules to /etc/sysconfig/iptables:[  OK  ]

搞定!

注:此处的80端口是指提供web服务的TCP端口80。

Windows server环境下,需要进行端口映射。详情见博客“Windows NAT端口映射”。

  • 3
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

No Silver Bullet

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值