linux常用端口号(1)

linux常用端口号(1),第1张

1.FTP:文件传输协议

        协议名:FTP

        软件名:vsftpd

        FTP端口:控制端口  21/TCP        数据端口:20/TCP

        FTP默认端口号为21/tcp

        TFTP        默认端口号为69/UDP

2.SSH (安全登录),SCP(文件传输),端口号重定向,默认的端口号为22/TCP

        SSH是少数被许可穿越防火墙的协议之一。通常的做法是不限制出站的SSH连接,而入站的SSH连接通常会限制到一台或者少数几台服务器上。

3.Telnet使用23端口:Telnet是一种远程登录的端口,用户可以以自己的身份远程连接到计算机上,通过这种端口可以提供一种基于DOS模式下的通信服务。

4.NFS(网络文件系统):让网络上的不同Linux/UNIX系统及其实现文件共享

        NFS本身只是一种文件系统,没有提供文件传输的功能,但却能让我们文件共享,原因在于NFS使用RPC服务,用到NFS的地方需要启动RPC服务,无论是NFS客户端还是服务端。

        NFS和RPC的关系:NFS是一个文件系统,负责管理分享的目录,RPC负责文件的传递。

        NFS启动时至少有RPC.NFSD和RPC.mountd,2个daemon

        rpc.nfsd主要管理客户机登录NFS服务器时,判断客户机是否能登录,和客户机ID信息。

        rpc.mountd主要管理nfs的文件系统,当客户机顺利登录NFS服务器时,会去读/etc/exports文件中的配置,然后去对比客户机的权限。

        协议使用端口:

            RPC:  111  TCP/UDP    

            NFSD:  2049  TCP/UDP

            mountd:  RPC服务在NFS服务启动时默认会为mountd动态选取一个随机端口(32768--65535)来进行通讯,可以在/etc/nfsmount.conf文件中指定mount的端口。

5.NTP (网络时间协议)

        他的目的是国际互联网上传递统一,标准的时间。

        NTP同时同步指的是通过网络的NTP协议和时间源进行时间校准,前提条件,事件源输出必须通过网络接口,数据输出格式必须符合NTP协议。

        区域网内所有的PC,服务器和其他设备通过网络与时间服务器保持同步,NTP协议自动判断网络延时,并给得到的数据进行时间补偿,从而使区域网内设备时间保持统一标准。

        端口: 123/UDP

6.DNS   域名系统

        该系统用于命名组织到域层次结构中的计算机和网络服务。

        在Internel上域名和IP地址是一一对应的,域名虽然便于人们记忆,但机器之间只能互相认识IP地址,他们之间的转换工作称为域名解析,域名解析需要专门的域名解析服务器来完成。

    DNS运行在UDP协议之上,使用端口号53.

    在传输层TCP提供端到端可靠的服务,在UDP端提供尽力而为的服务,其控制端口作用于UDP端口53.

    UDP53:        解析客户端的域名用UDP(速度快)

    TCP53        主从用(安全性较高)

7.PHP-FPM是一个PHPFastCGI

        默认端口:9000/TCP

8.SMTP: 是一种提供可靠且有效电子邮件传输协议。SMTP是建模在FTP文件传输服务上的一种邮件服务,主要用于传输系统之间的邮件信息并提供来信相关的通知

       SMTP:  端口号:25 /TCP  发邮件

        POP3:  端口号:TCP/25   收邮件

        IMAP4  端口号: TCP/143  用来提供发邮件支持附件用的。

9.Samba:

        137(UDP) ,  138(UDP) 

        139(TCP) ,   445(TCP) 提供文件共享功能

        137udp,138udp提供ip地址到主机名解析的功能

        901(TCP)

10.Mycat

        代替昂贵的Oracle的MySQL集群中间件

        默认端口8066连接Mycat

        9066管理端口

在Linux系统中,动态端口(也称为私有端口)是指客户端程序在运行时自动分配的端口号,通常是在1024到65535之间的端口。这些端口是临时性的,只在客户端程序运行期间使用,使用完毕后就会被释放。

Linux系统默认情况下会分配一定数量的动态端口,但是如果需要修改动态端口范围,可以通过修改内核参数来实现。具体步骤如下:

1. 打开/etc/sysctl.conf文件,添加以下参数:

```

net.ipv4.ip_local_port_range = 1024 65535

```

其中,1024和65535分别表示动态端口的起始端口号和结束端口号。可以根据实际需要进行修改。

2. 执行以下命令使参数生效:

```

sudo sysctl -p

```

3. 查看当前动态端口范围:

```

cat /proc/sys/net/ipv4/ip_local_port_range

```

以上步骤可以在大多数Linux发行版上使用,但是具体实现可能会有所不同。

我们知道建立一个socket连接进行网络通讯时需要四个元素client_ip:client_port<----->server_ip:server_port,socket绑定一个端口号用于标识进程。我一直好奇在linux平台上运行时进程的端口如何分配的?如何才能避免端口占用冲突?

要想了解这些答案需要先了解Linux下端口范围多少?如何修改端口范围?一个进程的端口如何分配的?最后了解linux系统下端口如何分配的?

1)查看端口范围:sysctl -a | grep range

2)修改端口范围:sysctl.conf

vi /etc/sysctl.conf

net.ipv4.ip_local_port_range=32788 60000

配置立即生效:sysctl -p

另外,端口范围不要超过1024  65535,1024以下系统使用,65535以上设置会提示失败。

程序的端口分配分为固定分配和自动分配两种。一套系统中固定端口是要进行规划的,比如ftp的端口为10021(控制连接时服务端的),控制连接时客户端的端口就可以随机分配。ftp数据连接如果在被动模式下服务端和客户端的端口都可以随机分配,如果在主动模式下,服务端的端口可以固定分配,客户端的端口随机分配。

固定分配,一般在服务端的进程启动时分配端口,用于创建socket进行监听客户端,如ftp配置文件中的listen_port=10021,http默认的是80,snmp管理的 trap端口是162和snmp agent端口是161。

自动分配,创建进程即建立socket用于通讯,比如ftp服务端的数据连接进程,会从linux sysctl.conf定义的端口范围,自动来分配端口,调用bind进行端口绑定。但有时候不进行绑定端口也能正常工作,这是因为协议栈对没有端口绑定的socket进行了自动绑定。每次调用第4层协议的sendmsg成员函数时,会进行端口号的检查,如果没有绑定就调用协议的成员函数get_port进行自动绑定。


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

原文地址: https://outofmemory.cn/yw/11101717.html

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

发表评论

登录后才能评论

评论列表(0条)

保存