netcat (简称 nc)命令

在本指南中,我们将向你展示如何使用简单的 netcat (简称 nc)命令来确定远程主机上的端口是否可访问/打开。

netcat(或简称 nc )是一个功能强大且易于使用的程序,可用于 Linux 中与 TCP、UDP 或 UNIX 域套接字相关的任何事情。

# yum install nc                  [在 CentOS/RHEL 中]
# dnf install nc                  [在 Fedora 22+ 中]
$ sudo apt-get install netcat     [在 Debian/Ubuntu 中]

我们可以使用它:打开 TCP 连接、侦听任意 TCP 和 UDP 端口、发送 UDP 数据包、在 IPv4 和 IPv6 进行端口扫描。

使用 netcat,你可以检查单个或多个或一段打开的端口范围,如下所示。下面的命令将帮助我们查看端口 22 是否在主机 192.168.22.43 上打开:

nc -zv 192.168.22.43 22
Connection to 192.168.22.43 22 port [tcp/ssh] succeeded!

未打开的结果为:

nc -zv 192.168.22.43 6380
nc: connect to 192.168.22.43 port 6380 (tcp) failed: Connection refused

上面的命令中,这些标志是:

-z  ----------- 设置 nc 只是扫描侦听守护进程,实际上不向它们发送任何数据。

-v  ----------- 启用详细模式

下面的命令会检查远程主机 192.168.56.10 上是否打开了端口 80、22 和 21:

nc -zv 192.168.56.10 80 22 21

也可以指定端口扫描的范围:

$ nc -zv 192.168.56.10 20-80


需要检查本机的某个端口是否打开时只要把IP地址更换为本机的IP,端口改为你需要测试的端口即可。

显示出当前主机打开的所有端口:
 

netstat -tlunp

查看本机端口是否被占用

netstat -ap | grep 6380
tcp        0      0 localhost:6380          *:*                     LISTEN      1280/redis-server 1
tcp        0      0 localhost:16380         *:*                     LISTEN      1280/redis-server 1

查看防火墙开放端口的命令

iptables-save或者firewall-cmd --list-port


增加对外开放的端口

需要通过防火墙的管理命令firewalld-cmd,例如我想开放80端口,那么命令就是:

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

            firewall-cmd --reload

第一条命令是添加端口,第二条命令是重载防火墙。

为什么docker开放端口能绕过防火墙的原因参考:

关于docker 绕过防火墙开放端口的问题_hsy5855的博客-CSDN博客_docker绕过linux防火墙

firewall命令:

systemctl status firewalld		 			#查看firewall防火墙状态
firewall-cmd --list-ports					#查看firewall防火墙开放端口
systemctl start firewalld.service			#打开firewall防火墙
systemctl stop firewalld.service			#关闭firewall防火墙
firewall -cmd --reload						#重启firewal防火墙
systemctl disable firewalld.service			#禁止firewall开机启动  

#开放firewall防火墙端口,需重启防火墙生效
firewall-cmd --zone=public --add-port=80/tcp --permanent 	

命令含义:
–zone #作用域
–add-port=80/tcp #添加端口,格式为:端口/通讯协议
–permanent #永久生效,没有此参数重启后失效



iptable防火墙:

service iptables status 	#查看iptable防火墙状态
iptables -L -n -v			#查看iptable防火墙规则
systemctl start iptables	#打开iptable防火墙
service iptables stop	    #关闭iptable防火墙
yum install  iptables -y	#安装iptable防火墙
systemctl enable iptables	#开机自启iptable防火墙
systemctl disable firewalld	#开机自动关闭iptable防火墙
iptables -F					#清空iptable的规则
service iptables save  		#保存iptable防火墙规则

iptables -A INPUT -p tcp --dport 80 -j REJECT #禁止来自80端口访问的数据包
iptables -A INPUT -p tcp --dport 80 -j ACCEPT #允许来自80端口访问的数据包

iptables -A OUTPUT -p tcp --sport 80 -j REJECT #禁止从80端口出去的数据包
iptables -A OUTPUT -p tcp --sport 80 -j ACCEPT #允许从80端口出去的数据包



总结


firewall和iptable都是Linux的防火墙,firewall调用了iptable的command去执行内核的netfilter,也就是底层还是使用 iptables 对内核命令动态通信包过滤,firewall是Centos7里的新防火墙命令,相当于iptables 的孩子。

GitHub 加速计划 / li / linux-dash
10.39 K
1.2 K
下载
A beautiful web dashboard for Linux
最近提交(Master分支:2 个月前 )
186a802e added ecosystem file for PM2 4 年前
5def40a3 Add host customization support for the NodeJS version 4 年前
Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐