大家好,我是「Bigder」
Linux搭建Apache(httpd)后内网访问正常,外网无法访问。
网上资料找了几遍,汇总后关键的就是这几步。
欢迎分享给需要的你~
一、验证服务本身是否正常
linux命令行,输入指令:curl http://127.0.0.1/,能正常返回html报文数据
输入:curl http://linux服务器的公网IP/
如: curl http://155.153.155.88/
执行超时、没有内容输出和返回
说明apache本身的服务是正常的
二、定位
1、防火墙:service iptables status(已经关闭状态)
没有关闭,参考这篇关闭掉防火墙:
Linux关闭防火墙-iptables|iptable.service could not be found
2、行~原来是因为阿里云安全组设置、未开放80端口外网访问权限
设置方法:
登入阿里云工作台,「实例与镜像」-「实例」-「安全组」
安全组规则手动添加, 入方向开放80端口设置限制
三、再使用:
curl http://linux服务器的公网IP/
也能打印出html报文数据
这样代表,外网访问正常了。一键三连、分享给更多的需要的测试人!
以上,
Bigder
我的历史文章
忘记密码怎么办
Showcase时手机不够怎么办? 云真机平台atxserver2
xmind2testcase思维导图的测试点转化为CSV用例导入禅道
Linux安装JDK-java: command not found&cannot execute binary file
小改动当天转测就要上线,要不要写用例?
测试环境,如何维护才最高效的?
Showcase通过了才算正式提测
轮流测试一个项目、出现bug到底是谁的责任
外包去还是不去
Linux性能压测命令用ab- command not found、plugins: fastestmirror
已经很努力,但上司总让我提升能力,还数落我拖后腿,怎么办?
Linux关闭防火墙-iptables|iptable.service could not be found
Linux下查找指令Find常见用法
没这么弄过。印象里:
apache 有 http 目标域名分析功能,不同的来源,他会自动分析请求所要求的网站,之后自动去调用。
windows 也有这个功能,但默认好像是关闭的。apache 默认是打开的。
这就导致你的机器内网 ip 和内网对应端口访问,apache 正确调用到需要的虚拟服务器。外网 ip 访问请求没有设置,所以打开失败。印象里外网映射过来的请求,还是外网映射的那个端口作为目标请求。
应该是你的这个机器改为通配符,全都无条件解析为你的虚拟站点就行了。
--------------------------
tomcat 好像也有这个设置。tomcat 是 apache 的子项目,应该 web 服务器部分的代码、设置有互通的。
禁用请求应该是连内网也访问不了的。
外网要访问内网部署的web,只能通过DNAT转发数据包。假设你的网关外网地址是1.1.1.1,直接通过http://1.1.1.1想实现访问。
首先你得保证1.1.1.1地址上面的80端口没有被其他程序占用。
然后将1.1.1.1的80端口转发给内网的192.168.8.8加web监听端口号。
iptables的示例命令:
iptables -I PREROUTING -d 1.1.1.1 -p tcp -m tcp --dport 80 -j DNAT --to-destination 192.168.8.8:80
提醒:若此时外网网络可以正常访问,但内网网络通过外网地址是不可以直接访问的,原因是netfilter的规划还不够,还需要另外设置。若没有此问题,则你的网关可能不是linux。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)