一、端口是什么
端口分为物理端口和虚拟端口(逻辑端口)。
物理端口是用于连接物理设备之间的接口,如路由器上用于连接其他网络设备的接口。
虚拟端口是操作系统为网络通信分配的虚拟通道。端口是通过端口号来标记的,端口号范围是从0到65535。
1. 虚拟端口的类型
1.1 周知端口
周知端口,也称为公认端口或常用端口,范围是0到1023。周知端口通常与互联网的基础服务绑定,如80端口用于HTTP网页服务,21端口用于FTP文件传输。
1.2 注册端口
注册端口的范围是1024到49151。注册端口通常与应用程序或用户进程绑定,如3306端口用于MySQL数据库服务 。
1.3 动态端口
动态端口,也称为私有端口或短暂端口,范围是49152到65535。动态端口一般不固定分配给任何特定服务。其主要用于两个方面:程序的临时连接请求或一些私有或非标准服务。
二、修改默认端口的原因
1. 规避自动化攻击
黑客会使用自动化工具持续扫描互联网上开放端口的设备,尝试暴力破解或利用已知漏洞入侵。修改端口后,攻击者无法通过默认端口快速定位目标,从而发起攻击。
2. 增加攻击成本
攻击者通常先进行端口扫描,快速检测目标服务器的开放端口。如果服务在默认端口上运行,攻击者识别后可以立刻开始攻击。
修改默认端口后,攻击者的快速扫描策略就会失效,需要启动全端口扫描。全端口扫描需要依次检查所有的端口(65536个),其耗时比快速扫描高出数个数量级,显著提高了攻击的复杂度和时间成本。
3. 避免端口冲突
不同的网络服务可能使用相同的默认端口,导致产生端口冲突。端口冲突会导致服务无法正常运行,从而影响系统的稳定性和可用性。
三、常用的默认端口
端口范围
8888:宝塔面板访问端口(建议修改)
22:SSH远程连接端口(建议修改)
80:网站HTTP服务端口(通常默认)
443:网站HTTPS服务端口(通常默认)
3306:MySQL数据库端口(建议限制访问)
888:phpMyAdmin工具端口(建议修改)
21:FTP服务端口(通常不启用)
四、端口修改步骤
1. 查看放行的端口
1.1 通过指令进行查看
使用SSH工具远程连接服务器,执行以下命令,查看使用的端口
ss -tuln
1.2 通过服务器面板进行查看
阿里云的服务器面板用于管理外网访问权限。
在服务器防火墙/安全组中查看其规则列表中的端口,具体操作请查看服务器提供商的官方文档。
1.3 通过宝塔面板进行查看
宝塔面板用于查看服务器本地状态。
在宝塔面板的安全>系统防火墙中选择入站选项,查看其端口信息。
2. 端口修改方法
端口修改的原则是先添新,再改服务,后删旧。
先在服务器防火墙/安全组为新端口添加规则,然后在宝塔面板修改端口设置,最后再禁用/删除旧的端口规则。
2.1 修改SSH远程服务端口
在服务器防火墙/安全组的规则列表中选择添加规则
应用类型选择自定义
协议选择TCP
端口范围在1024到65535中自定义
来源IP默认0.0.0.0/0或填写单个IP地址
在宝塔面板的安全>系统防火墙中选择添加端口规则
协议默认TCP
端口输入自定义的端口号
来源默认所有IP
策略默认放行
方向默认入站
在安全面板中选择SSH管理页面,修改SSH端口,输入之前自定义的端口号。
使用SSH工具远程连接服务器,修改当前登录端口。
确认新端口可用后,禁用服务器和宝塔面板中原来的SSH远程服务端口。
2.2 修改宝塔面板访问端口
在服务器防火墙/安全组的规则列表中选择添加规则
应用类型选择自定义
协议选择TCP
端口范围在8888到65535中自定义
来源IP默认0.0.0.0/0或填写单个IP地址
在宝塔面板的安全>系统防火墙中选择添加端口规则
协议默认TCP
端口输入自定义的端口号
来源默认所有IP
策略默认放行
方向默认入站
在宝塔面板中选择面板设置>安全设置,修改面板端口,输入之前自定义的端口号。
在浏览器中使用宝塔面板的新网址进行访问。
确认新网址可用后,禁用服务器和宝塔面板中原来的宝塔面板访问端口。