- Có cách nào để hiển thị ip nguồn là 10.8.0.2 (ip máy khách wireguard) không?
Bạn cũng có thể có một quy tắc iptables đang chạy trong vùng chứa giống như sau:
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
Đó là những gì đang thay đổi IP nguồn của các kết nối được chuyển tiếp qua bộ chứa WireGuard. Với cách tiếp cận hiện tại của bạn, để tránh sử dụng quy tắc này, bạn phải điều chỉnh định tuyến trong từng bộ chứa khác để sử dụng bộ chứa WireGuard làm cổng vào máy khách WireGuard từ xa.
- Điều này có đặt ra bất kỳ rủi ro bảo mật nào không?
Máy khách WireGuard từ xa có thể truy cập bất kỳ dịch vụ mạng nào mà bộ chứa WireGuard có thể truy cập.
- Có cách nào tốt hơn để làm điều này?
Giải pháp thay thế đơn giản nhất là khởi chạy các bộ chứa khác vào không gian tên mạng riêng của bộ chứa WireGuard, như sau:
Đầu tiên, khởi chạy bộ chứa WireGuard với một tên, chẳng hạn như my-wg-container
:
sudo docker chạy \
--cap-thêm NET_ADMIN \
--name my-wg-container \
--xuất bản 51820:51820/udp \
--rm \
--volume /srv/my-wg-container/conf:/etc/wireguard \
procustodibus / dây bảo vệ
Sau đó, khởi chạy các bộ chứa khác vào không gian tên mạng của bộ chứa WireGuard, với --bộ chứa mạng: my-wg-container
Tùy chọn:
sudo docker chạy \
--name my-web-server \
--bộ chứa mạng: my-wg-container \
--rm \
nginx
Nếu bộ chứa WireGuard đang sử dụng 10.8.0.1
đối với địa chỉ của giao diện WireGuard của nó (như trong ví dụ của bạn), bạn có thể truy cập máy chủ web đang chạy trong my-web-server
thùng chứa tại http://10.8.0.1/
từ máy khách WireGuard từ xa. xem Sử dụng cho mạng container phần này Hướng dẫn bộ chứa WireGuard cho một ví dụ hoàn chỉnh.
Với cách tiếp cận này, bạn không phải làm bất cứ điều gì đặc biệt với các bộ chứa khác (ngoài việc gắn chúng vào bộ chứa WireGuard) và máy khách WireGuard từ xa chỉ có thể truy cập các dịch vụ trong các bộ chứa được đính kèm (thay vì bất kỳ dịch vụ mạng nào khác có thể truy cập vào hộp chứa WireGuard).