Wireguard가 설치된 2개의 Ubuntu 서버가 있습니다. 서버는 중개자 역할을 합니다. 따라서 클라이언트 트래픽은 중간 서버로 라우팅되고, 이 서버는 이를 다른 서버(여기서는 서버 1이라고 부르겠습니다)로 라우팅합니다. 제 경우에는 트래픽이 클라이언트에서 중간 서버로 완전히 라우팅된 다음 서버 1로 라우팅되었습니다. 하지만 중간 서버로 다시 라우팅되지 않으므로 Wireguard가 연결되면 인터넷이 없습니다. 서버 1의 출력은 wg show
다음과 같습니다.
interface: wg0
public key: Public-Key
private key: (hidden)
listening port: 51880
peer: Public_key
endpoint: [middle server ip:port]
allowed ips: 10.0.0.0/24
latest handshake: 1 minute, 21 seconds ago
transfer: 7.34 KiB received, 372 B sent
persistent keepalive: every 25 seconds
내 서버 및 클라이언트 구성은 다음과 같습니다.
서버 1 구성:
[Interface]
PrivateKey = Private-Key
Address = 10.0.0.1/24
ListenPort = 51880
MTU = 1500
PostUp = iptables -A FORWARD -i eth0 -o wg0 -j ACCEPT; iptables -A FORWARD -i wg0 -j ACCEPT; iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE; ip6tables -A FORWARD -i wg0 -j ACCEPT; ip6tables -t nat -A POSTROUTING -o eth0 -j MASQUERADE; ufw route allow in on wg0 out on eth0; ufw route allow in on eth0 out on wg0; ufw allow proto udp from any to any port 51880
PostDown = iptables -D FORWARD -i eth0 -o wg0 -j ACCEPT; iptables -D FORWARD -i wg0 -j ACCEPT; iptables -t nat -D POSTROUTING -o eth0 -j MASQUERADE; ip6tables -D FORWARD -i wg0 -j ACCEPT; ip6tables -t nat -D POSTROUTING -o eth0 -j MASQUERADE; ufw route delete allow in on wg0 out on eth0; ufw route delete allow in on eth0 out on wg0; ufw delete allow proto udp from any to any port 51880
[Peer]
PublicKey = middle server Public-Key
AllowedIPs = 10.0.0.2/24
EndPoint = [middle server ip:port]
PersistentKeepalive = 25
중간 서버 구성:
[Interface]
PrivateKey = Private-Key
Address = 10.0.0.2/24
ListenPort = 52890
Table = 123
MTU = 1500
PreUp = ip rule add iif wg0 table 123 priority 456
PostUp = iptables -A FORWARD -i eth0 -o wg0 -j ACCEPT; iptables -A FORWARD -i wg0 -j ACCEPT; iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE; ip6tables -A FORWARD -i wg0 -j ACCEPT; ip6tables -t nat -A POSTROUTING -o eth0 -j MASQUERADE; ufw route allow in on wg0 out on eth0; ufw route allow in on eth0 out on wg0; ufw allow proto udp from any to any port 52890
PostDown = iptables -D FORWARD -i eth0 -o wg0 -j ACCEPT; iptables -D FORWARD -i wg0 -j ACCEPT; iptables -t nat -D POSTROUTING -o eth0 -j MASQUERADE; ip6tables -D FORWARD -i wg0 -j ACCEPT; ip6tables -t nat -D POSTROUTING -o eth0 -j MASQUERADE; ufw route delete allow in on wg0 out on eth0; ufw route delete allow in on eth0 out on wg0; ufw delete allow proto udp from any to any port 52890; ip rule del iif wg0 table 123 priority 456
[Peer]
PublicKey = Server 1 Public-Key
AllowedIPs = 0.0.0.0/0
PersistentKeepalive = 25
[Peer]
PublicKey = Clint Public-key
AllowedIPs = 10.0.0.102/32
클라이언트 구성(Windows 클라이언트):
[Interface]
PrivateKey = Private-Key
Address = 10.0.0.102/32
DNS = 1.1.1.1, 1.0.0.1
MTU = 1480
[Peer]
PublicKey = middle server Public-Key
AllowedIPs = 0.0.0.0/1, 128.0.0.0/1
Endpoint = [Middle server ip:port]
PersistentKeepalive = 25
포트와 주소를 변경해 보았지만 성공하지 못했습니다.