前段时间申请了一个阿里云的帐号,捣鼓了几天,把jenkins服务器从公司机房搬到上面,算是用上云服务了:)但是,碰到一个问题,80端口不能用,使 用jenkins默认端口8080,可以访问,改为80端口就不能使用了。这个问题以前有遇到过,公司接入的商务光纤是有提供固定IP的,但是此IP的 80端口被电信封掉了;还有个项目申请电信机房托管服务器也是一样,必须备案后才能开通80端口。现在阿里云上的80端口又不能用,看来也要备案 了。。。。奇怪的是,阿里云没有任何关于80端口要如何开通的文档或者帮助,搜索百度谷歌,也找不到。因为其他工作排得很紧,就暂时拿8000端口凑合用 了。
但是,没有80端口,不但用起来别扭,而且看上去也很业余。。。我下定决心得把这个问题搞定,我又看了一遍备案的帮助,还是不明觉厉,我决定找客服。为慎 重起见,要再检查一遍,年前在服务器上装了个nodejs,正好可以拿来试试。写个Hello World,监听80端口
var http = require('http');
http.createServer(function(req,res) {
res.writeHead(200, {'Content-Type':'text/html'});
res.write('<h1>Node.js</h1>');
res.end('<p>Hello World</p>');
}).listen(80);
console.log("HTTP server is listening at port 80.");保存为server.js
运行 node server.js
然后在浏览器打开这个页面,当然,料想也是打不开的。
不过,等等...居然打开了...
看来阿里云并没有封80端口啊。
我赶紧关掉node,把jenkins切到80端口,还是不能访问,这是怎么回事?
打开log一看,有这么几行:
...
Caused by: java.io.IOException: Failed to listen on port 80
at winstone.HttpListener.getServerSocket(HttpListener.java:122)
at winstone.HttpListener.start(HttpListener.java:75)
at winstone.Launcher.spawnListener(Launcher.java:220)
... 8 more
Caused by: java.net.BindException: Permission denied原来是权限不足导致的。当时想当然,居然没有检查log,该打该打~
jenkins服务是以jenkins帐号启动的,不是root帐号,没有权限访问1024以下的端口,有两种办法解决这个问题,一是用root帐号启动jenkins,不推荐;二是增加路由规则,将80端口的请求转发到8000端口,执行命令为:
iptables -A PREROUTING -t nat -i eth1 -p tcp --dport 80 -j REDIRECT --to-port 8000
网卡为eth1,因为阿里云服务器有两张网卡,eth0绑定的是内网地址。
错怪阿里了,其实阿里云没有封端口。
阿里云80端口无法访问
精选 转载上一篇:JAAS
提问和评论都可以,用心的回复会被更多人看到
评论
发布评论
相关文章
-
网站间歇性无法访问
背景服务器、客户端所在网络环境均为NAT模式。案例环境信息服务器操作系统:Centos 7.9客户端操作系统:Windows 10 专业版客户端浏览器:Google Chrome现象客户端会不定时出现:无法访问此网站,XXX.XXX的响应时间过长,报错代码:ERR_CONNECTION_TIMED_OUT当客户端出现无法访问网站时,同一时刻用手机上网访问同一个站点时能正常访问,同时ping目标网站
TCP RETRANSMISSION ERR_CONNECTION_TIMED tcp_tw_recycle 网站无法访问 间歇性无法访问网站