표적
안녕하세요, 원격 VPS를 통해 로컬 홈 서버로 포트 전달 문제를 해결하는 데 큰 어려움을 겪고 있습니다. 내가 하고 싶은 것은 나와 내 친구들을 위해 Counter Strike GO 서버를 호스팅하는 것입니다. 하지만 나 자신을 포함한 모든 사람이 텍사스 달라스에 있는 VPS를 통해 연결하도록 하는 것입니다. 그러면 이론적으로 OpenVPN을 통해 내 홈 서버로 요청이 전달됩니다. 내가 동부 해안에 있는 친구들보다 어떤 핑 이점을 갖고 있나요?
포트 및 IP
27005 UDP 아웃바운드
27015 TCP 및 UDP 인바운드 및 아웃바운드주요 항구
27020 UDP 인바운드 및 아웃바운드
51840 UDP 아웃바운드
WAN VPS 45.58.xx.xx
VPN 게이트웨이 10.8.0.1
VPN 클라이언트 10.8.0.2
질문
이제 이것은 제가 처음에 염두에 두었던 간단한 프로젝트여야 할 것 같습니다. 그러나 온라인에서 다른 포럼 게시물을 검색하고 많은 것을 시도한 후에 빈손으로 나왔습니다. 내 목표는 iptables
목표 달성에 성공하지 못한 채 실행해 본 다양한 명령의 조합을 사용하는 것입니다 .
sysctl -w net.ipv4.ip_forward=1
iptables -I FORWARD 1 -d 10.8.0.2 -p tcp --dport 27015 -j ACCEPT
iptables -I FORWARD 1 -d 10.8.0.2 -p udp --dport 27015 -j ACCEPT
iptables -I FORWARD 1 -d 10.8.0.2 -p udp --dport 27020 -j ACCEPT
iptables -t nat -A POSTROUTING -m conntrack --ctstate DNAT -d 10.8.0.2 -p tcp --dport 27015 -j SNAT --to-source 10.8.0.1
iptables -t nat -A POSTROUTING -m conntrack --ctstate DNAT -d 10.8.0.2 -p udp --dport 27015 -j SNAT --to-source 10.8.0.1
iptables -t nat -A POSTROUTING -m conntrack --ctstate DNAT -d 10.8.0.2 -p udp --dport 27020 -j SNAT --to-source 10.8.0.1
iptables -t nat -A POSTROUTING -m conntrack --ctstate DNAT -d 10.8.0.2 -p udp --dport 27005 -j SNAT --to-source 10.8.0.1
iptables -t nat -A POSTROUTING -m conntrack --ctstate DNAT -d 10.8.0.2 -p udp --dport 51840 -j SNAT --to-source 10.8.0.1
iptables -t nat -A PREROUTING -d 45.58.xx.xx -p udp --dport 27005 -j DNAT --to-dest 10.8.0.2:27005
iptables -t nat -A PREROUTING -d 45.58.xx.xx -p tcp --dport 27015 -j DNAT --to-dest 10.8.0.2:27015
iptables -t nat -A PREROUTING -d 45.58.xx.xx -p udp --dport 27015 -j DNAT --to-dest 10.8.0.2:27015
iptables -t nat -A PREROUTING -d 45.58.xx.xx -p udp --dport 27020 -j DNAT --to-dest 10.8.0.2:27020
iptables -t nat -A POSTROUTING -d 10.8.0.2 -p tcp --dport 27015 -j SNAT --to-source 10.8.0.1
iptables -t nat -A POSTROUTING -d 10.8.0.2 -p udp --dport 27015 -j SNAT --to-source 10.8.0.1
iptables -t nat -A POSTROUTING -d 10.8.0.2 -p udp --dport 27020 -j SNAT --to-source 10.8.0.1
iptables -t nat -A POSTROUTING -d 10.8.0.2 -p udp --dport 27005 -j SNAT --to-source 10.8.0.1
iptables -t nat -A POSTROUTING -d 10.8.0.2 -p udp --dport 51840 -j SNAT --to-source 10.8.0.1
이제 이러한 iptable 항목 조합은 작동하지 않습니다. 서버를 로컬로 실행할 때 이러한 포트에서 실행되는 서비스를 볼 수 없거나 CSGO 클라이언트를 통해 서버에 연결할 수 없기 때문입니다. 또한 명령 세트 사이에서 iptables를 지웠고 이 모든 명령은 sudo로 실행되었으며 iptables-save
afterword가 실행되었습니다.
추가 정보
이것은 명령을 실행할 때 ip a
콘솔에서 받은 덤프입니다 .
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: venet0: <BROADCAST,POINTOPOINT,NOARP,UP,LOWER_UP> mtu 1500 qdisc noqueue state UNKNOWN group default
link/void
inet 127.0.0.1/32 scope host venet0
valid_lft forever preferred_lft forever
inet 45.58.xx.xx/32 brd 45.58.xx.xx scope global venet0:0
valid_lft forever preferred_lft forever
inet6 2602:ffc5:1f::xx:xxxx/128 scope global
valid_lft forever preferred_lft forever
inet6 ::2/128 scope global
valid_lft forever preferred_lft forever
3: tun0: <POINTOPOINT,MULTICAST,NOARP,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UNKNOWN group default qlen 500
link/none
inet 10.8.0.1/24 brd 10.8.0.255 scope global tun0
valid_lft forever preferred_lft forever
inet6 fddd:1194:1194:1194::1/64 scope global
valid_lft forever preferred_lft forever
inet6 fe80::2105:549d:51f6:9a16/64 scope link stable-privacy
valid_lft forever preferred_lft forever
위의 덤프에 대해 내가 알아차린 한 가지는 그렇지 않다는 것입니다 . eth0
그러나 내 WAN은 통과되어 있으므로 venet0
이것이 차이를 가져올지 확신할 수 없습니다.
이 말도 안되는 포트 전달 외에도 VPN에 연결할 수 있으며 연결하면 로컬 서버에 인터넷이 연결됩니다.
감사합니다!
답변1
해결책
종종 간단한 솔루션이 필요합니다. 마지막 질문은 Windows 방화벽에 관한 것입니다. 어떤 이유로 내 CSGO 서버가 방화벽을 통해 통신하는 것을 허용하지 않습니다.
내가 한 일은 내 서버 exe의 방화벽을 여는 것뿐이었습니다. iptables
내가 사용한 명령은 다음과 같았습니다.리눅스 문제:
iptables -t nat -A POSTROUTING --out-interface tun0 -j MASQUERADE
iptables -A FORWARD --in-interface venet0 -j ACCEPT
iptables -t nat -A PREROUTING -p tcp -i venet0 -m tcp --dport 27015 -j DNAT --to-destination 10.8.0.2:27015
말 그대로 그런 의미입니다. 제 글을 읽어주셔서 감사합니다. 앞으로 다른 사람들에게도 도움이 되기를 바랍니다.