干碎 Linux 端口

netstat 命令

Linux netstat 命令用于显示网络状态。

利用 netstat 指令可让你得知整个 Linux 系统的网络情况。

语法

netstat [-acCeFghilMnNoprstuvVwx][-A<网络类型>][–ip]

参数说明:

  • -a或–all 显示所有连线中的Socket。
  • -A<网络类型>或–<网络类型> 列出该网络类型连线中的相关地址。
  • -c或–continuous 持续列出网络状态。
  • -C或–cache 显示路由器配置的快取信息。
  • -e或–extend 显示网络其他相关信息。
  • -F或–fib 显示路由缓存。
  • -g或–groups 显示多重广播功能群组组员名单。
  • -h或–help 在线帮助。
  • -i或–interfaces 显示网络界面信息表单。
  • -l或–listening 显示监控中的服务器的Socket。
  • -M或–masquerade 显示伪装的网络连线。
  • -n或–numeric 直接使用IP地址,而不通过域名服务器。
  • -N或–netlink或–symbolic 显示网络硬件外围设备的符号连接名称。
  • -o或–timers 显示计时器。
  • -p或–programs 显示正在使用Socket的程序识别码和程序名称。
  • -r或–route 显示Routing Table。
  • -s或–statistics 显示网络工作信息统计表。
  • -t或–tcp 显示TCP传输协议的连线状况。
  • -u或–udp 显示UDP传输协议的连线状况。
  • -v或–verbose 显示指令执行过程。
  • -V或–version 显示版本信息。
  • -w或–raw 显示RAW传输协议的连线状况。
  • -x或–unix 此参数的效果和指定"-A unix"参数相同。
  • –ip或–inet 此参数的效果和指定"-A inet"参数相同。

常用使用使用命令

1. 使用 netstat 命令查看端口占用情况

netstat -tulnp | grep 80

[root@iZ0jl9wrdnyhz7oco2c34gZ nginx]$ netstat -tulnp|grep 80
tcp        0      0 0.0.0.0:80              0.0.0.0:*               LISTEN      3552930/nginx: mast 
  • netstat -anp:显示系统端口使用情况
  • netstat -nupl:UDP类型的端口
  • netstat -ntpl:TCP类型的端口
  • netstat -na|grep ESTABLISHED|wc -l:统计已连接上的,状态为"established"
  • netstat -l:只显示所有监听端口
  • netstat -lt:只显示所有监听tcp端口

kill

[root@iZ0jl9wrdnyhz7oco2c34gZ nginx]$ kill --help
kill: kill [-s sigspec | -n signum | -sigspec] pid | jobspec ... or kill -l [sigspec]
    Send a signal to a job.
    
    Send the processes identified by PID or JOBSPEC the signal named by
    SIGSPEC or SIGNUM.  If neither SIGSPEC nor SIGNUM is present, then
    SIGTERM is assumed.
    
    Options:
      -s sig SIG is a signal name
      -n sig SIG is a signal number
      -l   list the signal names; if arguments follow `-l' they are
        assumed to be signal numbers for which names should be listed
      -L   synonym for -l
    
    Kill is a shell builtin for two reasons: it allows job IDs to be used
    instead of process IDs, and allows processes to be killed if the limit
    on processes that you can create is reached.
    
    Exit Status:
    Returns success unless an invalid option is given or an error occurs.
   
# 参数列表
[root@iZ0jl9wrdnyhz7oco2c34gZ nginx]$ kill -l
 1) SIGHUP  2) SIGINT   3) SIGQUIT    4) SIGILL  5) SIGTRAP
 6) SIGABRT   7) SIGBUS  8) SIGFPE    9) SIGKILL     10) SIGUSR1
11) SIGSEGV  12) SIGUSR2   13) SIGPIPE  14) SIGALRM  15) SIGTERM
16) SIGSTKFLT   17) SIGCHLD   18) SIGCONT 19) SIGSTOP 20) SIGTSTP
21) SIGTTIN  22) SIGTTOU   23) SIGURG   24) SIGXCPU  25) SIGXFSZ
26) SIGVTALRM   27) SIGPROF   28) SIGWINCH  29) SIGIO 30) SIGPWR
31) SIGSYS 34) SIGRTMIN 35) SIGRTMIN+1  36) SIGRTMIN+2  37) SIGRTMIN+3
38) SIGRTMIN+4  39) SIGRTMIN+5  40) SIGRTMIN+6  41) SIGRTMIN+7 42) SIGRTMIN+8
43) SIGRTMIN+9  44) SIGRTMIN+10 45) SIGRTMIN+11 46) SIGRTMIN+12 47) SIGRTMIN+13
48) SIGRTMIN+14 49) SIGRTMIN+15 50) SIGRTMAX-14 51) SIGRTMAX-13 52) SIGRTMAX-12
53) SIGRTMAX-11 54) SIGRTMAX-10 55) SIGRTMAX-9  56) SIGRTMAX-8 57) SIGRTMAX-7
58) SIGRTMAX-6  59) SIGRTMAX-5  60) SIGRTMAX-4  61) SIGRTMAX-3 62) SIGRTMAX-2
63) SIGRTMAX-1  64) SIGRTMAX

杀死进程

kill -9 h和 -15 的区别

kill -9 PID 是操作系统从内核级别强制杀死一个进程.
kill -15 PID 可以理解为操作系统发送一个通知告诉应用主动关闭.
SIGNTERM(15) 的效果是正常退出进程,退出前可以被阻塞或回调处理。并且它是Linux缺省的程序中断信号。

kill -15 3552930

ps

Linux ps (英文全拼:process status)命令用于显示当前进程的状态,类似于 windows 的任务管理器。

语法

ps [options] [–help]

  • -A 列出所有的进程
  • -w 显示加宽可以显示较多的资讯
  • -au 显示较详细的资讯
  • -aux 显示所有包含其他使用者的进程
  • au(x) 输出格式 :

USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND

  • USER: 行程拥有者
  • PID: pid
  • %CPU: 占用的 CPU 使用率
  • %MEM: 占用的记忆体使用率
  • VSZ: 占用的虚拟记忆体大小
  • RSS: 占用的记忆体大小
  • TTY: 终端的次要装置号码 (minor device number of tty)
  • STAT: 该行程的状态:
  • D: 无法中断的休眠状态 (通常 IO 的进程)
  • R: 正在执行中
  • S: 静止状态
  • T: 暂停执行
  • Z: 不存在但暂时无法消除
  • W: 没有足够的记忆体分页可分配
  • <: 高优先序的行程
  • N: 低优先序的行程
  • L: 有记忆体分页分配并锁在记忆体内 (实时系统或捱A I/O)
  • START: 行程开始时间
  • TIME: 执行的时间
  • COMMAND:所执行的指令

实例

展示nginx进程

[root@iZ0jl9wrdnyhz7oco2c34gZ nginx]# ps au | grep nginx
root     3554028  0.0  0.0 221528   796 pts/1    S+   15:45   0:00 grep --color=auto nginx

grep 的参数

grep(缩写来自Globally search a Regular Expression and Print)是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹配的行打印出来。

-a 或 --text : 不要忽略二进制的数据。
-A<显示行数> 或 --after-context=<显示行数> : 除了显示符合范本样式的那一列之外,并显示该行之后的内容。
-b 或 --byte-offset : 在显示符合样式的那一行之前,标示出该行第一个字符的编号。
-B<显示行数> 或 --before-context=<显示行数> : 除了显示符合样式的那一行之外,并显示该行之前的内容。
-c 或 --count : 计算符合样式的列数。
-C<显示行数> 或 --context=<显示行数>或-<显示行数> : 除了显示符合样式的那一行之外,并显示该行之前后的内容。
-d <动作> 或 --directories=<动作> : 当指定要查找的是目录而非文件时,必须使用这项参数,否则grep指令将回报信息并停止动作。
-e<范本样式> 或 --regexp=<范本样式> : 指定字符串做为查找文件内容的样式。
-E 或 --extended-regexp : 将样式为延伸的正则表达式来使用。
-f<规则文件> 或 --file=<规则文件> : 指定规则文件,其内容含有一个或多个规则样式,让grep查找符合规则条件的文件内容,格式为每行一个规则样式。
-F 或 --fixed-regexp : 将样式视为固定字符串的列表。
-G 或 --basic-regexp : 将样式视为普通的表示法来使用。
-h 或 --no-filename : 在显示符合样式的那一行之前,不标示该行所属的文件名称。
-H 或 --with-filename : 在显示符合样式的那一行之前,表示该行所属的文件名称。
-i 或 --ignore-case : 忽略字符大小写的差别。
-l 或 --file-with-matches : 列出文件内容符合指定的样式的文件名称。
-L 或 --files-without-match : 列出文件内容不符合指定的样式的文件名称。
-n 或 --line-number : 在显示符合样式的那一行之前,标示出该行的列数编号。
-o 或 --only-matching : 只显示匹配PATTERN 部分。
-q 或 --quiet或--silent : 不显示任何信息。
-r 或 --recursive : 此参数的效果和指定"-d recurse"参数相同。
-s 或 --no-messages : 不显示错误信息。
-v 或 --revert-match : 显示不包含匹配文本的所有行。
-V 或 --version : 显示版本信息。
-w 或 --word-regexp : 只显示全字符合的列。
-x --line-regexp : 只显示全列符合的列。
-y : 此参数的效果和指定"-i"参数相同。

打印 xxx 应用占用的端口

ps -ef|grep xxx |grep -w nginx |awk '{print $2}'

防火墙端口

开放端口

具体操作步骤如下:

1、查看当前的防火墙状态

sudo firewall-cmd --state

2、如果防火墙处于关闭状态,则可以跳过此步骤。如果防火墙处于开启状态,则需要添加一个新的规则来允许 3306 端口的通信

sudo firewall-cmd --zone=public --add-port=3306/tcp --permanent

3、重新加载防火墙规则

sudo firewall-cmd --reload

以上命令是针对使用 firewalld 防火墙的系统。如果您使用的是 iptables,您需要使用相应的命令。例如,您可以使用以下命令打开 3306 端口:

sudo iptables -I INPUT -p tcp --dport 3306 -j ACCEPT

请注意,这些命令只是打开了 3306 端口,并允许外部网络连接到数据库服务器。如果您需要更严格的安全措施,请确保仅允许必要的源 IP 地址或子网连接到数据库。

查看端口是否开放

  1. 外部测试

telnet ip port

出现这个,则说明未开放端口

C:\Users\admin>telnet 8.130.91.153 8080
正在连接8.130.91.153...无法打开到主机的连接。 在端口 8080: 连接失败
  1. 防火墙
[root@iZ0jl9wrdnyhz7oco2c34gZ nginx]$ firewall-cmd --list-all
public (active)
  target: default
  icmp-block-inversion: no
  interfaces: eth0
  sources: 
  services: cockpit dhcpv6-client ssh
  ports: 20/tcp 21/tcp 22/tcp 80/tcp 443/tcp 19914/tcp 39000-40000/tcp 888/tcp 3306/tcp 8080/tcp 9200/tcp
  protocols: 
  forward: no
  masquerade: no
  forward-ports: 
  source-ports: 
  icmp-blocks: 
  rich rules: 

关闭端口

[root@localhost ~]# firewall-cmd --permanent --remove-port 3306/tcp
success
[root@localhost ~]# firewall-cmd --reload
success
[root@localhost ~]# firewall-cmd --list-all
public (active)
  target: default
  icmp-block-inversion: no
  interfaces: ens33
  sources: 
  services: dhcpv6-client ssh
  ports: 8080/tcp
  protocols: 
  masquerade: no
  forward-ports: 
  source-ports: 
  icmp-blocks: 
  rich rules: 
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值