← 返回導覽

隱匿防護與容器部署

Secure Containerization Guide

配置生成核心

輸入參數後,頁面中的代碼塊將自動更新。

1. 環境準備

更新系統並安裝 Docker,為容器化做好準備。

sudo apt update && sudo apt upgrade -y
sudo apt install -y curl wget gnupg apt-transport-https ca-certificates software-properties-common

# 安裝 Docker
curl -fsSL https://download.docker.com/linux/debian/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
echo "deb [arch=amd64 signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/debian $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt update
sudo apt install -y docker-ce docker-ce-cli containerd.io

# 啟動與權限
sudo systemctl enable docker && sudo systemctl start docker
sudo usermod -aG docker $USER

2. 工作目錄構建

建立結構化的目錄以管理不同容器的配置。

mkdir -p ~/docker-setup/nginx-trojan/ssl
mkdir -p ~/docker-setup/simple-app
cd ~/docker-setup

3. 容器 A: Nginx + Trojan

此容器負責處理 HTTPS 流量並隱藏 Trojan 通道。

Nginx 配置 (nginx.conf)

# 請先點擊上方生成按鈕

Trojan 配置 (trojan.json)

# 請先點擊上方生成按鈕

Dockerfile

FROM nginx:alpine

# 安裝依賴
RUN apk add --no-cache --virtual .build-deps \
    cmake boost-dev openssl-dev mariadb-connector-c-dev build-base git \
    && git clone https://github.com/trojan-gfw/trojan.git \
    && cd trojan && cmake . && make -j$(nproc) && make install \
    && cd .. && rm -rf trojan && apk del .build-deps

RUN mkdir -p /etc/ssl/certs /etc/ssl/private /etc/trojan

COPY nginx.conf /etc/nginx/conf.d/default.conf
COPY trojan.json /etc/trojan/
COPY ssl/cert.pem /etc/ssl/certs/
COPY ssl/key.pem /etc/ssl/private/
COPY index.html /usr/share/nginx/html/
COPY start.sh /start.sh

RUN chmod +x /start.sh
EXPOSE 80 443
CMD ["/start.sh"]

4. 部署與運行

構建鏡像並啟動服務。

# 1. 建立 Docker 網路
docker network create my-network

# 2. 構建鏡像
cd ~/docker-setup/nginx-trojan
docker build -t container-a .

cd ~/docker-setup/simple-app
docker build -t container-b .

# 3. 運行容器
docker run -d --name container-a --network my-network -p 80:80 -p 443:443 container-a
docker run -d --name container-b --network my-network container-b