linux怎么查看进程占用端口

linux怎么查看进程占用端口,第1张

1 ss命令简介

ss 是 Socket Statistics 的缩写。ss 命令可以用来获取 socket 统计信息,它显示的内容和 netstat 类似。但 ss 的优势在于它能够显示更多更详细的有关 TCP 和连接状态的信息,而且比 netstat 更快。当服务器的 socket 连接数量变得非常大时,无论是使用 netstat 命令还是直接 cat /proc/net/tcp,执行速度都会很慢。ss 命令利用到了 TCP 协议栈中 tcp_diag。tcp_diag 是一个用于分析统计的模块,可以获得 Linux 内核中第一手的信息,因此 ss 命令的性能会好很多。

ss命令简介

2 常用选项

-h, --help 帮助

-V, --version 显示版本号

-t, --tcp 显示 TCP 协议的 sockets

-u, --udp 显示 UDP 协议的 sockets

-x, --unix 显示 unix domain sockets,与 -f 选项相同

-n, --numeric 不解析服务的名称,如 "22" 端口不会显示成 "ssh"

-l, --listening 只显示处于监听状态的端口

-p, --processes 显示监听端口的进程(Ubuntu 上需要 sudo)

-a, --all 对 TCP 协议来说,既包含监听的端口,也包含建立的连接

-r, --resolve 把 IP 解释为域名,把端口号解释为协议名称

3 常见用法

如果不添加选项 ss 命令默认输出所有建立的连接(不包含监听的端口),包括 tcp, udp, and unix socket 三种类型的连接:

31 查看前5名的连接:

Netid State Recv-Q Send-Q Local Address:Port Peer Address:Port

u_str ESTAB 0 0 20040 20041

u_str ESTAB 0 0 20030 20031

u_str ESTAB 0 0 20044 20043

u_str ESTAB 0 0 /run/dbus/system_bus_socket 18592 18591

32 查看主机的监听端口

State Recv-Q Send-Q Local Address:Port Peer Address:Port

LISTEN 0 128 127001:9016 :

LISTEN 0 128 127001:9017 :

LISTEN 0 100 127001:25 :

LISTEN 0 128 127001:9018 :

LISTEN 0 128 127001:1723 :

LISTEN 0 128 127001:9019 :

33 linux查看tcp连接

ESTAB 0 0 ::1:ssh ::1:53238

ESTAB 0 0 ::1:53278 ::1:ssh

ESTAB 0 0 ::1:ssh ::1:53280

ESTAB 0 0 ::1:53288 ::1:ssh

ESTAB 0 0 ::1:ssh ::1:53296

ESTAB 0 0 ::1:53294 ::1:ssh

ESTAB 0 0 ::1:48456 ::1:ssh

ESTAB 0 0 ::1:53286 ::1:ssh

ESTAB 0 0 ::1:53292 ::1:ssh

ESTAB 0 0 ::1:ssh ::1:53272

linux查看tcp连接

34 解析IP和端口号

使用-r选项

State Recv-Q Send-Q Local Address:Port Peer Address:Port

LISTEN 0 128 my_public_ip:9016 :

LISTEN 0 128 my_public_ip:9017 :

LISTEN 0 100 localhost:smtp :

LISTEN 0 128 my_public_ip:9018 :

LISTEN 0 128 my_public_ip:pptp :

LISTEN 0 128 my_public_ip:9019 :

linux查看监听端口

35 输出时带进程名称

使用-p选项

Total: 2340 (kernel 2365)

TCP: 2126 (estab 72, closed 23, orphaned 1, synrecv 0, timewait 2/0), ports 0

Transport Total IP IPv6

36 根据条件过滤输出结果

可以通过语法过滤输出结果,根据源IP、源端口、目标IP、目标端口

src源

dst目标

ss dst 172162633

ss dst 172162643:>基于SSH协议开发的一款远程管理服务程序通常被称为SSH服务器(SSH Server),它是一种可以在远程计算机上运行的软件,用于提供SSH协议的访问和管理功能。
SSH(Secure Shell)是一种安全的网络协议,它可以通过加密通信方式实现远程计算机与客户端之间的安全通信。基于SSH协议开发的远程管理服务程序,可以使用SSH协议连接到远程计算机,并提供以下功能:
1 远程登录:用户可以通过SSH协议连接到远程计算机,并执行命令或 *** 作远程计算机。这种连接方式可以保证通信过程中不被窃听或篡改。
2 文件传输:SSH服务器可以支持SCP(Secure Copy)或SFTP(SSH File Transfer Protocol)文件传输协议,用户可以使用这些协议将文件从本地计算机传输到远程计算机或从远程计算机下载文件到本地计算机。
3 用户管理:SSH服务器可以通过配置访问控制列表(ACL)限制用户访问权限,还可以限制用户对系统的 *** 作权限,并记录所有的用户登录和 *** 作日志。
4 系统管理:SSH服务器可以提供一些系统管理工具,例如远程终端程序、进程监控、系统日志查看等。
一些常见的基于SSH协议开发的远程管理服务程序包括OpenSSH、PuTTY SSH、Tectia SSH等。这些程序通常在Linux、Unix和Windows等平台上都可以运行。

使用过Windows服务器的朋友,想必对远程桌面连接是不会陌生的吧,远程桌面连接默认端口是3389,使用远程桌面连接就可以远程管理你这个台服务器了。那么SSH也是和远程桌面连接类似概念和作用的东西,字面上理解,他是网络传输中的一种安全传输方式或者传输协议,他默认使用的端口是22。这个端口号通常为了安全,和windows服务器的远程桌面连接一样,要改掉。

A是我们手上的电脑,B是外国服务器(公网我们的), C是外国服务器(如Google),
A能访问B, A不能访问C, B不能访问A, B能访问C
那么,我想想上Google,该怎么办

-N 不执行任何命令
-f 后台运行

-L参数的行为。-L X:Y:Z的含义是,将IP为Y的机器的Z端口通过中间服务器B映射到本地机器的X端口
那么,在A上访问127001:2121就是访问C的网站了

在A上执行

然后在B上执行

使用SSH的方式不够稳定,使用AutoSSH可以自动在连接断开时自动重连,再把AutoSSH加入系统服务自动启动,则可以做到稳定的连接
1安装AutoSSH

2执行AutoSSH命令

-M:在5555端口上监听连接的变化,只要断开就重连
少了-f 参数,因为AutoSSH本来就在后台运行

有A,B,C 3台服务器, A,C有公网IP, B是某IDC的服务器无公网IP A通过B连接C的80端口(A=>B=>C),
那么在B上执行如下命令即可:

-D port
指定一个本地机器 “动态的'’ 应用程序端口转发 工作原理是这样的,
本地机器上分配了一个 socket 侦听 port 端口, 一旦这个端口上有了连接,
该连接就经过安全通道转发出去, 根据应用程序的协议可以判断出远程主机将和哪里连接
目前支持 SOCKS4 协议, 将充当 SOCKS4 服务器 只有 root 才能转发特权端口 可以在配置文件中指定动态端口的转发

通过provixyl这样代理软件,全局代理(就是把所有的A电脑上访问所有ip,0000 都转发到本地1080端口)
同时把访问的那些ip映射到B服务器, 让B去访问 最终就是A 利用 B作为跳板, 访问了那些IP

{办公电脑A, 公司内网服务器B(内网192xxx), [AB在同一个局域网]}, 生产环境上的C(内网ip:101440x)
A能链接B,不能链接C, B能链接C(同过一台公网服务器, 上面介绍到的, 公网访问内网)

实现B(192xxx)链接C(通过一台公网服务器D) B通过D连接C的8000端口(B=>D=>C)

接收有A访问的ip, 如101440x:80, 通过provixyl这样软件, 把接收到的101440x转发到本地1080端口


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/10623519.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-10
下一篇 2023-05-10

发表评论

登录后才能评论

评论列表(0条)

保存