分享免费的编程资源和教程

网站首页 > 技术教程 正文

TCP端口可以设置超过65535吗?

goqiw 2024-09-08 17:05:56 技术教程 16 ℃ 0 评论


前言

5-6年前经常会遇到CentOS服务器配置了超过65535的端口,服务也能正常启动,那超过65535端口之后,实际服务器又是占用哪个端口呢?


这里拿我以前的笔记,与伙伴们分享下转换的公式。


说明


  • Windows 的 telnet,可能用了 32 bit 的数据类型记录 port,这样 port 表面上看到是可以超过 65535。

  • tcp header 明确定义了 tcpport 为 16 bit,那即便某些应用程序使用了 32 bit 的数据类型,最终结果也是被强制转换。

  • 简单的来说,就是:


    1、在应用程序里边可以使用4字节或更多字节来储存端口号。


    2、当调用了系统的tcp/ip通讯之后,系统底层强制将大于65536的端口转换回正常范围。

    所以如果直接在linux系统netstat 查询端口是看不到的,必须查询正常范围内的端口


    3、并且在转换过程中,不会返回任何错误信息,一切都悄然进行了,所以应用层的程序不会有任何特别反应,这一切都在系统底层悄然完成了。


    • 公式:
    新端口号 = (超过65535的那个端口号 – 65536*倍数 )

    其中倍数可以不断增长,最后使新端口号处于0~65535端口以内。


    主要记住这个转换方法,即可。


    Tags:

    本文暂时没有评论,来添加一个吧(●'◡'●)

    欢迎 发表评论:

    最近发表
    标签列表