热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

【Linux】常用操作

【Linux】常用操作-网络判断端口是否开启监听最常用的操作,常用于判断我们的程序是否成功监听端口,或者判断端口是否被占用。ss命令(aptinstallnetcat)

网络

判断端口是否开启监听

最常用的操作,常用于判断我们的程序是否成功监听端口,或者判断端口是否被占用。

  1. ss 命令(apt install netcat
ss -antlup | grep 80
tcp     LISTEN   0        128              0.0.0.0:80            0.0.0.0:*
tcp     LISTEN   0        128              0.0.0.0:8081          0.0.0.0:*
tcp     LISTEN   0        128              0.0.0.0:8082          0.0.0.0:*
tcp     LISTEN   0        128              0.0.0.0:8083          0.0.0.0:*
  1. netstat 命令
netstat -na | grep 443
tcp        0      0 0.0.0.0:443             0.0.0.0:*               LISTEN
tcp        0      0 10.0.4.2:35916          52.184.217.56:443       TIME_WAIT
tcp        0      0 10.0.4.2:39226          204.79.197.219:443      ESTABLISHED
tcp        0      0 10.0.4.2:44606          52.184.216.174:443      ESTABLISHED

判断远程端口能否连接

有时可能我们的服务程序已经监听端口了,但是客户端仍无法访问,此时可能是防火墙禁止访问,此时我们可以在客户端测试端口是否能够建立连接。

nc -v hostname port

# 示例:
nc -v www.baidu.com 443
DNS fwd/rev mismatch: www.a.shifen.com != www.baidu.com
Warning: inverse host lookup failed for 110.242.68.3: Unknown host
www.a.shifen.com [110.242.68.4] 443 (https) open

nc -nvw 3 ip port

# 示例:
nc -nvw 3 110.242.68.4 80
(UNKNOWN) [110.242.68.4] 80 (https) open

注:-v 表示详细信息。-n 表示不进行 DNS 解析,相当于直接输入 ip 作为主机名。-w 表示设置超时时间。

测试防火墙是否开启

有时候我们设置防火墙规则希望屏蔽某些端口,但是我们要部署的服务并未运行,此时我们希望知道防火墙是否成功屏蔽或放行某些端口。

假设我们要屏蔽 server 的 8080 端口。我们可以借助 nc 工具对 8080 端口进行监听。

worker@server $ nc -lvp 8080
listening on [any] 8080 ...

注:-l 表示监听模式。-p 表示设置监听端口。

此时在 client 上同样使用 nc 工具对 server 的 8080 端口进行测试连接。

worker@client $ nc -v server-host 8080
(server-host) [110.110.110.110] 8080 (?) open
worker@client $ nc -v server-host 8080
(server-host) [110.110.110.110] 8080 (?) : Connection refused

如果显示 open 则表示端口未被屏蔽,此时再次进行 nc 测试,会发现 Connection refused,因为 nc 的监听模式默认只会监听一次,如果希望持续监听,可以使用 -k 参数。

worker@client $ nc -v server-host 8080
(server-host) [110.110.110.110] 8080 (?) : Connection timed out

如果是 Connection timed out 则表示端口屏蔽成功。

系统信息

查看发行版信息

文件 /etc/os-release/usr/lib/os-release 通过键值对的方式记录了操作系统的版本信息,二者内容一摸一样,前者是后者的软链接。它们的内容可以直接嵌入 shell 文件中。

$ cat /etc/os-release
PRETTY_NAME="Debian GNU/Linux 10 (buster)"
NAME="Debian GNU/Linux"
VERSION_ID="10"
VERSION="10 (buster)"
VERSION_CODENAME=buster
ID=debian
HOME_URL="https://www.debian.org/"
SUPPORT_URL="https://www.debian.org/support"
BUG_REPORT_URL="https://bugs.debian.org/"

推荐阅读
author-avatar
布丁可爱_997
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有