친구들과 플레이하기 위해 홈 네트워크에 게임 서버를 호스팅하고 싶었는데, 공용 IP를 사용하는 것이 DDoS 공격을 구걸하는 것과 같았기 때문에 제가 한 일은 DDoS로 보호되는 vps OpenVPN 서버 IP 98.158에 게임 서버를 설정하는 것이었습니다. .113.x. 내 홈 서버 공용 IP는 143.12.44.x입니다.
저는 OpenVPN을 통해 vps에서 홈 서버로 트래픽을 전달하기 위해 다음 iptables 규칙을 사용합니다.
IVSS 7730
iptables -t nat -A 사전 라우팅 -d 98.158.113.x -p udp --dport 7730 -j DNAT --to-dest 10.8.0.2:7730 iptables -t nat -A 사후 라우팅 -d 10.8.0.2 -p udp - -dport 7730 -j SNAT --소스 10.8.0.1
10.8.0.1은 OpenVPN 게이트웨이이고 10.8.0.2는 내 홈 서버가 OpenVPN 서버에서 가져오는 IP라고 생각합니다.
여기서 문제는 누군가가 서버에 연결하면 그의 IP가 실제 IP가 아닌 10.8.0.1로 나열된다는 것입니다.
이 문제를 해결할 수 있는 방법이 있나요?
답변1
게임 서버가 Linux를 실행하고 있다면 그렇습니다.
SNAT 규칙을 제거해야 하는데, 불행하게도 그렇게 하면 또 다른 문제가 발생하고 더 이상 VPN에서 VPN을 통해 다시 트래픽을 강제할 수 있는 것이 없습니다.
이 문제를 해결하려면 게임 서버에서 정책 라우팅을 사용할 수 있습니다. 나는 대략 다음과 같이 설정했을 것이라고 믿습니다. (그러나 이것은 테스트된 예가 아니라 메모리에서 나온 것입니다.)
먼저 /etc/iproute2/rt_tables에 "100 openvpn" 항목을 추가하여 명명된 경로 테이블을 생성합니다.
그런 다음 게임 서버의 VPN IP 주소에서 새 라우팅 테이블로 모든 트래픽을 보내는 규칙을 추가할 수 있습니다.
ip rule add from 10.8.0.2 table openvpn
그리고 새 라우팅 테이블에 경로를 추가하여 모든 것을 openvpn 서버로 다시 보냅니다.
ip route add default dev tun0 table openvpn
(openvpn 터널이 tun0이라고 가정)
바라보다https://lartc.org/howto/lartc.rpdb.multiple-links.html더 자세한 설명을 원하시면.