博客 (67)

image.png

image.png

收到阿里云的短信,说明是被阿里云拦截了,并不是系统出错。

进入阿里云“云安全中心”,在“主机规则管理”临时关闭规则“操作系统账号行为”,创建用户完成后再开启。

image.png

xoyozo 8 个月前
939

云服务器 ECS

云服务器 ECS - 安全组

云服务器 ECS - 快照 - 自动快照策略 - 关联云盘


云监控

云监控 - 应用分组:添加对应的服务器

云监控 - 主机监控 - 主机与插件操作 - 安装/升级Agent


云安全中心

云安全中心 - 漏洞管理 - 漏洞管理设置根据操作系统勾选对应的 ECS

云安全中心 - 漏洞管理一键扫描

云安全中心 - 防勒索:安装客户端并配置策略资产

云安全中心 - 主机规则管理配置主机和防御策略,防暴力破解编辑策略


* 本文提及的部分功能可能需要付费


相关内容

如何搭建一台阿里云 ECS(Alibaba Cloud Linux / CentOS)

如何搭建一台阿里云 ECS(Windows Server)

xoyozo 9 个月前
1,084

宝塔面板中-安全-系统防火墙 功能非常丰富,特别是“地区规则”用来屏蔽来自国外的请求非常有用,那些通过 URL 来找网站漏洞的恶意请求大多来自国外。但是添加规则经常无反应

image.png

于是找到这个功能对应的配置文件:/etc/firewalld/zones/public.xml

<?xml version="1.0" encoding="utf-8"?>
<zone>
  <short>Public</short>
  <description>For use in public areas. You do not trust the other computers on networks to not harm your computer. Only selected incoming connections are accepted.</description>
  <service name="ssh"/>
  <service name="dhcpv6-client"/>
  <port protocol="tcp" port="80"/>
  <port protocol="tcp" port="443"/>
  <masquerade/>
  <rule family="ipv4">
    <source address="43.131.232.135"/>
    <drop/>
  </rule>
  <rule family="ipv4">
    <source address="103.150.11.45"/>
    <drop/>
  </rule>
  <rule>
    <source ipset="US"/>
    <drop/>
  </rule>
  <rule>
    <source ipset="GB"/>
    <drop/>
  </rule>
</zone>

修改完成后重启防火墙。

但是看到的效果好像并不一致,甚至有时候服务器重启后防火墙是关闭的,但是有时候又是生效的。

关键的问题是CPU占用异常高。

反正宝塔的系统防火墙功能挺好挺强大,但是用起来不稳定不顺手,有些暴殄天物了。

相关阅读:

系统防火墙添加规则转圈卡死

2024年8月30日补充 :宝塔面板中配置禁用IP等规则时,提示保存成功或未提醒是否成功,但效果是未成功。其实在宝塔自己的配置里已经记录了(包含备注),但在系统防火墙配置文件中未更改成功,手动修改系统防火墙配置文件就能完全修改成功。(系统防火墙配置文件中没有备注信息,根据IP地址等规则与宝塔自己的配置文件里的记录关联后,在宝塔面板安全模块中展示出来就有备注了。)

2024年8月30日下午补充:在宝塔的软件商店找到这个应用,看到红色的说明,啥都明白了:

image.png

于是果断关闭了系统防火墙,开始研究其它替代方案。

xoyozo 9 个月前
737

驾驶自动化等级与划分要素的关系

分级名称车辆横向和纵向运动控制目标和事件探测与响应动态驾驶任务接管设计运行条件
0 级应急辅助驾驶员驾驶员及系统驾驶员有限制
1 级部分驾驶辅助驾驶员和系统驾驶员及系统驾驶员有限制
2 级组合驾驶辅助系统驾驶员及系统驾驶员有限制
3 级有条件自动驾驶系统系统动态驾驶任务接管用户(接管后成为驾驶员)有限制
4 级高度自动驾驶系统系统系统有限制
5 级完全自动驾驶系统系统系统无限制*
* 排除商业和法规因素等限制。

摘自:《汽车驾驶自动化分级》(GB/T 40429-2021)


部分车企驾驶安全与辅助、智能领航和泊车辅助系统简介

问界

        新M5 全系搭载华为高阶智能驾驶系统,包含智驾领航辅助(NCA)、车道巡航辅助(LCC)、车道巡航辅助增强(LCC Plus)、全向防碰撞系统(CAS)、智能泊车辅助(APA)、遥控泊车辅助(RPA)、代客泊车辅助(AVP)、哨兵模式等功能。部分高阶智驾功能需付费开通,如城区智驾领航辅助(City NCA)、城区车道巡航辅助增强(City LCC Plus)、代客泊车辅助(AVP)等。

参考:问界 M5 华为高阶智能驾驶系统


阿维塔

驾驶安全与辅助:

        前向碰撞预警(FCW)、自动紧急制动(AEB)、异形障碍物自动紧急制动(GAEB)、低速自动紧急制动(LAEB)、前向横穿碰撞预警(FCTA)、前向横穿碰撞制动(FCTB)、后向碰撞预警(RCW)、后向横穿碰撞预警(RCTA)、后向横穿碰撞制动(RCTB)、后向自动紧急制动(RAEB)、交通标志识别(TSR)、交通信号灯识别(TLR)、超速告警(TSA)、开门预警(DOW)、车道偏离预警(LDW)、盲区监测预警(BSD)、车道保持辅助(LKA)、紧急车道保持辅助(ELKA)、侧向障碍物防碰撞(LOCP)、自适应巡航辅助(ACC)、高速车道巡航辅助 (Highway LCC)

智能领航系统:

        高速智驾领航辅助 (Highway NCA)、城区车道巡航辅助 (City LCC)、城区智驾领航辅助 (City NCA)

智能泊车辅助系统:

        智能泊车辅助(APA)、遥控泊车辅助(RPA)、代客泊车辅助(AVP)

其中,ADS高阶功能包需付费购买,包含城区智驾领航辅助 (City NCA)与代客泊车辅助(AVP)。

参考:阿维塔 12 参数配置表


蔚来

智能驾驶-安全辅助:

        前向碰撞预警 (FCW)、自动紧急制动 (AEB)、车辆盲区监测 (BSD)、变道盲区预警 (LCA)、侧方开门预警 (DOW)、后方穿行预警带制动 (RCTA-B)、前方穿行预警带制动 (FCTA-B)、车道偏离预警 (LDW)、车道保持辅助 (LKA)、紧急主动停车(EAS)、紧急车道保持 (ELK)、全场景误加速抑制辅助 (MAI+)、增强型驾驶员感知系统 (ADMS)、通用障碍物预警及辅助 (GOA)、增强型自动紧急转向 (AES)

智能驾驶-泊车辅助:

        视觉融合泊车辅助 (S-APA with Fusion)、换电站泊车辅助 (PSAP)、车辆近距召唤 (NBS)、遥控泊车辅助 (RPA)

智能驾驶-辅助驾驶:

        车道居中辅助 (LCC)、转向灯控制变道 (ALC)、智能自适应巡航 (i-ACC)、道路标识识别 (TSR)、动态环境模拟显示 (ESD)、视觉融合起步提醒 (AGN)

蔚来智能驾驶NAD服务:

        智能驾驶NAD服务(覆盖部分城区道路、封闭高速道路的智能驾驶体验)、低速及泊车智能驾驶NAD服务(支持领航泊车、智能召唤等功能体验)、全域领航辅助 (NOP+)(支持高速、城市快速路、城区道路、高速服务区领航换电等体验)

参考:NIO ES6 详细配置表


小米

Xiaomi Pilot Pro:高速领航辅助(NOA)、智能泊车辅助(APA)、车道居中辅助(LCC)、代客泊车辅助(AVP)

Xiaomi Pilot Max:城市领航辅助(NOA)

参考:小米智能驾驶 Xiaomi Pilot


特斯拉

基本版 Autopilot 自动辅助驾驶:

        主动巡航控制、自动辅助转向

增强版 Autopilot 自动辅助驾驶:

        自动变道、自动辅助导航驾驶、自动泊车、召唤功能、智能召唤功能

完全自动驾驶功能 FSDFull-Self Driving(简称“FSD”)

        交通信号灯和停车标志控制、在城市街道自动辅助转向等。2024年3月31日,特斯拉向美国部分用户推送FSD V12(Supervised)版本。

参考:Model 3 车主手册 Autopilot 自动辅助驾驶

xoyozo 1 年前
2,680
  1. 购买 ECS

  2. 解析域名(非网站域名)、修改实例名称、主机名

  3. 设置阿里云(重要)

  4. 远程连接进入 ECS(若解析未生效可以先用 IP)(若新服默认使用 22 端口,可在阿里云控制台登录系统,或先在安全组临时放行 22 端口)

  5. 修复系统漏洞

  6. 将磁盘挂载到目录(fdisk、df 命令参考:https://xoyozo.net/Blog/Details/SSH

  7. 安装宝塔面板(本文以宝塔面板方案为例,选择任何你喜欢的环境部署方案都行)。可以在阿里云控制台ECS实例页安装扩展程序

  8. 临时放行宝塔面板端口,进入宝塔面板(http方式),或用命令更改宝塔面板端口

  9. 配置面板 SSH、添加新的安全端口、面板设置

  10. 更改 SSH 默认端口(参:https://xoyozo.net/Blog/Details/change-default-port

  11. 安装 nginx、PHP 等

  12. 配置 PHP 扩展(Redis、sqlsrv(注意选择兼容的版本)、memcached 及端口)

  13. 创建网站,配置网站(路径、伪静态等)

  14. 迁移网站文件(参:https://xoyozo.net/Blog/Details/SSH

  15. 仔细对比新旧网站的配置文件(特别是 .php 的访问权限,参:https://xoyozo.net/Blog/Details/nginx-location-if

  16. 设置写入目录(使用 rsync 同步的文件会同步用户和权限)

  17. 解析域名(先改 hosts 测试网站功能)

  18. 更改内网其它 ECS 上的 hosts

  19. 关闭原 ECS(能马上发现问题,不然等运行一段时间才发现问题就麻烦点)

  20. 设置 FTP

  21. 迁移“计划任务”

  22. 所有网站和软件的配置文件都要使用 WinMerge 进行对比

  23. 移除“宝塔面板-安全”和“阿里云-ECS-安全组”中不用的端口

  24. 再次检查阿里云设置

  25. 私网中若有 ECS 的 hosts 中域名直接绑定到私网 IP 的,做相应更改

  26. 其它:ERP添加到期提醒、WAF增加ECS、备份工具增加ECS


更多文章:

从零搭建一台阿里云 ECS(Windows Server)并迁移网站

xoyozo 1 年前
2,292

推荐使用 SignalR 来平替 WebSocket,参考教程


【服务端(.NET)】

一、创建 WebSocketHandler 类,用于处理客户端发送过来的消息,并分发到其它客户端

public class WebSocketHandler
{
    private static List<WebSocket> connectedClients = [];

    public static async Task Handle(WebSocket webSocket)
    {
        connectedClients.Add(webSocket);

        byte[] buffer = new byte[1024];
        WebSocketReceiveResult result = await webSocket.ReceiveAsync(new ArraySegment<byte>(buffer), CancellationToken.None);
        while (!result.CloseStatus.HasValue)
        {
            string message = Encoding.UTF8.GetString(buffer, 0, result.Count);
            Console.WriteLine($"Received message: {message}");

            // 处理接收到的消息,例如广播给其他客户端
            await BroadcastMessage(message, webSocket);

            result = await webSocket.ReceiveAsync(new ArraySegment<byte>(buffer), CancellationToken.None);
        }

        connectedClients.Remove(webSocket);
        await webSocket.CloseAsync(result.CloseStatus.Value, result.CloseStatusDescription, CancellationToken.None);
    }

    private static async Task BroadcastMessage(string message, WebSocket sender)
    {
        foreach (var client in connectedClients)
        {
            if (client != sender && client.State == WebSocketState.Open)
            {
                await client.SendAsync(Encoding.UTF8.GetBytes(message), WebSocketMessageType.Text, true, CancellationToken.None);
            }
        }
    }
}

二、在 Program.cs 或 Startup.cs 中插入:

// 添加 WebSocket 路由
app.UseWebSockets();
app.Use(async (context, next) =>
{
    if (context.Request.Path == "/chat")
    {
        if (context.WebSockets.IsWebSocketRequest)
        {
            WebSocket webSocket = await context.WebSockets.AcceptWebSocketAsync();
            await WebSocketHandler.Handle(webSocket);
        }
        else
        {
            context.Response.StatusCode = 400;
        }
    }
    else
    {
        await next();
    }
});

这里的路由路径可以更改,此处将会创建一个 WebSocket 连接,并将其传递给 WebSocketHandler.Handle 方法进行处理。

也可以用控制器来接收 WebSocket 消息。


【客户端(JS)】

<!DOCTYPE html>
<html>
<head>
    <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=0" />
    <title>WebSocket 示例(JS + ASP.NET)</title>
    <style>
        #list { width: 100%; max-width: 500px; }
        .tip { color: red; }
    </style>
</head>
<body>
    <h2>WebSocket 示例(JS + ASP.NET)</h2>
    <textarea id="list" readonly rows="20"></textarea>
    <div>
        <input type="text" id="msg" />
        <button onclick="fn_send()">发送</button>
        <button onclick="fn_disconnect()">断开</button>
    </div>
    <p id="tip_required">请输入要发送的内容</p>
    <p id="tip_closed">WebSocket 连接未建立</p>

    <script>
        var wsUrl = "wss://" + window.location.hostname + ":" + window.location.port + "/chat";
        var webSocket;
        var domList = document.getElementById('list');

        // 初始化 WebSocket 并连接
        function fn_ConnectWebSocket() {
            webSocket = new WebSocket(wsUrl);

            // 向服务端发送连接请求
            webSocket.onopen = function (event) {
                var content = domList.value;
                content += "[ WebSocket 连接已建立 ]" + '\r\n';
                domList.innerHTML = content;

                document.getElementById('tip_closed').style.display = 'none';

                webSocket.send(JSON.stringify({
                    msg: 'Hello'
                }));
            };

            // 接收服务端发送的消息
            webSocket.onmessage = function (event) {
                if (event.data) {
                    var content = domList.value;
                    content += event.data + '\r\n';
                    domList.innerHTML = content;
                    domList.scrollTop = domList.scrollHeight;
                }
            };

            // 各种情况导致的连接关闭或失败
            webSocket.onclose = function (event) {
                var content = domList.value;
                content += "[ WebSocket 连接已关闭,3 秒后自动重连 ]" + '\r\n';
                domList.innerHTML = content;

                document.getElementById('tip_closed').style.display = 'block';

                setTimeout(function () {
                    var content = domList.value;
                    content += "[ 正在重连... ]" + '\r\n';
                    domList.innerHTML = content;
                    fn_ConnectWebSocket();
                }, 3000); // 3 秒后重连
            };
        }

        // 检查连接状态
        function fn_IsWebSocketConnected() {
            if (webSocket.readyState === WebSocket.OPEN) {
                document.getElementById('tip_closed').style.display = 'none';
                return true;
            } else {
                document.getElementById('tip_closed').style.display = 'block';
                return false;
            }
        }

        // 发送内容
        function fn_send() {
            if (fn_IsWebSocketConnected()) {
                var message = document.getElementById('msg').value;
                document.getElementById('tip_required').style.display = message ? 'none' : 'block';
                if (message) {
                    webSocket.send(JSON.stringify({
                        msg: message
                    }));
                }
            }
        }

        // 断开连接
        function fn_disconnect() {
            if (fn_IsWebSocketConnected()) {
                // 部分浏览器调用 close() 方法关闭 WebSocket 时不支持传参
                // webSocket.close(001, "Reason");
                webSocket.close();
            }
        }

        // 执行连接
        fn_ConnectWebSocket();
    </script>
</body>
</html>


【在线示例】

https://xoyozo.net/Demo/JsNetWebSocket


【其它】

  • 服务端以 IIS 作为 Web 服务器,那么需要安装 WebSocket 协议

  • 一个连接对应一个客户端(即 JS 中的 WebSocket 对象),注意与会话 Session 的区别

  • 在实际项目中使用应考虑兼容性问题

  • 程序设计应避免 XSS、CSRF 等安全隐患

  • 参考文档:https://learn.microsoft.com/zh-cn/aspnet/core/fundamentals/websockets

xoyozo 1 年前
1,222

客户端:Failed to connect to host.

服务端:无任何日志

原因:可能是域名、IP 或端口有误,或端口未开放。


客户端/服务端:530 Login incorrect.

原因:用户名或密码错误。


客户端/服务端503 Use AUTH first.

原因:服务端开启了 FTPS 协议(FTP over TLS),且禁止了 FTP 协议(plain FTP)。

解决方法:不建议服务端恢复不安全的 FTP 协议,客户端应配置 client.Config 的 EncryptionMode、DataConnectionEncryption、SslProtocols、ValidateCertificate 等参数。


客户端/服务端:530 This server does not allow plain FTP. You have to use FTP over TLS.

原因:服务端启用了 FTPS。

解决方法:给 client.Config.EncryptionMode 正确的赋值(FtpEncryptionMode.Explicit 或 FtpEncryptionMode.Auto)。


服务端:[Error] TLS session of data connection not resumed.

原因:证书版本有误。

解决方法:给 client.Config.SslProtocols 赋值正确的 TLS 版本。


服务端:521 PROT P required

原因:服务端开启了Require TLS session resumption on data connection when using PROT P”

解决方法:client.Config.DataConnectionEncryption = true;


客户端/服务端450 TLS session of data connection has not resumed or the session does not match the control connection

原因:TLS 与控制连接不匹配,即服务端开启了“Require TLS session resumption on data connection when using PROT P”

解决方法:我暂时还不知道原因,临时关闭了Require TLS session resumption on data connection when using PROT P”(不建议)。该问题出现在 FileZilla Server 0.x 版本,在 1.x 版本中没有该配置选项。

xoyozo 2 年前
2,944

使用远程桌面连接时提示你的凭据不工作:

image.png


解决方法一:关闭 Windows Defender Credential Guard

  1. 打开组策略编辑器(gpedit.msc)

  2. 展开:计算机配置 - 管理模板 - 系统 - Device Guard,双击右侧的“打开基于虚拟化的安全”,改为“已禁用”

  3. 重启电脑


解决方法二【推荐】:使用其他远程桌面客户端

在 Microsoft Store 中查找“Microsoft 远程桌面”,或者点此安装


这个应用同样来自微软,使用方式与传统的远程桌面连接略有区别,如果你在 iPhone 或安卓上使用过,那么就能快速上手。

若要共享剪贴板,在“编辑电脑”中开启,并且在 设置 - 隐私与安全 - 文件系统 中允许“远程桌面”。

相对于传统的远程桌面连接,对高 DPI 兼容性不完美。


xoyozo 2 年前
2,233
  1. 购买 ECS

  2. 解析域名(非网站域名)挂载磁盘(若有另购)、修改实例名称、主机名

  3. 设置阿里云(重要)

  4. 远程连接进入 ECS(若解析未生效可以先用 IP)(若新服默认使用 3389 端口,可先在安全组临时放行 3389 端口)

  5. 开启 Windows 防火墙(使用推荐设置)

  6. Windows 更新、并在高级选项中开启(更新 Windows 时接收其它 Microsoft 产品的更新)

  7. 安装 IIS:服务器管理器-添加角色和功能-勾选“Web 服务器(IIS)”包括管理工具

    建议勾选:

    默认已勾选项

    按需安装 IP 和域限制

    常见 HTTP 功能(不建议安装 WebDAV 发布

    跟踪(即“失败请求跟踪”)

    请求监视器、日志记录工具、

    按需安装 ASP

    按需安装 ASP.NET 4.8(会同时勾选 .NET Extensibility 4.8、ISAPI 扩展、ISAPI 筛选器)

    按需安装 WebSocket 协议

    应用程序初始化(建议安装)

    管理服务(用于 Web 部署)

  8. 细节:设置任务栏;设置桌面图标;个性化-颜色-勾选“标题栏和窗口边框”;设置输入法;

  9. 更改远程桌面端口

  10. 按需安装:

    下载 URL 重写(文件名:rewrite_amd64_zh-CN.msi)

    下载 MySQL Connector/NET(文件名:mysql-connector-net-8.0.19.msi)

    下载 ASP.NET Core 运行时 Hosting Bundle(文件名:dotnet-hosting-*.*.*-win.exe)

    下载 .NET 桌面运行时 Windows x64(文件名:windowsdesktop-runtime-*.*.*-win-x64.exe)

    下载 Web Deploy(文件名:WebDeploy_amd64_zh-CN.msi)

  11. 服务:设置“ASP.NET State Service”自动启动

  12. IIS 日志:路径(如 D:\wwwlogs),每小时(统一设置一个全局的就行了,不需要设置每个网站),按需勾选“使用本地时间进行文件命名和滚动更新”

  13. IIS 导入证书:个人、允许导出证书。

  14. 设置默认网站的 https

  15. 设置权限:设置网站所在分区(如 D 盘),安全,添加 IIS_IUSRS,全部拒绝(防止跨站)

  16. 添加用户:为每个网站创建用户(既能防止跨站,又能跟踪进程),密码不能改、不过期,仅隶属于 IIS_IUSRS,并添加到每个网站的根目录,若用户创建失败看这里

  17. 创建网站:设置访问物理路径的用户;设置应用程序池的“标识”用户;编辑绑定:勾选需要服务器名称指示;检查域名是否绑全;设置写入目录;

  18. 重复上面两步

  19. 检查所有网站用户是否仅隶属于 IIS_IUSRS(在“组”页面双击 Users 和 IIS_IUSRS 查看成员)

  20. 在应用程序池列表页面检查 CLR 版本、管托管道模式和标识;在网站列表页面检查绑定和路径

  21. 设置 Web 部署

  22. 设置“IP 地址和域限制”

  23. 废弃旧服时再次检查:IIS 中各功能设置、hosts、安装的应用程序、启动项、服务、防火墙等

  24. 更改默认端口

  25. 解析各网站域名

  26. 其它:资源管理器-查看-选项-查看-去掉“始终显示图标,从不显示缩略图”前的勾

  27. 再次检查阿里云设置

  28. 私网中若有 ECS 的 hosts 中域名直接绑定到私网 IP 的,做相应更改

  29. 在备份工具中添加该服务器的所有备份项

  30. 其它:到期日期提醒、


>> 关于域名解析

因各地域名解析生效时间不可控,一般国内域名 1 天内,国际域名 2 天内。

  • 若网站数据库在 RDS、上传文件在 OSS,则解析 48 小时后直接停止原网站即可;(比较理想的)

  • 文件上传到 ECS 的可使用 FTP 等工具定时同步文件,或直接停止原网站。(网友会遇到新文章中图片无法显示等问题)

  • 还有一种方法是新网站提前解析一个备用域名,确保完全生效后再修改正式域名的解析,原网站无条件跳转到备用域名,如果数据库中有保存完整网址路径的,关闭原网站并解绑备用域名之后,进行批量替换。(缺点是可能会影响在搜索引擎的网站权重)

  • 部分有定时器的网站要注意,如果两个网站的定时器都正常开启会导致意外的,需要停止其中一个网站的定时器。

当然每种方法都有优缺点,选择可以接受且方便的一种即可。


更多文章:

从零搭建一台阿里云 ECS(Alibaba Cloud Linux / CentOS / Linux)并迁移网站

xoyozo 2 年前
3,642

默认端口带来安全隐患,建议更改为 50000-60000 之间的端口号。


Windows 远程桌面(RDP)(3389)

  1. 在 Windows 防火墙中放行新端口:在“入站规则”中找到“Open RDP Port 3389”复制并粘贴该规则,修改端口和名称。

    若没有这个规则:新建规则 - 端口 - TCP - 特定本地端口(填写新的端口号)- 允许连接 - 名称

  2. 如有其它防火墙或安全组也一并配置(如阿里云 ECS 的安全组)

  3. 打开注册表(regedit),展开到:HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp,右侧双击“PortNumber”切换到“十进制”,将 3389 改为新端口号

  4. 重启生效

  5. 在防火墙和安全组中禁止原默认端口


SSH (22) 之 CentOS

  1. 从阿里云控制台登录服务器(如果未设置 root 密码则先设置),直接跳到第 4 步

  2. 在外部防火墙中放行新的端口号(如阿里云 ECS 的安全组)

  3. 在内部防火墙中放行新的端口号(如 firewalld 或 iptables),使用宝塔面板的直接在面板“安全”页面设置即可

  4. 打开 SSH 配置文件

    sudo vi /etc/ssh/sshd_config
  5. 找到并编辑 Port 行的商品号并启用

    #Port 22
  6. 重新加载使生效

    sudo systemctl reload sshd
  7. 在防火墙和安全组中禁止原默认端口

  8. 建议使用 SSH 密钥对代替传统账号密码登录


FTP (21) 之 FileZilla Server Windows 版

  1. 一般地,在 Windows Defender 防火墙中是以添加应用 filezilla-server.exe 的方式允许的,所以不需要更改端口。如果以端口方式允许的,那么在入站规则中允许新的端口。

  2. 如有其它防火墙或安全组也一并配置(如阿里云 ECS 的安全组)

  3. 打开 Administer FileZilla Server,打开菜单 - Server - Configure - Server listeners,右侧窗口中将 Port 改为新端口(强烈建议将 Protocol 改为“Require explicit FTP over TLS”,即禁止 FTP 协议,改为使用 FTPS 协议)

  4. 从防火墙和安全组移除 21 端口


FTP (21) 之 Pure-Ftpd(宝塔面板)

  1. 在防火墙中放行新的端口号(如阿里云 ECS 的安全组)

  2. 进入宝塔面板,打开“安全”,添加端口规则 TCP

  3. 在宝塔面板中进入软件商店,找到 Pure-Ftpd 并打开,切换到“配置修改”,搜索“Bind”,删除开头的“#”,将端口号 21 改为新端口号,保存(强烈建议将 TLS 项改为 2,即禁止 FTP 协议,仅允许 FTPS 协议)

  4. 切换到“服务”选项卡,点击“重启”

  5. 从防火墙和安全组移除 21 端口


MySQL (3306) 之阿里云云数据库 RDS MySQL 版

  1. 打开控制台 RDS 实例页,左侧菜单点击“白名单与安全组”,切换到“安全组”查看正在使用的安全组ID

  2. (若使用了安全组)打开控制台 ECS 首页,左侧菜单点击“安全组”,找到这个安全组,放行新的端口

  3. 打开控制台 RDS 实例页,左侧菜单点击“数据库连接”,点击“修改连接地址”,在弹出框中修改端口

  4. 从防火墙和安全组移除端口(确保没有其它实例正在使用此端口)


PolarDB (3306)

  1. 打开控制台 PolarDB 集群实例页,左侧菜单点击“集群白名单”,切换到“安全组”查看正在使用的安全组ID

  2. (若使用了安全组)打开控制台 ECS 首页,左侧菜单点击“安全组”,找到这个安全组,放行新的端口

  3. 打开控制台 PolarDB 集群实例,左侧菜单点击“基本信息”,点击“主地址”和“集群地址”的“配置”,在“网线信息”中点击“更多”更改端口

  4. 从防火墙和安全组移除端口(确保没有其它实例正在使用此端口)


MSSQL (1433) 之阿里云云数据库 RDS SQL Server 版

  1. 打开控制台 RDS 实例页,左侧菜单点击“白名单与安全组”,切换到“安全组”查看正在使用的安全组ID

  2. (若使用了安全组)打开控制台 ECS 首页,左侧菜单点击“安全组”,找到这个安全组,放行新的端口

  3. 打开控制台 RDS 实例页,左侧菜单点击“数据库连接”,点击“修改连接地址”,在弹出框中修改端口

  4. 从防火墙和安全组移除端口(确保没有其它实例正在使用此端口)


Redis (6379) 之阿里云云数据库 Redis 版

  1. 打开控制台 Redis 实例页,左侧菜单点击“白名单设置”,切换到“安全组”查看正在使用的安全组ID

  2. (若使用了安全组)打开控制台 ECS 首页,左侧菜单点击“安全组”,找到这个安全组,放行新的端口

  3. 打开控制台 Redis 实例页,在“连接信息”中点击“修改连接地址”,在弹出框中修改端口

  4. 从防火墙和安全组移除原端口(确保没有其它实例正在使用此端口)


宝塔面板 (8888)

  1. 在防火墙中放行新的端口号(如阿里云 ECS 的安全组),或直接在私网其它 ECS 上的浏览器上直接访问原 8888 端口的地址

  2. 进入宝塔面板,打开面板设置,切换到“安全设置”页,找到“面板端口”,点击“设置”

  3. 在防火墙和安全组中禁止原默认端口


IIS 管理服务(Web 部署)(8172)

  1. 在 Windows 防火墙中放行新端口:在“入站规则”中找到“Web 管理服务(HTTP 流量入站)”因其为预定义规则且复制也无法修改,所以按其设置新建一个,并指定新的端口。

  2. 如有其它防火墙或安全组也一并配置(如阿里云 ECS 的安全组)

  3. 打开 IIS 管理器 - 管理服务,右侧停止,左侧修改端口,右侧启动

  4. VS 中发布配置修改“服务器(E)”项添加端口

  5. 在防火墙和安全组中禁止原默认端口




xoyozo 2 年前
1,864