다음 설정을 고려하십시오. 고정 IP로 인터넷에 연결된 VPS가 있습니다. 또한 NAT 라우터 뒤에 있는 홈 네트워크에 여러 호스트가 있습니다. 내 홈 네트워크는 인터넷을 사용하며 192.168.1.0/24
Host1에서는 VPS용 Wireguard VPN을 구성했습니다. 이 VPN에서 VPS는 IP를 사용 192.168.10.1
하고 Host1은 IP를 사용합니다 192.168.10.2
. VPS에서 홈 네트워크의 호스트에 핑을 보낼 수 있고 그 반대의 경우도 가능하며 정상적으로 작동합니다.
다음으로 VPS에서 홈 네트워크에 액세스하고 싶습니다. 이를 위해 아래와 같이 VPS에 경로를 추가했습니다.
ip route add 192.168.1.0/24 via 192.168.10.2 dev wg0
VPS에서 홈 네트워크의 다른 호스트에 액세스할 수 있다는 아이디어입니다. 그러나 Host1에서 IP 전달을 활성화해야 한다는 것을 알고 있으므로 다음을 수행합니다.
iptables -t nat -A POSTROUTING -o ens18 -j MASQUERADE
그리고 나는 또한 그것을 구성했습니다 net.ipv4.ip_forward = 1
. 이 두 가지 구성을 사용하면 VPS에서 홈 네트워크의 모든 호스트를 ping할 수 있습니다. 그런데 홈 네트워크에 웹 서버가 있고 VPS에서 서버에 접속하려고 하면 no route to host
웹 서버에 ping을 할 수 있는데도 문제가 발생합니다. tcpdump
홈 네트워크의 Host1에서 실행 중인데 오류 메시지가 표시되므로 ICMP admin prohibited filter
에 비해 HTTP 트래픽이 올바르게 전달되지 않는 것 같습니다. 그렇다면 iptables
VPS의 홈 네트워크에 있는 웹 서버에 액세스하려면 어떻게 구성해야 합니까 ? NAT도 추가해야 할 것 같은데 어떻게 해야 할지 모르겠습니다.
답변1
추가 내용을 놓쳤나 봐요키 라우팅서버의 WireGuard 구성 항목입니다.
서버의 WireGuard 계층은 IP 주소와 같이 일치하는 피어가 무엇인지 알아야 합니다 192.168.0.42
. 이를 위해 올바른 항목을 가진 피어가 있는지 확인합니다 AllowedIPs
. 피어는 정의되며 다음 항목이 있어야 합니다.
AllowedIPs = 192.168.10.2
일치하지 않습니다 192.168.0.42
. WireGuard 인터페이스를 통해 전송된 패킷은 192.168.0.42
삭제됩니다.
따라서 추가 경로가 추가될 때마다섬기는 사람WireGuard 인터페이스(일반적으로 AllowedIPs = 0.0.0/0/0
클라이언트로 사용되지 않음)를 통해 항목 중 하나(그 중 하나)가 AllowedIPs
그에 따라 변경되어야 할 가능성이 높습니다. 이 경우 다음이 있어야 합니다.
AllowedIPs = 192.168.10.2, 192.168.1.0/24
이는 대상을 올바른 송신과 연결하고 해당 피어로부터 수신된 패킷의 수신을 확인합니다.
iptables
문제와 관련이 없는 것 같습니다.