내 시스템:
Local: Arch Linux
VPS: Linode uubuntu 20.04.1
Standard Wireguard Package on both ends
그래서 나는 사용하고 있습니다에어DCCPPD, 내 로컬 컴퓨터에 있는 3개의 포트를 사용하여 교통 정보를 전송하는 파일 공유 프로그램입니다.
그들은:
23288/tcp
21500/udp
13875/tcp
내가 원하는 것은 이 포트를 VPS Wireguard로 전달하여 포트가 서버 측에서 실행되고 대중에게 공개되는 것처럼 보이게 하는 것입니다.
이를 달성하기 위해 다음 지침에 따라 Wireguard 인터페이스 구성을 수정했습니다.
이제 내 구성은 다음과 같습니다.
현지의:
[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
지금 일어나고 있는 일은 로컬 컴퓨터의 로컬 포트가 23288
VPN 연결 없이 열려 있는 것으로 나타나고 있으며 포트 검사기로 확인한 후에도 마찬가지입니다. 다른 세 개의 포트는 여전히 닫혀 있지만 사용되는 기본 포트가 열려 있으므로 큰 문제는 아니며 이는 내 목적에 충분합니다. VPN이 없어도 다른 포트는 닫힌 것처럼 보입니다.
아직 사용 중인 방화벽이 없습니다. 일단 작업에 착수하면 관련된 모든 포트를 허용하겠습니다.
발생하는 문제는 패키지가 VPN을 통해 전송된 후 발생하며 로컬로 돌아오지 않는 것 같습니다. 보시다시피 저는 이 3개 포트의 모든 패킷을 로컬 시스템으로 다시 보내는 규칙을 설정했습니다. 하지만 어떤 이유에서인지 앱이 airdc
표시해야 하는 내용을 표시하지 않기 때문에 해당 항목을 얻지 못합니다 .
이 포트의 트래픽을 내 로컬 컴퓨터로 다시 "전달"하려고 할 때 내가 뭔가 잘못하고 있는 걸까요? 이것이 내 로컬 애플리케이션이 패키지를 수신하는 올바른 방법입니까? 그렇지 않은 경우 이 세 포트에 전달된 모든 항목이 올바르게 반환되도록 VPS 라인배커 구성을 설정하는 올바른 방법은 무엇입니까?
주목 해 주셔서 감사합니다!
편집: 서비스에 액세스하는 데 사용하는 로컬 포트는 http://localhost:5960이며 다음과 같이 웹에서도 액세스할 수 있도록 VPN과 함께 사용하고 싶습니다.https://vps.ip.주소:5960, 그러나 위와 동일한 구문을 사용하여 로컬 포트 5960을 서버에 전달하는 줄을 추가하더라도 여전히 작동하지 않습니다. 어쩌면 이것이 모든 것을 작동시키는 열쇠이기도 할까요?
답변1
대신 VPS 측의 포트를 로컬 컴퓨터의 내부 IP로 전달해야 합니다. 홈 라우터에서 PC의 로컬 주소에 연결하는 것과 같습니다. 로컬 컴퓨터를 VPS에 연결하지 마십시오.