Bạn có thể sử dụng iptables.
Thay thế eth0
với giao diện mạng kết nối với internet và 10.6.0.1/24
với mạng con khách hàng của bạn.
Chèn cái này vào đâu đó trong cấu hình Wireguard của bạn bên dưới [GIAO DIỆN]
# Loại bỏ tất cả các gói gửi đi khỏi mạng con của máy khách
PreUp = iptables -I FORWARD -s 10.6.0.1/24 -o eth0 -j DROP
## Thêm ngoại lệ của bạn ở đây
Ví dụ:
[Giao diện]
Khóa riêng tư = ...
Địa chỉ = 10.6.0.1/24
MTU = 1420
Cổng nghe = 51820
## Trước khi giao diện wg0 hoạt động
# Loại bỏ tất cả các gói gửi đi khỏi mạng con của máy khách
PreUp = iptables -I FORWARD -s 10.6.0.1/24 -o eth0 -j DROP
# Cho phép máy khách kết nối với mạng cục bộ 192.168.0.1/24
PreUp = iptables -I FORWARD -s 10.6.0.1/24 -d 192.168.0.1/24 -j CHẤP NHẬN
# Cho phép máy khách kết nối với cổng tcp 80 (thường là http) trên 10.10.0.5
PreUp = iptables -I FORWARD -s 10.6.0.1/24 -d 10.10.0.5 -p tcp --dport 80 -j CHẤP NHẬN
## Sau khi giao diện wg0 ngừng hoạt động
PostDown = iptables -D FORWARD -s 10.6.0.1/24 -o eth0 -j DROP
PostDown = iptables -D FORWARD -s 10.6.0.1/24 -d 192.168.0.1/24 -j CHẤP NHẬN
PostDown = iptables -D FORWARD -s 10.6.0.1/24 -d 10.10.0.5 -p tcp --dport 80 -j CHẤP NHẬN
[Ngang nhau]
...
Để có trải nghiệm liền mạch về phía khách hàng, bạn cũng phải định cấu hình IP được phép
trong cấu hình của khách hàng. Nếu không, các máy khách sẽ cố gắng sử dụng VPN để truy cập internet và những yêu cầu đó sẽ hết thời gian chờ.
Theo ví dụ trên, cấu hình của máy khách có thể trông như thế này:
[Giao diện]
Khóa riêng tư = ...
Địa chỉ = 10.6.0.2/24
DNS = 10.6.0.1
[Ngang nhau]
Khóa công khai = ...
IP được phép = 192.168.0.1/24, 10.10.0.5
Điểm cuối = ...
Khóa chia sẻ trước = ...
Tài liệu: