
netstat 是一个命令行工具,可以提供有关网络连接的信息。
要列出正在侦听的所有 TCP 或 UDP 端口,包括使用端口和套接字状态的服务,请使用以下命令:
netstat -tunlp
此命令中使用的选项具有以下含义:
-t - 显示 TCP 端口。
-u - 显示 UDP 端口。
-n - 显示数字地址而不是主机名。
-l - 仅显示侦听端口。
-p - 显示进程的 PID 和名称。仅当您以 root 或 sudo 用户身份运行命令时,才会显示此信息。
查询指定端口通过grep过滤:
netstat -tnlp | grep :80
二、使用 ss 检查端口
ss 是新的 netstat,命令选项大致相同。它缺少一些 netstat 功能,但暴露了更多的 TCP 状态,而且速度稍快。《Linux就该这么学》 一起学习linux
使用示例:ss -tunlp
三、使用 lsof 检查端口
lsof 是一个功能强大的命令行实用程序,它提供有关进程打开的文件的信息。
在 Linux 中,一切都是文件,可以将套接字视为写入网络的文件。
要使用 lsof 获取所有侦听 TCP 端口的列表:
lsof -nP -iTCP -sTCP:LISTEN
使用的选项如下:
-n - 不要将端口号转换为端口名称。
-p - 不要解析主机名,显示数字地址。
-iTCP -sTCP:LISTEN - 仅显示 TCP 协议状态为 LISTEN 的网络文件。
要查找正在侦听特定端口(例如 3306)的进程,请使用以下命令:
sudo lsof -nP -iTCP:3306 -sTCP:LISTEN
前言
如何确定端口是否在Linux或类unix系统下占用?怎么检查哪些端口正在Linux服务器上被占用?Linux系统如何使用命令行检查端口是否已经在占用?
查询哪些端口正在服务器的网络接口上被占用是非常重要的工作。您需要查询打开端口以检测入侵。除了入侵之外,出于故障排除的目的,可能有必要检查服务器上的其他应用程序是否已经使用了某个端口。例如,您可以在同一系统上安装Apache和Nginx服务器。因此,有必要了解Apache或Nginx是否使用TCP端口80或443。本教程提供了使用netstat、nmap和lsof命令查询正在使用的端口并查看正在使用该端口的应用程序的步骤。
如何查询端口是否在使用中:
检查Linux上被占用的端口和应用程序:
Step1: 打开终端
Step2: 执行以下任意一条命令查看被占用的端口
查看端口22是否被占用:
较新版本的Linux使用以下查询命令:
方法1: 使用lsof命令查询占用端口
先安装lsof命令
RHEL/CentOS系统:
Debian/Ubuntu系统安装lsof命令
使用语法如下
OpenBSD
看到类似这样的输出结果:
sshd是进程名字
TCP 22表示sshd进程占用了TCP 22端口,正在监听中(LISTEN)
1243表示sshd进程号
方法二:使用netstat查询被占用的端口号
较新的Linux发行版已经不再默认集成netstat命令,而是使用新命令ss取代了。
如果要使用netstat命令,需要手动安装net-tools套件:
RHEL/CentOS系统安装net-tools套件,执行以下命令:
Debian/Ubuntu系统执行以下命令:
您可以使用netstat查询被占用的端口和应用程序,如下所示。
执行以下命令查询:
在Linux上,netstat命令已经废弃了一段时间。因此,你需要使用ss命令如下:
或者:
其中ss命令选项如下:
-t : 只显示Linux上的TCP套接字
-u : 在Linux上只显示UDP套接字
-l : 监听套接字。例如,TCP端口22由SSHD服务器打开。
-p : 列出打开套接字的进程名
-n : 不要解析服务名称,即不要使用DNS
FreeBSD/MacOS X netstat 语法
FreeBSD/MacOS X查询被占用的端口
或者
OpenBSD netstat 语法
OpenBSD查询被占用的端口
或者
方法三:使用`nmap`命令查询Linux被占用的端口
默认情况下,Linux发行版并没有默认安装nmap命令,
CentOS系统安装nmap
Ubuntu系统安装nmap
使用nmap查询本机被占用的端口
查询Linux系统被占用的UDP端口
查询Linux系统被占用的TCP端口
你可以同时查询被占用的TCP和UDP端口
结论:
本教程解释了如何在Linux系统上使用命令行查询TCP或者UDP端口是否被占用。有关更多信息,请参见nmap命令和lsof命令页面
SFTP(SSH文件传输协议)是一种安全文件协议,用于通过加密连接在两个主机之间传输文件。 它还允许您对远程文件执行各种文件 *** 作并恢复文件传输。
SFTP可以替代旧版FTP协议。 它具有FTP的所有功能,但连接更加安全。
本文介绍了如何在Linux中更改默认的SFTP端口。 我们还将向您展示如何配置防火墙以允许在新端口上使用。
SFTP是SSH的子系统,并提供与SSH相同级别的安全性。
默认的SFTP端口为22。
更改默认的 SFTP / SSH 端口可以降低自动攻击的风险,从而为服务器增加一层额外的安全保护。
下面的步骤详细讲解了如何更改SFTP默认端口:
在Linux中,低于1024的端口号是为知名服务保留的,只能由root绑定。 尽管可以将1-1024范围内的端口用于SSH服务以避免端口分配问题,但建议选择1024以上的端口。
本示例说明如何将SFTP/SSH端口更改为2222,但是您可以选择自己喜欢的任何端口。
更改SFTP / SSH端口之前,您需要在防火墙中打开新端口。
如果您正在使用UFW(Ubuntu中的默认防火墙),请运行以下命令以打开端口:
在 CentOS 中,默认的防火墙管理工具是 FirewallD 。 要打开端口,请输入以下命令:
CentOS用户还需要调整SELinux规则以允许新的SSH端口:
如果您使用的是另一个运行 iptables 的 Linux发行版 ,请打开新的端口运行:
SSH服务器配置存储在 /etc/ssh/sshd_config 文件中。 使用文本编辑器打开文件:
搜索以端口22开头的行。通常,该行使用井号(#)注释掉。 删除哈希号,然后输入新的SSH端口号:
编辑配置文件时要非常小心。 错误的配置可能会阻止SSH服务启动。
完成后,保存文件并重新启动SSH服务以使更改生效:
在CentOS中,SSH服务名为sshd:
验证SSH守护程序正在侦听新端口:
ss -an | grep 2222
输出应如下所示:
要指定端口号,请使用 -P 选项调用 sftp 命令 ,后跟新的端口号:
如果使用的是GUI SFTP客户端,只需在客户端界面中输入新端口。
默认的SFTP端口为22。但是,您可以将端口更改为所需的任何数字。
如果您定期连接到多个系统,则可以通过在SSH配置文件中定义所有连接来简化工作流程。
如有任何疑问,请随时发表评论。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)