售前咨询
技术支持
渠道合作

Linux服务器之IPTABLES开启80端口

在服务器部署不同的程序时,总会遇到各种各样的问题,其中本文介绍的iptables开放80端口也是在服务器部署常见的问题之一。常见情况有以下两种:

情况一:在linux服务器部署好web运行环境和程序时,却发现访问被拒绝,http请求无响应。

情况二:在做本地服务器的环境,发现网站localhost能正常访问,用ip访问就访问不了,常使用CentOS的朋友,可能会遇到这样的问题。开启了防火墙导致80端口无法访问。

情况一:面对第一种情况,可以通过下面步骤完成iptables 开启80端口:

确认是否linux的iptables限制了访问

输入命令service iptables status,查看防火墙工作状态。如果是开启的,输入service iptables stop关闭防火墙,此时在电脑中上访问程序url。如果能打开网站,则说明问题就是iptables限制引起的。通常web的url是默认端口(即80端口),而iptables没有放行80端口。所

以需要允许此端口通过防火墙,当然也可以是其它端口,根据需要来配置。

解决方法:

方法一、关闭iptables(不推荐);

方法二、修改iptables配置文件,添加访问规则:

(1)、打开文件:vi /etc/sysconfig/iptables

(2)、添加规则(放行80端口):-A INPUT -m state –state NEW -m tcp -p tcp –dport 80 -j ACCEPT

(3)、保存退出:按esc,:wq!

(4)、重启防火墙,使规则生效:service iptables restart

此时就可以访问网站了,当然你可以输入命令service iptables status看到此时多了条规则:

ACCEPT     tcp  —  0.0.0.0/0            0.0.0.0/0           state NEW tcp dpt:80

情况二:CentOS的是Linux的家族的一个分支。

原因:CentOS的防火墙在虚拟机的CENTOS装好APACHE不能用。

解决方法:

/ sbin / iptables -I INPUT -p tcp -dport 80 -j ACCEPT

/ sbin / iptables -I INPUT -p tcp -dport 22 -j ACCEPT

然后保存:

/etc/rc.d/init.d/iptables save

centos 5.3,5.4以上的版本需要用

iptables保存

来实现保存到配置文件。

这样重启计算机后,CentOS防火墙默认已经开放了80和22端口。

这里应该也可以不重启计算机:

/etc/init.d/iptables重启

CentOS的防火墙的关闭,关闭其服务即可:

查看CentOS防火墙信息:/etc/init.d/iptables状态

关闭CentOS防火墙服务:/etc/init.d/iptables停止

永久关闭不知道怎么个永久法?

chkconfig -level 35 iptables关闭

上面的内容是针对老版本的centos,下面的内容是基于新版本

iptables -P INPUT DROP

这样就拒绝所有访问CentOS 5.3本系统数据,除了链RH-Firewall-1-INPUT的规则外。

用命令配置了iptables一定还要服务iptables保存才能保存到配置文件。

cat / etc / sysconfig / iptables可以查看防火墙iptables配置文件内容

#生成的iptables-save v1.3.5在Sat Apr 14 07:51:07 2001

* filter

:INPUT DROP [0:0]

:FORWARD ACCEPT [0:0]

:OUTPUT ACCEPT [1513:149055]

:RH-Firewall- 1-INPUT – [0:0]

-A INPUT -j RH-Firewall-1-INPUT

-A FORWARD -j RH-Firewall-1-INPUT

-RH-Firewall-1-INPUT -i lo -j ACCEPT

-A RH-Firewall-1-INPUT -p icmp -m icmp -icmp-type any -j ACCEPT

-A RH-Firewall-1-INPUT -p esp -j ACCEPT

-A RH-Firewall-1-INPUT -p ah -j ACCEPT

-A RH-Firewall-1-INPUT -d 224.0.0.251 -p udp -m udp -dport 5353 -j ACCEPT

-A RH-Firewall-1-INPUT -p udp -m udp -dport 631 -j ACCEPT

-A RH-Firewall-1-INPUT -p tcp -m tcp -dport 631 -j ACCEPT

-A RH-Firewall-1-INPUT -m state -state相关,ESTABLISHED -j ACCEPT

-A RH-Firewall-1-INPUT -p tcp -m state -state NEW -mcp-port 22 -j ACCEPT

-A RH -Firewall-1-INPUT -j REJECT -reject-with icmp-host-prohibited

COMMIT

#完成于Sat Apr 14 07:51:07 2001

补充:

CentOS防火墙配置80端口

看了好几个页面内容都有错,下面是正确方法:

#/ sbin / iptables -I INPUT -p tcp -dport 80 -j ACCEPT

#/ sbin / iptables -I INPUT -p tcp -dport 22 -j ACCEPT

然后保存:

#/ etc / rc.d / init.d / iptables保存

再查看是否已经有了:

[root @ vcentos〜]#/etc/init.d/iptables status

表:filter

chain INPUT(policy ACCEPT)

num target prot opt source destination

1 ACCEPT udp – 0.0.0.0/0 0.0.0.0 / 0 udp dpt:80

2 ACCEPT tcp – 0.0.0.0/0 0.0.0.0/0 tcp dpt:80

3 RH-Firewall-1-INPUT all – 0.0.0.0/0 0.0.0.0/0

Chain FORWARD(policy ACCEPT)

num target prot opt source destination

1 RH-Firewall-1-INPUT all – 0.0.0.0/0 0.0.0.0/0

*设置iptables为自动启动

chkconfig -level 2345 iptables on

可能因为大家使用的版本不一,所有使用方法也略有不同。

如果需要远程管理的MySQL,则使用以下指令临时打开,用完后关闭

*打开指令

iptables -A INPUT -p tcp -s xxx.xxx.xxx.xxx -dport 3306 -j ACCEPT

*关闭指令

iptables -D INPUT -p tcp -s xxx.xxx.xxx.xxx -dport 3306 -j ACCEPT

上一篇:

下一篇:

相关文章