一:什么是端口,端口号?
端口(port):
可以理解为设备与外界通讯交流的通道口。端口又分为虚拟端口和物理端口。
虚拟端口,指计算机内部或交换机路由器内的端口,不可见。例如计算机中FTP的21端口、Telnet的23端口、HTTP的80端口等。
物理端口又称为接口,是可见端口,计算机背板的RJ45网口、USB接口、HTML接口、VGA接口等。
端口号:
不同主机之间通过TCP/IP协议发送和接收数据包,各个数据包根据其目的主机的ip地址来进行互联网络中的路由选择。数据是可以顺利传输给目标主机的,可是大多数操作系统都支持多程序(进程)同时运行,那么目标主机应该把接收的数据包传输给哪个进程呢?不能乱传吧?这时候就需要端口机制了。
例如:https://202.108.22.5:443(百度一下ip+端口号)。https默认端口为443,平常没有输入是自动添加的。
再假设我们去银行取钱,银行作为“主机”,会有很多业务窗口,我们取钱就需要去指定窗口(端口)办理业务,同时其他窗口(不同端口)可以为其他人做存钱,查询,贷款等不同业务。
银行不可能只有取钱这一个窗口业务,这里就可以形象的理解端口的作用。
二:端口号范围
端口号都是整数,范围是0-65535(2^16-1)。
三:端口端口号分类
1.公认端口(0-1023):
它们紧密绑定于一些服务。通常这些端口的通讯明确表明了某种服务的协议。例如:https默认的443端口,http默认端口是80,
2.注册端口(1024-49151):
它们松散地绑定于一些服务。也就是说有许多服务绑定于这些端口,这些端口同样用于许多其它目的。例如:oracel数据库默认1521端口,MySQL默认3306端口等
3.动态和/或私有端口(49152-65535):
理论上,不应为服务分配这些端口。实际上,机器通常从1024起分配动态端口。
四:端口操作案例
Linux下MySQL端口号操作为例:
1、登录mysql
[root@Mysql8 ~]# mysql -uroot -p
Enter password: 输入数据库密码;
2、查看端口号
mysql> show global variables like 'port';
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| port | 3306 |
+---------------+-------+
1 row in set (0.00 sec)
-->3306即为端口号。
3.重定向端口号
[root@Mysql8 ~]# vi /etc/my.cnf
添加port=3308;
4.重启生效
[root@Mysql8 ~]# /etc/init.d/mysqld restart
注:部分内容参考网络资源!