Linux搭建Apache(httpd)内网访问正常,外网无法访问(精华帖)

Linux搭建Apache(httpd)内网访问正常,外网无法访问(精华帖),第1张

大家好,我是「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。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/9897993.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-03
下一篇 2023-05-03

发表评论

登录后才能评论

评论列表(0条)

保存