linux防火墙

本文详细介绍了如何解决Linux服务器重启后忘记关闭防火墙导致无法登录的问题,并提供了更改防火墙设置以一劳永逸的方法。包括默认配置、添加特定端口规则、重启防火墙服务等步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

今天早上登服务器测试,试了很多次就是连接不上,折腾了很久发现是因为今天服务器重启了,然后没有把防火墙关闭。因为是内网测试服务器,所以图省事每次服务器重启之后都会把防火墙关了,这样就能正常登陆了。于是今天忘了关了就查了很久……
还是为了图省事,决定更改防火墙设置,来个一劳永逸。
linux防火墙默认阻挡了大部分端口的外部连接,也就是说如果你不修改防火墙,你从外面主动连接不到linux内部,但是可以从linux内部向外部发起连接。
下面是我服务器上的默认防火墙配置

vim /etc/sysconfig/iptables
如果没有/etc/sysconfig/iptables文件,则可以直接运行命令:
iptables -A INPUT -p tcp -m state –state NEW -m tcp –dport 3306 -j ACCEPT
service iptables save
service iptables restart

*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [55:3890]
-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 22 -j ACCEPT
-A INPUT -j REJECT --reject-with icmp-host-prohibited
-A FORWARD -j REJECT --reject-with icmp-host-prohibited
COMMIT

可以看到它只默认打开了22端口,即ftp服务端口。
但是登录服务器的话要连接你自己的服务器端口,所以要把服务器监听端口添加到配置文件里面。
以mysql服务端口3306为例,

vim /etc/sysconfig/iptables

*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [55:3890]
-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 3306 -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 22 -j ACCEPT
-A INPUT -j REJECT --reject-with icmp-host-prohibited
-A FORWARD -j REJECT --reject-with icmp-host-prohibited
COMMIT

然后重启防火墙服务service iptables restart

注意要把-A INPUT -p tcp -m state –state NEW -m tcp –dport 3306 -j ACCEPT这句添加到icmp那句的上面,不然配置不生效(关于这点网上也有人说放在22那句下面或者COMMIT上面之类的,都试了下不怎么管用,不知道是不是系统原因)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值