Wireguard를 통해 연결되었을 때 인터넷에 액세스할 수 있는 클라이언트가 필요하고, 인터넷이 아닌 삼바에 액세스하기 위해 로컬 네트워크만 볼 수 있는 클라이언트도 필요합니다. Centos
인터넷에서 가져온 표준 설정이 있습니다.
wg0.conf
[Interface]
Address = 10.8.0.1/24
PrivateKey = SERVER_PRIVATE_KEY
ListenPort = 35053
[Peer]
PublicKey = CLIENT_PUBLIC_KEY
AllowedIPs = 10.8.0.2/32
Wireguard에 연결된 클라이언트가 인터넷에 액세스할 수 있도록 다음을 수행합니다.
vim /etc/sysctl.conf
net.ipv4.ip_forward = 1
sysctl -p
firewall-cmd --permanent --zone=public --add-port=35053/udp
firewall-cmd --permanent --zone=public --add-masquerade
firewall-cmd --reload
클라이언트에 추가했는데 모든 것이 잘 작동합니다. 서버에 연결하면 클라이언트에 인터넷이 있고 서버의 로컬 네트워크와 삼바에도 액세스할 수 있습니다.
client.conf
[Interface]
PrivateKey = CLIENT+PRIVATE_KEY
Address = 10.8.0.2/24
DNS = 1.1.1.1
[Peer]
PublicKey = SERVER_PUBLIC_KEY
AllowedIPs = 0.0.0.0/0
Endpoint = SERVER_IP:35053
PersistentKeepalive = 20
가장 무도회를 통해 로컬 네트워크와 삼바에는 액세스할 수 있지만 인터넷에는 액세스할 수 없도록 다른 클라이언트를 추가하려면 어떻게 해야 합니까?
wg2
로컬 네트워크에서만 작동하는 또 다른 Wireguard 인터페이스를 추가해 보았습니다 . public zone
이미 위장이 있고 에 적용되고 있기 때문에 작동하지 않습니다 wg2
. 다른 외부 IP를 구입하면 작동할 수 있지만 다른 솔루션이 있을까요?
답변1
여기를 살펴보세요:https://unix.stackexchange.com/a/714015/537971
기본적으로 서버 측에서는 LAN CIDR을 AllowedIPs = 10.8.0.2/32
다음 과 같이 추가해야 합니다 AllowedIPs = 10.8.0.2/32, 192.168.1.0/24
.
로컬 네트워크에서만 작동하는 다른 wireguard 인터페이스 wg2를 추가해 보았습니다. 공용 영역에는 이미 위장이 적용되어 있고 wg2에 적용되고 있기 때문에 작동하지 않습니다.
두 번째 Wireguard 인스턴스는 다른 CIDR을 가져야 하며 10.9.0.0/24
iptables와 같은 하나의 CIDR 및 인터페이스에 대해서만 매스커레이딩을 구성해야 합니다.
iptables -t nat -A POSTROUTING -s 10.0.0.0/24 -j MASQUERADE
또는 iptables -t nat -A POSTROUTING -i wg0 -o eth0 -j MASQUERADE
방화벽에서 이 동작을 모방하거나 복잡한 요구 사항이 있는 설정에서 이를 제거해야 합니다.