外网打不开内网能上?三步排查网站外网访问故障
每当你察觉到公司内部网络能够顺利地访问网站, 然而外部网络却一直无法予以打开, 这般的情况通常并非是服务器自身出现了故障, 而是网络配置或者防火墙策略方面产生了问题。身为站长抑或是运维人员, 你能够依照以下的优先级去展开排查。
第一步:确认服务器是否有公网IP
这是最常见的“低级错误”。
许多在内网之中运用的呈现为私有性质的IP(举例来说, 像192.168.x.x、10.x.x.x这一类), 此种类型的地址是不可以直接经由公网进行路由操作的。
进行这样的操作: 先登录到服务器, 然后去执行这么一步, 运用curl ifconfig.me来查看本机出口处的IP。
先判断, 要是返回的那个IP跟你于路由器上所看到的WAN口IP是一致的, 而且这个IP并非是保留段(就像100.64.x.x这样的), 那么就表明是有公网IP的;不然的话, 有可能是运营商分配的内网IP, 这种情况下就得向运营商去申请公网IP或者采用端口映射。
第二步:检查防火墙与安全组规则
不管是阿里云, 还是腾讯云, 又或者是自建机房, 默认防火墙都会禁止入站流量。
对于Linux服务器而言, 要去实施检查iptables抑或是firewalld。
iptables -L -n | grep 80
如果80或443端口被DROP,需要添加允许规则:
iptables -A INPUT -p tcp --dport 80 -j ACCEPT
云服务器: 进入云控制台进行登录操作, 查看安全组抑或是网络 ACL, 保证入方向将“0.0.0.0/0”的 80/443 端口予以放行。
第三步:排查路由器端口映射
假定你的服务器处于公司内部网络环境当中, 那么需要借助路由器来实施端口映射这一操作(Port Forwarding)。
为路由器进行登录操作, 寻找到名为“端口转发”或者“虚拟服务器”的设置项目。
配置示例:
外部端口:80
内部IP, 是你内网服务器所具有的固定IP, 建议进行设置DHCP静态绑定。
内部端口:80
协议:TCP
达成之后, 运用处于外网状态且关闭了WiFi功能的手机, 去访问http://你的公网IP这个网址来进行测试。
第四步:检查服务是否绑定正确地址
有许多新手, 于服务器之上启动Web服务之际, 默认状况下绑定了127.0.0.1又或者localhost, 进而致使仅仅能够在本机进行访问。
Nginx, 去检查一下, listen 80 这个设置, 是不是要改成 listen 0.0.0.0:80 呀?
Node.js , 启动的时候, 指定 host 成为 0.0.0.0 , ;Flask , 启动之际, 指定 host 为 0.0.0.0。
第五步:域名解析与运营商封锁
进行域名解析时, 运用nslookup yourdomain.com这种方式, 去查验是不是指向了正确无误的公网IP句号。
运营商实施封锁行为, 部分家庭宽带对80/443端口予以封锁, 你能够尝试把网站改成8080或8443端口, 去测试外网是否可以访问。
网站管理者常常碰到的那种“外网无法连通”的状况, 百分之九十是源于防火墙或者端口映射方面所存在的问题。依照上述的那些步骤逐个去进行检查, 一般情况下在十分钟之内便能够确定导致该情况产生的原因。
否玩代码编辑 https://www.fouwan.com


