在 Linux 上搭建各种服务器都需要涉及到打开端口的操作,不同版本的Linux的方法也会有些不一样。因为我用CentOS的时间比较长,这里就来简单写一下CentOS7和CentOS6 打开、关闭、查看已开放端口的方法,每一个命令都是经过测试后才写出来。

CentOS7

CentOS在服务器中算是用的比较多的Linux版本,我的服务器用的也是CentOS7,我写的搭建服务器相关的教程用的Linux版本也是CentOS7。

开放端口

下面开启22端口:

firewall-cmd --zone=public --add-port=22/tcp --permanent

上面永久开放了22端口,如果输出 success 说明端口开放成功,下面是命令说明:

  • firewall-cmd: CentOS7控制防火墙相关的命令,
  • --zone=public: 作用域,
  • --add-port=22/tcp : 添加端口,后面的tcp是通讯协议,
  • --permanent: 永久生效,如果不加 --permanent 重启后会失效

通讯协议除了有TCP还有UDP,如果需要批量开放端口可以用:

firewall-cmd --zone=public --add-port=1200-1400/udp --permanent

上面开启了1200 - 1400之间的所有端口。

开放端口可能不会立即生效,可以输入:

firewall-cmd --reload

重新加载防火墙。

关闭端口

下面关闭22端口:

firewall-cmd --zone=public --remove-port=22/tcp --permanent

命令说明可以参考上面开放端口的命令说明,其中的 --remove-port=22/tcp 就是删除端口,如果需要批量关闭端口也可以参考批量开放端口的写法,success 为成功。

查看端口

下面查看已开放的端口:

firewall-cmd --permanent --list-port

输出结果:

21/tcp 8888/tcp 1200-1400/udp

如果要查看端口占用情况可以输入:

netstat -lntp

如果要查看某个端口的占用情况可以输入:

netstat -lnp|grep 26857

上面查看26857端口,输出结果为:

tcp        0      0 0.0.0.0:6800            0.0.0.0:*               LISTEN      26857/aria2c        
tcp        0      0 0.0.0.0:51413           0.0.0.0:*               LISTEN      26857/aria2c        
udp        0      0 0.0.0.0:6893            0.0.0.0:*                           26857/aria2c     

可以看到占用的进程就是aria2的。

CentOS6

虽然都是CentOS,但CentOS7和CentOS6的方法还是有些不一样的,CentOS6可以直接通过修改配置文件来开启和关闭端口。

开放端口

下面开启8888端口:

# 开启8888端口
/sbin/iptables -I INPUT -p tcp --dport 8888 -j ACCEPT
# 保存规则
/etc/init.d/iptables save

也可以通过修改配置文件的方式来开放端口,打开 /etc/sysconfig/iptables ,如果要看VI编辑器的操作可以访问: Linux VI编辑器简单使用教程 ,打开后加入一行:

-A INPUT -p tcp -m state --state NEW -m tcp --dport 7777 -j ACCEPT

上面打开7777端口,注意!需要添加到 COMMIT 的上面,添加完成后保存退出,接着重启防火墙:

/etc/init.d/iptables restart

关闭端口

还是一样的打开 /etc/sysconfig/iptables ,删除之前添加的端口,下面删除之前添加的7777端口:

# 删除此行
-A INPUT -p tcp -m state --state NEW -m tcp --dport 7777 -j ACCEPT

重启防火墙:

/etc/init.d/iptables restart

查看端口

查看已开放的端口:

/etc/init.d/iptables status

可以看到已开放的端口:

Table: filter
Chain INPUT (policy DROP)
num  target     prot opt source               destination         
1    ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0           tcp dpt:5299 
2    ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0           tcp dpt:9999 
3    ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0           state NEW tcp dpts:39000:40000 
4    ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0           state NEW tcp dpt:8888 
5    ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0           state NEW tcp dpt:80 
6    ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0           state NEW tcp dpt:22 
7    ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0           state NEW tcp dpt:21 
8    ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0           state NEW tcp dpt:20 
9    ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0           state NEW tcp dpt:6666 

以上就是CentOS7和CentOS6的端口操作方法,以后再写其他版本的。

注意!有的云服务器除了在服务器中开放端口外还需要在服务器的管理后台开放防火墙端口,例如 阿里云的 轻量应用服务器 就需要在管理后台的防火墙开放端口。