我们知道建立一个socket连接进行网络通讯时需要四个元素client_ip:client_port<----->server_ip:server_port,socket绑定一个端口号用于标识进程。我一直好奇在linux平台上运行时进程的端口如何分配的?如何才能避免端口占用冲突?
要想了解这些答案需要先了解Linux下端口范围多少?如何修改端口范围?一个进程的端口如何分配的?最后了解linux系统下端口如何分配的?
1)查看端口范围:sysctl -a | grep range
2)修改端口范围:sysctlconf
vi /etc/sysctlconf
netipv4ip_local_port_range=32788 60000
配置立即生效:sysctl -p
另外,端口范围不要超过1024 65535,1024以下系统使用,65535以上设置会提示失败。
程序的端口分配分为固定分配和自动分配两种。一套系统中固定端口是要进行规划的,比如ftp的端口为10021(控制连接时服务端的),控制连接时客户端的端口就可以随机分配。ftp数据连接如果在被动模式下服务端和客户端的端口都可以随机分配,如果在主动模式下,服务端的端口可以固定分配,客户端的端口随机分配。
固定分配,一般在服务端的进程启动时分配端口,用于创建socket进行监听客户端,如ftp配置文件中的listen_port=10021,>
IIS FTP里的PASV模式下默认端口范围 1024 - 65535,连接时会从中随机选择到响应。如果该值未指定,或被设置成空字符串,则将使用 Winsock 指定的默认值 1025-5000。如果指定了该属性,则 FTP 将验证的有效范围从 5001 到 65535。要限制这片超大端口的范围,可以用IIS管理实用程序Adsutilvbs。
C:/Inetpub/AdminScripts/cscript adsutilvbs set /MSFTPSVC/PassivePortRange "5001-65535"
映射例子: 路由器局域网接口 IP 地址: 19216801 广域网接口 IP 地址: 211xxx 对外映射端口: 800 内网映射主机 IP 地址: 1921680100 对内映射端口: 80 (提供Web网站服务) 内网测试主机 IP 地址: 19216802 外网测试主机 IP 地址: 220xxx 对映射主机的要求:映射主机的IP地址需和路由局域网IP在同一网段,子网掩码需和路由局域网接口一致,网关应指向路由局域网IP,简而言之,该映射主机能通过路由上网。协议类型是否正确(如>
1 tcpmux TCP 端口服务多路复用
2 rje 远程作业入口
3 echo Echo 服务
4 discard 用于连接测试的空服务
5 systat 用于列举连接了的端口的系统状态
6 daytime 给请求主机发送日期和时间
7 qotd 给连接了的主机发送每日格言
8 msp 消息发送协议
9 chargen 字符生成服务;发送无止境的字符流
10 ftp-data FTP 数据端口
11 ftp 文件传输协议(FTP)端口;有时被文件服务协议(FSP)使用
12 ssh 安全 Shell(SSH)服务
13 telnet Telnet 服务
14 smtp 简单邮件传输协议(SMTP)
15 time 时间协议
16 rlp 资源定位协议
17 nameserver 互联网名称服务
18 nicname WHOIS 目录服务
19 tacacs 用于基于 TCP/IP 验证和访问的终端访问控制器访问控制系统
20 re-mail-ck 远程邮件检查协议
21 domain 域名服务(如 BIND)
22 whois++ WHOIS++,被扩展了的 WHOIS 服务
23 bootps 引导协议(BOOTP)服务;还被动态主机配置协议(DHCP)服务使用
24 bootpc Bootstrap(BOOTP)客户;还被动态主机配置协议(DHCP)客户使用
25 tftp 小文件传输协议(TFTP)
26 gopher Gopher 互联网文档搜寻和检索
当在Tableau中连接MySQL数据库时出现“无法连接服务器,检查服务器是否正在运行以及您是否有权访问”等错误提示时,可能是以下原因之一:
1MySQL服务器没有运行:请确认MySQL数据库服务器是否已经启动。可以检查MySQL的状态或者重启MySQL服务,看是否能够正常连接。
2MySQL数据库没有正确配置端口:请确保已经正确设置MySQL数据库的端口号,并在Tableau中正确输入该端口号。默认情况下,MySQL使用3306端口。
3防火墙阻止了连接:如果您的计算机中安装了防火墙,可能会阻止Tableau与MySQL数据库的连接。请检查您的防火墙设置,确保Tableau可以访问MySQL端口。
4数据库权限问题:请确保您在连接MySQL数据库时使用的用户名和密码具有足够的权限来访问该数据库。可以在MySQL服务器上检查用户的权限设置,或者使用管理员账号登录MySql进行授权 *** 作。
5MySQL驱动程序问题:如果您安装的MySQL驱动程序版本较老,可能会导致连接失败。建议升级到最新版本的MySQL驱动程序,并重新尝试连接。
6检查MySQL服务器是否正在运行。您可以打开命令行终端并输入“netstat -an”来检查服务器是否在运行。
7确认您的MySQL用户名和密码是否正确。这些都是在MySQL服务器上配置的,因此请确保您在Tableau中使用的用户名和密码与服务器上的相同。
8确认MySQL服务器是否开放了需要的端口。默认情况下,MySQL服务器端口是3306,如果您的MySQL服务器使用了不同的端口,则需要更新Tableau中的端口配置。您可以在Tableau“连接到数据”窗口中的MySQL连接设置中更改端口。
9确认您的计算机是否允许访问MySQL服务器。在某些情况下,您的计算机本身的安全设置可能会阻止访问MySQL服务器。您可以检查防火墙设置,以确保Tableau具有访问MySQL服务器的权限。
总的来说,当在Tableau中连接MySQL数据库时出现连接失败的错误提示,需要仔细检查以上几个问题,找出原因并解决,才可以成功连接到MySQL数据库。
1、首先需要调出dos界面,在电脑的搜索框中输入cmd,回车。(当然,也可以用快捷方式windows键+r键直接调出运行框后输入cmd,回车)。
2、然后在dos界面输入mysql -u root -p这样一句命令行,出现配图中的版本号等内容就代表已经连接mysql服务了。
3、这时候再输入一句show global variables like ‘port‘;就可以查看到端口号了,友情提醒,注意命令行有没有分号。
4、知道端口号之后要是还需要继续输入其他的内容,可以ctrl+c退出当前状态。
5、然后就可以继续在dos界面敲命令行了,这样是比较方便的。
6、当然,也可以直接关掉重新进入dos界面哈。两句命令行就能知道端口号。
以上就是关于Linux下端口如何分配全部的内容,包括:Linux下端口如何分配、什么是端口、使用FTP服务器的PASV模式 端口设置为60000-60020,为什么抓包抓到的信息显示服务器给分配的端口为5012等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)