1、背景
有时间工作中会用到一些linux命令,对于常用的可能自己记得,对于不常用的容易忘,因此将部分操作命令在文章中记录下,防止下次需要使用又要再次寻找。
2、运维命令
1、查看端口 - natstat-ntlp
netstat -ntlp
是一个在类 Unix 操作系统(如 Linux 和 macOS)中用于显示网络连接状态的命令。
-n
:显示数字地址和端口,而不是尝试查找名称。
-t
:显示 TCP 连接。
-l
:显示监听套接字(即正在监听的端口)。
-p
:显示与每个连接关联的进程ID和程序名称。
当你在终端运行 netstat -ntlp
命令时,你会看到类似下面的输出:
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 1234/sshd
tcp 0 0 127.0.0.1:3306 0.0.0.0:* LISTEN 5678/mysqld
...
每一行代表一个正在监听的 TCP 连接。列中包含的信息包括协议类型(例如,TCP),接收和发送队列的大小,本地和远程地址以及端口,连接状态,以及与该连接相关联的进程 ID 和程序名。
请注意
,你需要具有足够的权限才能运行这个命令并查看所有细节,通常这需要 root 或者使用 sudo。如果你在没有超级用户权限的情况下运行此命令,你可能只能看到你自己的进程信息。
2、查看端口 - lsof :i
运行 lsof -i :9000 这个命令会显示出所有在本地机器上使用了端口 9000 的网络连接和监听情况。这通常被用来排查端口冲突,确认哪个应用程序正在占用某个端口,或者在调试网络服务时检查端口状态。
lsof -i :9000 命令的输出将类似于以下格式:
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
nodejs 12345 user1 4u IPv4 0xdeadbeef 0t0 TCP localhost:9000 (LISTEN)
curl 67890 user2 3u IPv4 0xcafebabec0de 0t0 TCP localhost:51210->localhost:9000 (ESTABLISHED)
在这个例子中:
COMMAND
列显示正在使用端口的应用程序名称。PID
列显示应用程序的进程ID。USER
列显示拥有该进程的用户名。FD
列显示文件描述符。TYPE
列显示文件或套接字的类型,在这里通常是 IPv4 或 IPv6。DEVICE
列显示设备信息。SIZE/OFF
列对网络连接通常显示为0。NODE
列显示节点号,对网络连接不重要。NAME
列显示具体的网络连接信息,包括本地和远程地址以及端口号。
如果端口 9000 正在被使用
,那么你会看到至少有一行输出显示有进程正在监听该端口。如果端口未被任何进程使用,那么你将不会看到任何输出,或者只会看到类似 “No such file or directory” 的错误信息,这意味着没有任何进程正在使用该端口。
3、防火墙中限制只有某个ip才能访问某个端口
vim /etc/firewalld/zones/public.xml
<zone>
<rule family="ipv4">
<source address="127.10.20.30/32"/>
<port protocol="tcp" port="8080"/>
<accept/>
</rule>
</zone>
# 重新加载
firewall-cmd --reload
# 查看
firewall-cmd --list-all
以上配置限制8080
端口只有127.10.20.30
这个ip才可以访问。