Linux下开放端口 2019

Posted by Bink的博客 on August 16, 2019

Linux下开放端口

一、查看端口是否开放

1. 使用lsof 命令来查看端口是否开放

lsof -i:1025 //如果有显示说明已经开放了,如果没有显示说明没有开放
lsof(list open files)是一个列出当前系统打开文件的工具。
在linux环境下,任何事物都以文件的形式存在,通过文件不仅仅可以访问常规数据,还可以访问网络连接和硬件。
因为 lsof 需要访问核心内存和各种文件,所以必须以 root 用户的身份运行它才能够充分地发挥其功能。

2.使用netstat 命令来查看端口是否开放

// 查看是否监听在0.0.0.0:1025
netstat -aptn |grep -i 1025 //a:all_sockets p:process t:tcp n:num 
// 查看TCP类型的端口
netstat -lptn |grep -i 1025  //l:listening_sockets  p:process  t:tcp n:num
// 查看UDP类型的端口
netstat -lpun |grep -i 1025 //l:listening_sockets  p:process u:udp n:num
netstat命令用于显示与IP、TCP、UDP和ICMP协议相关的统计数据,一般用于检验本机各端口的网络连接情况。

3. 使用telnet方式测试远程主机端口是否打开

// telnet IP 端口号
telnet 127.0.0.1 1025
   Trying 127.0.0.1...
   Connected to 127.0.0.1.
   Escape character is '^]'.

二、使用firewall开放端口

因为centos7已经开始使用firewall作为防火墙,而不是iptables了,所以,开放8080端口就和以往不一样了, 下面我们就一起学习一下如何开放8080端口吧。

我们可以输入命令查看防火墙的状态:

firewall-cmd --state

如果上一步处于关闭状态,输入命令:

systemctl start firewalld.service

开启8080端口,输入命令:

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

让我们来解释一下上一个命令:

  • –zone=public:表示作用域为公共的;
  • –add-port=8080/tcp:添加tcp协议的端口8080;
  • –permanent:永久生效,如果没有此参数,则只能维持当前服务生命周期内,重新启动后失效

输入命令重启防火墙:

systemctl restart firewalld.service

输入命令重新载入配置:

firewall-cmd --reload

使用iptables开放端口

iptables是linux下的防火墙,同时也是服务名称。

  • service iptables status 查看防火墙状态
  • service iptables start 开启防火墙
  • service iptables stop 关闭防火墙
  • service iptables restart 重启防火墙

防火墙开放特定端口:

  • ①文件/etc/sysconfig/iptables
  • ②添加: -A RH-Firewall-1-INPUT -m state –state NEW -m tcp -p tcp –dport 8080 -j ACCEPT ★数字8080代表开放8080端口,也可以改成其他的端口★
  • ③重启防火墙

保存对防火墙的设置:

serivce iptables save

查看iptables规则及编号:

iptables -nL --line-number

关闭所有的INPUT FORWARD(转发)OUTPUT的所有端口:

iptables -P INPUT DROP
iptables -P FORWARD DROP
iptables -P OUTPUT DROP

只打开22端口:

iptables -A  INPUT -p tcp --dport 22 -j ACCEPT
iptables -A OUTPUT -p tcp --sport 22 -j ACCEPT

参数讲解:

  • –A 参数就看成是添加一条规则
  • –p 指定是什么协议,我们常用的tcp 协议,当然也有udp,例如53端口的DNS
  • –dport 就是目标端口,当数据从外部进入服务器为目标端口
  • –sport 数据从服务器出去,则为数据源端口使用
  • –j 就是指定是 ACCEPT -接收 或者 DROP 不接收

禁止某个IP访问:

iptables -A INPUT -p tcp -s 192.168.1.2 -j DROP –s 参数是来源(即192.168.1.2) 

删除规则:

// 删除INPUT链编号为2的规则
iptables -D INPUT 2