问题: 现在有一台处于外网的服务器,服务器为nginx,并且
nginx -t
没有任何问题,但是外网通过ip:port就是无法访问到服务器.经查验是iptables
的问题,那么iptables
是什么呢.
百度百科解释: ptables 是与最新的 3.5 版本 Linux 内核集成的 IP 信息包过滤系统。如果 Linux 系统连接到因特网或 LAN、服务器或连接 LAN 和因特网的代理服务器, 则该系统有利于在 Linux 系统上更好地控制 IP 信息包过滤和防火墙配置。
那么我们知道了,数据是通过端口来进行传递的,如果iptables
未开,相应的也不能通过端口访问我们的服务器,所以我们应该在相应的iptables
下加上我们想要访问的端口号。
首先进入到iptables
的目录,我使用的系统是centOs,iptables是在下面的目录
cd /etc/sysconfig/iptables
A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT-A INPUT -p icmp -j ACCEPT-A INPUT -i lo -j ACCEPT-A INPUT -p tcp -m state --state NEW -m tcp --dport 21 -j ACCEPT-A INPUT -p tcp -m state --state NEW -m tcp-A INPUT -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT-A INPUT -j REJECT --reject-with icmp-host-prohibited-A FORWARD -j REJECT --reject-with icmp-host-prohibitedCOMMIT
可以看到上述的数据,在里面类似的加上你想要的端口,如80
端口
-A INPUT -p tcp -m state --state NEW -m tcp --dport 80 -j ACCEPT
保存并重启
sudo service iptables restart
然后你就可以访问服务器啦!