Answers:
(2 ^ 16)-1或0-65,535(-1是因为端口0被保留并且不可用)。(已编辑,因为o_O Tync提醒我我们不能使用端口0,而Steve Folly提醒我您要求的是最高端口,而不是端口数)
但是您可能会以错误的方式进行操作。有些人主张和反对非标准港口。我说它们与最随意的扫描仪无关,而最随意的扫描仪可以使用最新的软件和适当的防火墙技术以及强密码来阻止。换句话说,安全最佳实践。
尽管1-65535是合法的TCP端口,但1-1023确实适用于众所周知的端口服务。如果在建立临时端口后启动了您自己的服务,则可能会遇到随机问题。对于那些可能不知道的人来说,临时端口是指那些在本地连接的远程端点(或类似的端口)。因此,如果您编写一个侦听端口20001的TCP服务。那么今天和明天可能都不错。但是有一天,您的服务可能会启动并尝试绑定到20001,并且由于被视为临时端口而失败。有一个解决方案。您必须由管理员(或您自己)更改服务器上的系统临时端口范围策略。在linux系统上,分两个步骤完成:
必须执行这两个步骤,如果您打算重新启动,这将毫无用处,在这种情况下,不需要“动态”步骤。要将范围设置为40000至65535,请执行以下操作:
动态
echo 40000 65535 > /proc/sys/net/ipv4/ip_local_port_range
要么
sysctl -w net.ipv4.ip_local_port_range="40000 65535"
常驻
将以下内容添加到/etc/sysctl.conf中:
net.ipv4.ip_local_port_range = 40000 65535
要读取当前设置或确认更改:
/sbin/sysctl net.ipv4.ip_local_port_range
输出将是这样的:
net.ipv4.ip_local_port_range = 9000 65500
确保您了解服务器的用途。减小范围太多可能导致其他问题。
编码愉快!(或您所做的任何事情)