이 설정을 고려하면:
2.2.2.2: name: client
WireGuard address: 10.0.0.2
^
|
<internet>
|
v
1.1.1.1: name: gw (ISP router)
LAN address: 192.168.1.1
^
|
v
192.168.3.1: name: wg (br-lan)
WireGuard server
WireGuard address: 10.0.0.3 (wg0)
WAN address: 192.168.1.3 (wan)
클라이언트(2.2.2.2)는 모든 wg의 주소(10.0.0.3, 192.168.3.1 및 192.168.1.3)를 ping할 수 있지만 gw의 lan 주소(192.168.1.1)를 ping할 수는 없습니다.
ip route
보여주다:
default via 192.168.1.1 dev wan src 192.168.1.3 metric 1024
10.0.0.0/24 dev wg0 scope link src 10.0.0.3
10.0.0.2 dev wg0 scope link
192.168.1.0/24 dev wan scope link metric 1024
192.168.3.0/24 dev br-lan scope link src 192.168.3.1
다른 답변을 바탕으로 wg (192.168.3.1)에서 시도했습니다.
ip route add 192.168.1.0/24 via 10.0.0.3 dev wg0
이것이 작동하지 않으면 경로를 제거하고 네트워크를 다시 시작한 다음 시도했습니다.
ip route add 192.168.1.0/24 via 192.168.1.3 dev wan
이것이 작동하지 않으면 경로를 제거하고 네트워크를 다시 시작한 다음 시도했습니다.
ip route add 192.168.1.0/24 via 192.168.1.1 dev wan
하지만 행운은 없습니다. 내가 뭘 잘못하고 있는지 어떤 아이디어가 있습니까?
PS cat /proc/sys/net/ipv4/ip_forward는 "1"을 표시합니다.
답변1
당신은 어떻게 생겼 AllowedIPs
습니까 wg.conf
?
두 네트워크에 모두 액세스하려면 다음과 같이 표시되어야 합니다.
AllowedIPs = 10.0.0.2/32, 192.168.1.0/24
그런 다음 WireGuard 서버에서 ip_forward
Masquerade를 설정하고 다음 사이에 전달해야 합니다.wan
wg
iptables -t nat -A POSTROUTING -o wan -j MASQUERADE
이렇게 하면 방화벽은 이러한 패킷을 어디로 전달할지 알 수 있습니다.
예:
10.10.4.10 - Wireguard Client -> <Internet> -> 10.10.4.1 - Wireguard Server ->
10.10.4.3 - RPI2 at Home acting as a Gateway for VPN -> Hosts in Local Network
WireGuard에서 내(홈 라우터)를 핑할 수 있기를 원하므로 192.168.1.1
다음 단계를 따라야 합니다.
WireGuard 서버에서:
10.10.4.3
변경(RPI) 허용 IP는 다음과 같습니다.AllowedIPs = 10.10.4.3/32, 192.168.1.0/24
192.168.1.0/24
RPI를 통한 액세스를 위한 라우팅 규칙을 추가합니다 .ip route add 192.168.1.0/24 via 10.10.4.3 dev wg0
- WireGuard를 다시 시작하십시오.
wg setconf wg0 /etc/wireguard/wg0.conf
- 네트워크 간 전달 허용
iptables -A FORWARD -s 10.10.4.0/24 -d 192.168.1.0/24 -i wg0 -o wg0 -j ACCEPT iptables -A FORWARD -s 192.168.1.0/24 -d 10.10.4.0/24 -i wg0 -o wg0 -j ACCEPT
- 활성화 되어 있는지 확인하세요
ip_forward
.# cat /proc/sys/net/ipv4/ip_forward 1
- 매스커레이딩 활성화
iptables -t nat -A POSTROUTING -s 10.10.4.0/24 -o eth0 -j MASQUERADE
Raspberry PI(VPN 게이트웨이)
- ~할 수 있게 하다
ip_forward
echo 1 > /proc/sys/net/ipv4/ip_forward
- 매스커레이딩 활성화
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
- 네트워크 간 IP 전달 활성화
iptables -A FORWARD -s 10.10.4.0/24 -d 192.168.1.0/24 -i wg1 -o eth0 -j ACCEPT iptables -A FORWARD -s 192.168.1.0/24 -d 10.10.4.0/24 -i eth0 -o wg1 -j ACCEPT
결과(내 컴퓨터에서):
$ ping -I wg1 -c 4 192.168.1.1
PING 192.168.1.1 (192.168.1.1) from 10.10.4.10 wg1: 56(84) bytes of data.
64 bytes from 192.168.1.1: icmp_seq=1 ttl=62 time=75.5 ms
64 bytes from 192.168.1.1: icmp_seq=2 ttl=62 time=76.1 ms
64 bytes from 192.168.1.1: icmp_seq=3 ttl=62 time=74.8 ms
64 bytes from 192.168.1.1: icmp_seq=4 ttl=62 time=75.5 ms
--- 192.168.1.1 ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 3005ms
rtt min/avg/max/mdev = 74.802/75.475/76.082/0.454 ms
$ ping -c 4 192.168.1.1
PING 192.168.1.1 (192.168.1.1) 56(84) bytes of data.
64 bytes from 192.168.1.1: icmp_seq=1 ttl=64 time=0.251 ms
64 bytes from 192.168.1.1: icmp_seq=2 ttl=64 time=0.204 ms
64 bytes from 192.168.1.1: icmp_seq=3 ttl=64 time=0.211 ms
64 bytes from 192.168.1.1: icmp_seq=4 ttl=64 time=0.210 ms
--- 192.168.1.1 ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 3074ms
rtt min/avg/max/mdev = 0.204/0.219/0.251/0.018 ms
내 설정은 약간 복잡하므로 귀하의 경우 WireGuard 서버에 라우팅 규칙을 추가할 필요는 없지만 다음 사항을 확실히 확인해야 합니다.
- 방화벽 규칙은 전달을 허용합니다.
- MASQUERADE는 방화벽 규칙에 의해 활성화됩니다.
- 클라이언트 구성에서 허용된 IP는 로컬 네트워크에 대한 액세스를 허용합니다.
- 라우터가 wg 클라이언트의 ping을 차단할 가능성을 제거하려면 WireGuard 클라이언트에서 네트워크의 다른 호스트에 ping을 시도하십시오.