Linux 测试端口是否放行

1、准备

首先准备两台服务器:服务器A、服务器B

在服务器A装上端口测试工具netcat

yum list | grep netcat

在这里插入图片描述

yum install netcat

2、在 CentOS 7 上放行端口,你可以使用以下方法:

  1. 使用 firewalld(推荐):

    • 检查 firewalld 服务状态:
      sudo systemctl status firewalld
      
    • 如果 firewalld 未运行,则启动它:
      sudo systemctl start firewalld
      
    • 检查防火墙状态:
      sudo firewall-cmd --state
      
    • 如果防火墙处于非活动状态,启用它:
      sudo systemctl enable firewalld
      sudo systemctl restart firewalld
      
    • 放行端口:
      sudo firewall-cmd --zone=public --add-port=20/tcp --permanent
      sudo firewall-cmd --zone=public --add-port=21/tcp --permanent
      sudo firewall-cmd --zone=public --add-port=80/tcp --permanent
      sudo firewall-cmd --zone=public --add-port=443/tcp --permanent
      sudo firewall-cmd --zone=public --add-port=8888/tcp --permanent
      sudo firewall-cmd --zone=public --add-port=3306/tcp --permanent
      sudo firewall-cmd --zone=public --add-port=22222/tcp --permanent
      sudo firewall-cmd --zone=public --add-port=27017/tcp --permanent
      sudo firewall-cmd --zone=public --add-port=8080/tcp --permanent
      sudo firewall-cmd --zone=public --add-port=11111/tcp --permanent
      sudo firewall-cmd --zone=public --add-port=10000/tcp --permanent
      
    • 更新防火墙规则:
      sudo firewall-cmd --reload
      
  2. 使用 iptables:

    • 检查 iptables 服务状态:
      sudo systemctl status iptables
      
    • 如果 iptables 未运行,则启动它:
      sudo systemctl start iptables
      
    • 检查防火墙状态:
      sudo iptables -L -n
      
    • 如果防火墙处于非活动状态,启用它:
      sudo systemctl enable iptables
      sudo systemctl restart iptables
      
    • 放行端口:
      sudo iptables -A INPUT -p tcp --dport 20 -j ACCEPT
      sudo iptables -A INPUT -p tcp --dport 21 -j ACCEPT
      sudo iptables -A INPUT -p tcp --dport 80 -j ACCEPT
      sudo iptables -A INPUT -p tcp --dport 443 -j ACCEPT
      sudo iptables -A INPUT -p tcp --dport 8888 -j ACCEPT
      sudo iptables -A INPUT -p tcp --dport 3306 -j ACCEPT
      sudo iptables -A INPUT -p tcp --dport 22222 -j ACCEPT
      sudo iptables -A INPUT -p tcp --dport 27017 -j ACCEPT
      sudo iptables -A INPUT -p tcp --dport 8080 -j ACCEPT
      sudo iptables -A INPUT -p tcp --dport 11111 -j ACCEPT
      sudo iptables -A INPUT -p tcp --dport 10000 -j ACCEPT
      
    • 保存 iptables 规则:
      sudo service iptables save
      

以上方法将允许指定端口通过 CentOS 7 的防火墙。请记住,这些设置可能需要管理员权限进行操作(使用 sudo)。

4、错误解决:[root@localhost backup]# netcat -l -p 11111 netcat: cannot use -p and -l 装了netcat不能用

如果你在使用 netcat 命令时遇到 “-p” 和 “-l” 参数不能同时使用的问题,可能是因为你的 netcat 版本较老,不支持同时使用这两个参数。

你可以尝试使用不同的方法启动监听模式来代替 “-l -p” 参数的使用。以下是两种可能的替代方法:

  1. 使用 nc 监听端口(替代 “-p” 和 “-l”):

    nc -vv -l 11111
    
  2. 使用 socat 命令作为 netcat 的替代品:

    socat TCP-LISTEN:11111,reuseaddr,fork -
    

请确保你已经正确安装了 netcat 或 socat。如果你没有安装 netcat 或 socat,你可以使用包管理器(如 apt、yum 等)进行安装,或者从官方网站下载并手动安装。

可以了,那我另一台机器怎么访问这个端口去测试

要从另一台机器上的终端访问已在第一台机器上开放的端口进行测试,你可以使用以下命令:

nc <第一台机器的 IP 地址> 11111

需要将 “<第一台机器的 IP 地址>” 替换为第一台机器的实际 IP 地址。这将建立一个与第一台机器指定端口的 TCP 连接。

如果连接成功,你可以在第二台机器的终端上键入任何内容并按 Enter 发送,这些内容将被发送到第一台机器上的端口。你可以通过观察第一台机器上终端的输出来验证连接和通信是否成功。

5、能用telnet去测试吗

是的,你可以使用 telnet 命令在另一台机器上测试连接到开放的端口。请确保你的机器上安装了 telnet 客户端。

在命令提示符下,使用以下命令连接到第一台机器的指定端口:

telnet <第一台机器的 IP 地址> 11111

将 “<第一台机器的 IP 地址>” 替换为实际的 IP 地址,“11111” 替换为已开放的端口号。

如果连接成功,你将看到终端打印出与该端口的连接信息。你可以在 telnet 连接建立后向服务器发送数据进行测试。

注意:如果 telnet 连接不成功,或者 telnet 命令未找到,可能需要安装 telnet 客户端或确认目标机器的防火墙是否允许传入的 telnet 连接。

6、效果:

服务器A:
在这里插入图片描述
服务器B:
在这里插入图片描述

  • 在服务器B链接要测试的服务器端口,并输入字符,服务器A那边会将收到的字符显示出来,这就表示端口可以用,反之直接连接不上根本输入不了
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

SmallFatMan

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值