linux如何查看端口号及其状态(linux查看本机端口号)

场景:一位妻子下班途中塞车,回到家里早就过了吃饭时间,等不及的家人已经吃过了,老人和孩子到外面散步去了,丈夫正在网上兴致勃勃地冲浪……但是,一个这样常见的生活场景,两个家庭却上演了两出截然不同的话剧

A家庭:

丈夫:你吃饭了没有?

妻子:(吃枪药似的语气)我不是才回家吗?上哪吃去?吃公饭啊?我可没那个福气。

丈夫:没吃就没吃,发哪门子的火?

妻子:(提高嗓门)人家肚子空空,前胸贴后背,你酒足饭饱在家呆着!好福气啊!

丈夫:(没好气地)问一下还不行?真是的,好心当成了驴肝肺,算我问错了,行不?

妻子:(把钱包重重地扔在沙发上)你说的本来就是废话!

(“嘭”丈夫把书房门也关上了)

B家庭:

丈夫:你吃过饭没有?

妻子:还没有呢,你们都吃过了?

丈夫:吃过了,女儿和妈出去玩了。(在电脑前兴奋不已)快来看啊,我的牌真好。

妻子:哟,这么好的牌啊,连傻瓜也能打得好。

丈夫:快去吃饭,吃好了换你上来打,我要看新闻去了。

妻子:好嘛,几分钟就好了。(一溜烟地跑进厨房,马上端碗饭凑到丈夫身边)去去去,我来了。

丈夫:哎呀,我打完了这局就走。

妻子:我会帮你打好的,快让开,新闻联播开始了。

A家的妻子恶言恶语,火药味十足,丈夫不生气才怪呢,晚上两人不发生战争就已是万幸;而B家的妻子呢,言语亲昵,心平气和,两人一问一答,夫妻之间的浪漫温馨尽显其中。假如A妻子能向B妻子学习学习,换种说话方式,家里的气氛就绝对不会那么剑拔弩张了。

书上的总结:转着弯说,并非花言巧语,并非为了哗众取宠,耍什么花招,也不是语言不清,态度不诚恳,不让人弄明白什么意思。它是一种富于智慧、独具魅力的表达技巧,是为某种需要而采用的办法。转着弯说,有时比口若悬河更可贵。

一,linux中端口的分类

以下是端口分配类别:

0 – 1023:常用端口和系统端口

1024 – 49151:软件的注册端口

49152 – 65535:动态端口或私有端口

在 Linux 上的/etc/services 文件可以查看到更多关于保留端口的信息。

linux如何查看端口号及其状态(linux查看本机端口号)

二,六种方法查看端口信息简介

ss:可以用于转储套接字统计信息。netstat:可以显示打开的套接字列表。lsof:可以列出打开的文件。fuser:可以列出那些打开了文件的进程的进程 ID。nmap:是网络检测工具和端口扫描程序。systemctl:是 systemd 系统的控制管理器和服务管理器。

三,六种命令使用介绍

为了方便,以下我们将以sshd(因为可以不用再安装,装系统会自带)服务来做测试

1)ss命令

ss 一般用于转储套接字统计信息。它能够输出类似于 netstat 输出的信息,但它可以比其它工具显示更多的 TCP 信息和状态信息,它还可以显示所有类型的套接字统计信息,包括 PACKET、TCP、UDP、DCCP、RAW、Unix 域等。

部分版主命令:

[root@localhost sbin]# ss –helpUsage: ss [ OPTIONS ] ss [ OPTIONS ] [ FILTER ]-h,–help帮助消息-V,–version输出版本信息 -n, –numeric 不解析服务名称 -r, –resolve 解析主机名 -a, –all 显示所有插座sockets -l, –listening 显示监听 sockets -o, –options 显示计时器信息 -e, –extended 显示详细的套接字信息 -m, –memory 显示套接字内存使用情况 -p, –processes 使用套接字显示进程 -i, –info 显示内部TCP信息 -s, –summary 显示套接字使用摘要 -b, –bpf 显示bpf筛选器套接字信息 -Z, –context 显示进程SELinux安全上下文 -z, –contexts 显示进程和套接字选择安全上下文-N,–net切换到指定的网络命名空间名称

例子:

ss -tnlp | grep ssh或者ss -tnlp | grep “:22”

下图输出信息:

-t TCP套接字-n 不解析服务名称 -l 显示监听sockets-p 使用套接字显示进程

2)netstat

例子:

netstat -tnlp | grep ssh或者netstat -tnlp | grep “:22”

从上图可以看出监听端口22,进程id是988,监听网段是全网段

3)lsof

lsof 能够列出打开的文件,并列出系统上被进程打开的文件的相关信息。

lsof部分帮助信息

[root@localhost sbin]# lsof –helplsof: illegal option character: -lsof: -e not followed by a file system path: “lp”lsof 4.87 latest revision: ftp://lsof.itap.purdue.edu/pub/tools/unix/lsof/ latest FAQ: ftp://lsof.itap.purdue.edu/pub/tools/unix/lsof/FAQ latest man page: ftp://lsof.itap.purdue.edu/pub/tools/unix/lsof/lsof_man usage: [-?abhKlnNoOPRtUvVX] [ |-c c] [ |-d s] [ D D] [ |-f[gG]] [ |-e s] [-F [f]] [-g [s]] [-i [i]] [ |-L [l]] [ m [m]] [ |-M] [-o [o]] [-p s][ |-r [t]] [-s [p:s]] [-S [t]] [-T [t]] [-u s] [ |-w] [-x [fl]] [–] [names]Defaults in parentheses; comma-separated set (s) items; dash-separated ranges. -?|-h list help -a AND selections (OR) -b avoid kernel blocks -c c cmd c ^c /c/[bix] c w COMMAND width (9) d s dir s files -d s select by FD set D D dir D tree *SLOW?* |-e s exempt s *RISKY* -i select IPv[46] files -K list tasKs (threads) -l list UID numbers -n no host names -N select NFS files -o list file offset -O no overhead *RISKY* -P no port names -R list paRent PID -s list file size -t terse listing -T disable TCP/TPI info -U select Unix socket -v list version info -V verbose search |-w Warnings ( ) -X skip TCP&UDP* files -Z Z context [Z]–endoptionscan

例子:

lsof -i -P | grep ssh或者lsof -i tcp:22

4)fuser

fuser 工具会将本地系统上打开了文件的进程的进程 ID 显示在标准输出中。

fuser部分帮助信息

[root@localhost sbin]# fuser –helpfuser: Invalid option –helpUsage: fuser [-fMuvw] [-a|-s] [-4|-6] [-c|-m|-n SPACE] [-k [-i] [-SIGNAL]] NAME… fuser -l fuser -VShow which processes use the named files, sockets, or filesystems. -a,–all 显示未使用的文件 -i,–interactive kill 前询问(不带-k忽略)-k,–killkill访问命名文件的kill进程 -l,–list-signals 列出可用的信号名称-m,–mount显示使用命名文件系统或块设备的所有进程

例子

fuser -v 22/tcp

5)nmap

nmap(“Network Mapper”)是一款用于网络检测和安全审计的开源工具。它最初用于对大型网络进行快速扫描,但它对于单个主机的扫描也有很好的表现;nmap 使用原始 IP 数据包来确定网络上可用的主机,这些主机的服务(包括应用程序名称和版本)、主机运行的操作系统(包括操作系统版本等信息)、正在使用的数据包过滤器或防火墙的类型,以及很多其它信息。

nmap部分帮助信息

[root@localhost sbin]# nmap –helpNmap 6.40 ( http://nmap.org )Usage: nmap [Scan Type(s)] [Options] {target specification}TARGET SPECIFICATION: Can pass hostnames, IP addresses, networks, etc. Ex: scanme.nmap.org, microsoft.com/24, 192.168.0.1; 10.0.0-255.1-254 -iL <inputfilename>: Input from list of hosts/networks -iR <num hosts>: Choose random targets –exclude <host1[,host2][,host3],…>: Exclude hosts/networks –excludefile <exclude_file>: Exclude list from fileHOST DISCOVERY: -sL: List Scan – simply list targets to scan -sn: Ping Scan – disable port scan -Pn: Treat all hosts as online — skip host discovery -PS/PA/PU/PY[portlist]: TCP SYN/ACK, UDP or SCTP discovery to given ports -PE/PP/PM: ICMP echo, timestamp, and netmask request discovery probes -PO[protocol list]: IP Protocol Ping -n/-R: Never do DNS resolution/Always resolve [default: sometimes] –dns-servers <serv1[,serv2],…>: Specify custom DNS servers –system-dns: Use OS’s DNS resolver–traceroute:Tracehoppathtoeachhost

例子:

nmap -sV -p 22 localhost

6)systemctl

systemctl 是 systemd 系统的控制管理器和服务管理器。它取代了旧的 SysV 初始化系统管理,目前大多数现代 Linux 操作系统都采用了 systemd。systemctl部分帮助信息[root@localhost sbin]# systemctl –helpsystemctl [OPTIONS…] {COMMAND} …Query or send control commands to the systemd manager. -h –help Show this help –version Show package version –system Connect to system manager -H –host=[USER@]HOST Operate on remote host -M –machine=CONTAINER Operate on local container -t –type=TYPE List units of a particular type –state=STATE List units with particular LOAD or SUB or ACTIVE state-p–property=NAMEShowonlypropertiesbythisname

例子:

systemctl status sshd或者journalctl | grep -i “openssh\|sshd”

注意:journalctl | grep -i “openssh\|sshd”可以命令检查日志文件中的详细信息

四,总结

对于 Linux 系统管理员来说,清楚某个服务是否正确地绑定或监听某个端口,是一种基本功,这样可以快速的排除问题,达到工作目的。

最后的最后,欢迎交流:

发表评论

登录后才能评论