답변:
당신이하고 싶은 것은 "my_other_server"와 같은 외부의 무언가 또는 두 서버가 얻을 수있는 다른 것으로 "리눅스 서버"에서 ssh입니다.
ssh 원격 포트 전달을 사용합니다.
[user@linux_server]$ ssh -R8022:localhost:22 my_other_server.com
설명 : my_other_server에 연결하고 포트 2222를 열어 포트 22에서 다시 전달하십시오.
my_other_server.com에서 포트 8022에서 localhost로 ssh하고 linux_server에서 linux_server로 트래픽을 전달할 수 있습니다.-> my_other_server tunnel
[user@linux_server]$ ssh -p8022 localhost
설명 : linux_server로 전달되는 포트 8022에서 자신에게 연결
초기 linux_server-> my_other_server 터널 삭제에 문제가있는 경우 스크립트를 열어 두거나, keepalive 설정을 조정하거나, autossh를 사용할 수 있습니다.
autossh
를 열어 둘 수 있습니다.
VPN을 사용하여이 작업을 수행 할 수 있지만 액세스 할 수없는 서버가 액세스 할 수있는 서버가 있어야합니다. 그런 다음 서버, PC 및 방화벽 서버에서 OpenVPN을 설정하고 활성화 client-to-client
하면 완료됩니다. http://openvpn.net/howto.html
이 답변은 허용 된 답변을 기반으로하지만 세부 정보를 추가하여 완료했습니다. 나는 이것이 나의 전문 지식이 아니기 때문에 보행자 설명에 대해 사과드립니다.
두 컴퓨터가, 가정 A
및 B
. 당신이 원하는 ssh
에서 A
에 B
, 당신은 그들에 연결된 라우터의 모든 포트 포워딩을 할 수 없습니다.
허용되는 답변에서 알 수 있듯이이 S
작업을 수행 하려면 서버 가 필요합니다. computer B
에서는 ssh
연결 을 허용 합니다 S
. 그리고 컴퓨터에서 A
, 당신은 S
도달하기 위해 그 터널에 액세스합니다 B
.
그러나 그 서버를 S
어떻게 얻 습니까? 찾았습니다 serveo
(link : https://serveo.net/ ). 매우 간단합니다. 아무것도 설치하거나 등록 할 필요가 없으며 무료입니다. 웹 사이트에 따르면 다음 단계는 다음과 같습니다.
컴퓨터의 별칭을 생각하십시오 B
. 예를 들면 다음과 같습니다 computer_B_alias
.
컴퓨터 B
에서 실행하십시오 ssh -R computer_B_alias:22:localhost:22 serveo.net
.
이제 컴퓨터 B
에서 A
다음을 실행하여 컴퓨터 에서 컴퓨터 에 액세스 할 수 있습니다 A
. ssh -J serveo.net user@computer_B_alias
여기서 user
컴퓨터의 사용자 이름으로 대체해야 합니다 B
.
PS : 물론 컴퓨터를 시작할 때 포인트 2를 자동 작업으로 만듭니다 B
.
PSS : 시도하기 전에 ssh
두 컴퓨터에 모두 설치되어 있는지 확인하십시오 . 우분투 sudo apt-get install ssh
에게는 일을 할 것입니다.
답변을 찾는 데 오랜 시간이 걸렸지 만 지금 같은 사람을 찾는 데 도움이되기를 바랍니다.
NAT 뒤의 서버에 액세스하고 코드를 작성하지 않으려는 경우 아래 도구 중 하나를 선택하여 필요에 맞는 것을 사용할 수 있습니다.
위의 두 도구는 클라이언트를 설치하기 위해 Linux 시스템에 액세스 할 수 있다고 가정합니다.
원격 콘솔 은 역방향 ssh를 위해 자신의 서버에만 연결할 수있는 반면 나는 tmate 서버 를 자신의 중간 서버 (역 ssh 용)에서 호스팅 할 수 있으므로 개인적으로 tmate를 더 선호합니다 .
ngrok 를 사용할 수 있습니다 . 과정은 쉽다 :