Wireguard를 통해 로컬 서비스 포트를 전달하고 로컬 서비스를 위해 다시 전달

Wireguard를 통해 로컬 서비스 포트를 전달하고 로컬 서비스를 위해 다시 전달

내 시스템:

Local: Arch Linux
VPS: Linode uubuntu 20.04.1
Standard Wireguard Package on both ends

그래서 나는 사용하고 있습니다airdcppd, 내 로컬 컴퓨터의 3개 포트를 사용하여 트래픽 정보를 전송하는 파일 공유 프로그램입니다.

그들은:

23288/tcp
21500/udp
13875/tcp

내가 원하는 것은 이러한 포트를 VPS Wireguard로 전달하여 마치 서버 측에서 실행 중인 포트가 대중에게 공개되는 것처럼 보이게 하는 것입니다.

이를 달성하기 위해 다음 가이드에 따라 Wireguard 인터페이스 구성을 수정했습니다.

가이드 1

가이드 2

이제 내 구성은 다음과 같습니다.

현지의:

[Interface]
PrivateKey = <my key>
Address = 10.66.66.2/32,fd42:42:42::2/128
DNS = 1.1.1.1,94.140.15.15

# packet forwarding
PreUp = sysctl -w net.ipv4.ip_forward=1

# port forwarding
PreUp = iptables -t nat -A PREROUTING -d local.ip.address -p tcp --dport 23288 -j DNAT --to-destination 10.66.66.1
PreUp = iptables -t nat -A PREROUTING -d local.ip.address -p udp --dport 21500 -j DNAT --to-destination 10.66.66.1
PreUp = iptables -t nat -A PREROUTING -d local.ip.address -p tcp --dport 13875 -j DNAT --to-destination 10.66.66.1
PostDown = iptables -t nat -D PREROUTING -d local.ip.address -p tcp --dport 23288 -j DNAT --to-destination 10.66.66.1
PostDown = iptables -t nat -D PREROUTING -d local.ip.address -p udp --dport 21500 -j DNAT --to-destination 10.66.66.1
PostDown = iptables -t nat -D PREROUTING -d local.ip.address -p tcp --dport 13875 -j DNAT --to-destination 10.66.66.1

[Peer]
PublicKey = <my key>
PresharedKey = <my key>
Endpoint = vps.ip.address:49503
AllowedIPs = 0.0.0.0/0,::/0

섬기는 사람:

[Interface]
Address = 10.66.66.1/24,fd42:42:42::1/64
ListenPort = 49503
PrivateKey = <my key>

PreUp = iptables -t nat -A PREROUTING -d vps.ip.address -p tcp --dport 23288 -j DNAT --to-destination 10.66.66.2
PreUp = iptables -t nat -A PREROUTING -d vps.ip.address -p udp --dport 21500 -j DNAT --to-destination 10.66.66.2
PreUp = iptables -t nat -A PREROUTING -d vps.ip.address -p tcp --dport 13875 -j DNAT --to-destination 10.66.66.2
PostDown = iptables -t nat -D PREROUTING -d vps.ip.address -p tcp --dport 23288 -j DNAT --to-destination 10.66.66.2
PostDown = iptables -t nat -D PREROUTING -d vps.ip.address -p udp --dport 21500 -j DNAT --to-destination 10.66.66.2
PostDown = iptables -t nat -D PREROUTING -d vps.ip.address -p tcp --dport 13875 -j DNAT --to-destination 10.66.66.2

### Client name
[Peer]
PublicKey = <my key>
PresharedKey = <my key>
AllowedIPs = 10.66.66.2/32,fd42:42:42::2/128

보시다시피 로컬에 대한 내 Wireguard 내부 주소는 다음과 같습니다. 10.66.66.2서버의 경우10.66.66.1

이제 VPN 연결 없이 열린 것으로 나타나는 로컬 컴퓨터의 로컬 포트 23288도 포트 검사기로 확인한 후 열린 것으로 표시됩니다. 다른 세 개의 포트는 여전히 닫혀 있지만 사용되는 기본 포트가 열려 있고 제 목적에 충분하기 때문에 크게 걱정할 필요는 없습니다. 다른 포트도 VPN을 사용하지 않아도 닫힌 것으로 표시됩니다.

현재로서는 방화벽이 사용되지 않습니다. 이 작업을 수행한 후에 관련된 모든 포트를 허용하겠습니다.

문제는 패키지가 VPN을 통해 전송된 후 발생하며 로컬로 돌아오지 않는 것 같습니다. 보시다시피 저는 해당 3개 포트의 모든 패키지를 로컬 시스템으로 다시 보내는 규칙을 설정했습니다. 하지만 어떤 이유에서인지 앱이 airdc표시해야 하는 내용을 표시하지 않기 때문에 해당 정보를 얻을 수 없습니다 .

해당 포트의 트래픽을 로컬 시스템으로 "전달"하려고 할 때 내가 뭔가 잘못했습니까? 내 로컬 앱이 패키지를 다시 받는 것이 올바른 방법인가요? 그렇지 않은 경우 해당 세 포트에 전달된 모든 항목이 올바르게 반환되도록 VPS wireguard 구성을 설정하는 올바른 방법은 무엇입니까?

찾아주셔서 감사합니다!

편집: 서비스에 액세스하는 데 사용하는 로컬 포트는 http://localhost:5960 이며, VPN과 함께 이를 사용하여 웹에서도 액세스할 수 있도록 하고 싶습니다. 다음과 같습니다.https://vps.ip.address:5960, 그러나 위와 동일한 구문을 사용하여 서버에 로컬 포트 ​​5960을 전달하는 줄을 추가하더라도 여전히 작동하지 않습니다. 아마도 이것이 모든 것을 작동시키는 열쇠일까요?

답변1

대신 VPS 측의 포트를 로컬 시스템의 내부 IP로 전달해야 합니다. 집에 있는 라우터에서 PC의 로컬 주소로 연결하는 것과 같습니다. 로컬 컴퓨터를 VPS에 연결하지 마십시오.

관련 정보