다른 서버를 통해 포트를 전달하는 방법

다른 서버를 통해 포트를 전달하는 방법

친구들과 함께 플레이할 작은 게임 서버를 설정하고 싶은데, VPS 비용을 지불했지만 게임 서버를 실행할 하드웨어가 없습니다. 내 컴퓨터가 서버를 실행할 수 있지만 외부 인터넷에서 내 컴퓨터에 포트를 여는 것은 실제로 나에게 선택 사항이 아닙니다.

따라서 나에게 가장 이상적인 방법은 내 컴퓨터의 포트를 내 vps를 통해 전달하는 것입니다. 하지만 저는 네트워킹 지식이 전혀 없고 온라인에서 찾은 정보가 나에게 매우 혼란스럽습니다.

내가 아는 바로는 SSH를 통해 가능합니까?

나는 이 사람이 비슷한 일을 하는 것을 보았습니다. 한 시스템에서 다른 시스템으로 포트를 전달하는 방법은 무엇입니까?

그러나 나는 이 질문에 대한 대답이 약간 혼란스럽습니다. 다음과 같이 언급되어 있습니다.

ssh -L 2222:localhost:8888 -N -o GatewayPorts=yes hostname-of-M

질문에서 M은 호스트여야 하고 S는 트래픽이 라우팅되어야 하는 시스템 서버입니다. 이 사람은 "M 대신 localhost를 사용할 수 있습니다"라고 대답했는데, 이는 M 머신에서 이 명령을 실행해야 한다고 생각하게 만듭니다.

그러나 M이 로컬 호스트인 경우 이 명령에서 실제로 S에 연결하는 위치는 어디입니까?

"hostname-of-M" 대신 내 vps의 IP를 사용해 보았지만 별 효과가 없는 것 같습니다.

이것이 지금 내 상황입니다. SSH를 통해 가능해야 한다고 생각합니까? 하지만 나는 이것에 대해 완전히 확신하지 못합니까? 이 ssh 기능은 M의 IP가 S에서 표시되는 경우에만 가능합니다. 그러면 S에서 ssh 명령을 실행해야 합니까? 이 명령이 정확히 무엇을 해야 하는지 매우 혼란스럽습니다. 그럼...제가 올바른 방향으로 가고 있지만 한 단계가 빠졌나요? 아니면 완전히 다른 접근 방식이 필요합니까?

답변1

나는 당신도 시도해 볼 수 있기를 바라는 한 가지를 시도했습니다. 공용 IP를 사용하여 VPS에 OpenVPN 서버를 설치하고 로컬 컴퓨터를 VPN 서버에 연결했습니다. 이 경우

VPS 공용 IP: xxxx
VPS 내부 Openvpn 터널 IP: 10.8.0.1
로컬 Openvpn 터널 IP: 10.8.0.2

python3 -m http.server분노하다로컬 머신포트에 http 서버를 제공하는 서버는 무엇입니까 8000?

존재하다VPS 서버달리고 붐! 따라서 이제부터 포트 8080에 도착하는 모든 요청은 내 로컬 컴퓨터의 포트 8000으로 전달됩니다.ssh -L 8080:10.8.0.2:8000 -N -o GatewayPorts=yes [email protected]

VPS 공용 IP를 사용하여 인터넷에서 로컬 컴퓨터에 연결할 수 있습니다.x.x.x.x:8080

답변2

제 대답이 주제와 다르다면 죄송합니다. 하지만 귀하의 목표는 가정용 컴퓨터를 인터넷에 노출시키는 것이므로 정말 VPS를 통해 전달되어야 하는지 궁금합니다.

외부 서비스를 통해 이 작업을 수행하는 것도 실행 가능한 옵션인 경우 시도해 볼 수 있습니다.응록대신 - 사용하기가 정말 쉽습니다. 바이너리를 다운로드하고 ./ngrok [protocol] [port_number]를 실행하면 [hash].ngrok.io와 같은 서버 URL을 얻게 되며 친구들과 공유할 수 있습니다(적어도 Stack Overflow의 일부 사람들은 Minecraft를 그렇게 플레이하는 것 같습니다.)

그러나 미국 서버 위치는 귀하와 귀하의 친구에게 가장 이상적이지 않을 수 있습니다(그리고 최악의 경우 대기 시간에 민감한 경우 게임을 플레이할 수 없게 만들 수도 있습니다). 또는 서버가 사용하는 가장 가까운 서버 위치를 선택해 볼 수도 있습니다. 위의 SO 링크에 설명된 대로 -region 옵션(확인문서자세한 지역 목록 가져오기)

관련 정보