게임 서버용 OpenVPN 포트 전달

게임 서버용 OpenVPN 포트 전달

나의 장면-

  1. S1과 S2라는 우분투를 실행하는 두 개의 서버가 있습니다. S1에는 공용 IP 주소가 있으며 openvpn 서버를 실행 중입니다. S2에는 openvpn 클라이언트가 설치되어 있고 openvpn 서버에 연결됩니다. S1 공용 IP(eth1): 47.88.240.xxx, Openvpn IP(tun0): 10.8.0.1 및 S2 OpenvpnIP(tun0): 10.8.0.2

  2. S2의 UDP 포트 28015에서 실행되는 게임 서버가 있습니다.

  3. S2의 IP 테이블을 다음으로 업데이트했습니다.

10.8.0.1을 통한 0.0.0.0

S2 기본 게이트웨이를 통한 47.88.240.xxx

  1. S1에서 다음 명령을 사용하여 모든 인터넷 트래픽을 S2에서 S1로 라우팅했습니다.

iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o eth1 -j MASQUERADE

S2에서 인터넷을 탐색하는 동안 Whatismyip.com의 IP 주소를 확인했는데 47.88.240.xxx가 표시되었습니다.

또한 S2에서 Google의 DNS 서버를 추적했는데 첫 번째 홉은 10.8.0.1이었고 추적 경로는 성공했습니다.

따라서 S2의 모든 인터넷 트래픽은 S1을 통과한다고 확신합니다.

  1. 포트를 전달하기 위해 S1에서 다음 명령을 사용하고 있습니다.

    sysctl -w net.ipv4.ip_forward=1

    iptables -t nat -A 사전 라우팅 -d 47.88.240.xxx -p udp --dport 28015 -j DNAT --to-dest 10.8.0.2:28015

    iptables -t nat -A POSTROUTING -d 10.8.0.2 -p udp --dport 28015 -j SNAT --to-source 10.8.0.1

이 방법을 사용할 때, 집에 있는 컴퓨터에서 게임 서버(47.88.240.xxx:28015)에 쿼리하면 게임 서버가 나오는데, 몇 번(아마 5번 정도) 지나면 한동안 응답이 없고, 잠시 후 다시 응답합니다.

그래서 SNAT 부분을 S2에서 설명한 방법으로 교체했습니다.https://www.thomas-krenn.com/en/wiki/Two_Default_Gateways_on_One_System

이렇게 하면 필요한 만큼 게임 서버에 쿼리할 수 있으며 응답이 멈추지 않습니다.

  1. 두 가지 기본 게이트웨이 방법을 모두 사용하여 게임 서버에 안정적으로 연결되었으나 게임 서버가 게임의 메인 서버 목록에 나열되지 않지만 수동으로 게임 서버에 연결할 수 있습니다. 게임 서버에서 게임 메인 서버로 나가는 트래픽에 문제가 있는 것 같습니다. 올바른 IP가 전송되지 않거나 게임 서버가 어떤 이유로 메인 서버에 접속할 수 없습니다.

왜 이런 일이 발생하는지 아시나요?

관련 정보