8fe791c4b4
Add UDP forwarder pattern (copied from VPN client) to enable proper two-hop tunneling where traffic flows: Client → Entry Gateway → Exit Gateway → Internet. Key changes: - Add udp_forwarder.go for tunnel-in-tunnel traffic forwarding - Add wgPingTwoHop() Go function and Rust FFI bindings - Configure NAT/iptables in localnet for gateway routing - Remove unnecessary PSK from gateway LP registration (was breaking handshakes) - Document known container networking instability issue (nym-vbdo) The probe now correctly uses the entry tunnel to reach the exit gateway's WireGuard endpoint, rather than trying to connect directly to unreachable container-internal IPs.
55 lines
1.4 KiB
Docker
55 lines
1.4 KiB
Docker
# Single-stage Dockerfile for Nym localnet
|
|
# Builds: nym-node, nym-network-requester, nym-socks5-client
|
|
# Target: Apple Container Runtime with host networking
|
|
|
|
FROM rust:latest
|
|
|
|
WORKDIR /usr/src/nym
|
|
COPY ./ ./
|
|
|
|
ENV CARGO_BUILD_JOBS=8
|
|
|
|
# Build all required binaries in release mode
|
|
RUN cargo build --release --locked \
|
|
-p nym-node \
|
|
-p nym-network-requester \
|
|
-p nym-socks5-client
|
|
|
|
# Install runtime dependencies including Go for wireguard-go
|
|
RUN apt update && apt install -y \
|
|
python3 \
|
|
python3-pip \
|
|
netcat-openbsd \
|
|
jq \
|
|
iproute2 \
|
|
net-tools \
|
|
wireguard-tools \
|
|
golang-go \
|
|
git \
|
|
iptables \
|
|
&& rm -rf /var/lib/apt/lists/*
|
|
|
|
# Install wireguard-go (userspace WireGuard implementation)
|
|
RUN git clone https://git.zx2c4.com/wireguard-go && \
|
|
cd wireguard-go && \
|
|
make && \
|
|
cp wireguard-go /usr/local/bin/ && \
|
|
cd .. && \
|
|
rm -rf wireguard-go
|
|
|
|
# Install Python dependencies for build_topology.py
|
|
RUN pip3 install --break-system-packages base58
|
|
|
|
# Move binaries to /usr/local/bin for easy access
|
|
RUN cp target/release/nym-node /usr/local/bin/ && \
|
|
cp target/release/nym-network-requester /usr/local/bin/ && \
|
|
cp target/release/nym-socks5-client /usr/local/bin/
|
|
|
|
# Copy supporting scripts
|
|
COPY ./docker/localnet/build_topology.py /usr/local/bin/
|
|
|
|
WORKDIR /nym
|
|
|
|
# Default command
|
|
CMD ["nym-node", "--help"]
|