인터넷에서 집 컴퓨터에 어떻게 SSH로 접속할 수 있나요?

인터넷에서 집 컴퓨터에 어떻게 SSH로 접속할 수 있나요?

공용 인터넷에서 내 집 컴퓨터에 SSH로 연결하거나 연결하는 데 도움이 되는 소프트웨어가 있습니까? (예를 들어, 커피숍).

이와 유사한 질문이 제기된 것으로 알고 있지만 실제로 질문에 답하는 사람은 없는 것 같습니다. DynDns 및 포트 전달에 대한 일반적인 답변을 피하기 위해 몇 가지 세부 정보를 추가하겠습니다.

  • 공개적으로 액세스 가능한 SSH 서버에 액세스할 수 있습니다. 단순히 포트 포워딩만으로는 며칠 동안 지속되는 안정적인 솔루션이 아닙니다. 포트 전달은 연결을 끊고 속도가 느려지는 경향이 있습니다.

  • DynDns를 설정/지불하고 라우터에서 NAT 통과를 구성하고 싶지 않습니다.

나는 다음이 가능해야 한다고 생각합니다. 이미 이 작업을 수행하는 소프트웨어가 있는지는 모르겠습니다.

P2P가 홀 펀치 NAT 통과를 프로그래밍하는 방식과 마찬가지로, 홀 펀치를 통해 적절한 포트에 대한 외부 액세스를 여는 프로그램을 내 집 컴퓨터에서 실행하는 것이 가능해야 합니다. 또한 프로그램은 가정용 컴퓨터의 공용 IP와 구멍이 뚫린 외부에서 볼 수 있는 포트를 어딘가(예: 공용 서버 또는 이메일을 통해)에 브로드캐스팅하고 이 정보를 주기적으로 업데이트할 수 있습니다.

이런 소프트웨어가 존재하나요? 이 기능의 일부는 이미 다양한 토렌트 소프트웨어를 통해 구현되었습니다.

답변1

자신이 무엇을 하고 있는지 실제로 알고 장치와 주변 네트워크를 적절하게 보호할 수 있는 경우가 아니면 어떤 상황에서도 장치를 DMZ에 두는 것을 권장하지 않습니다.

인터넷을 통해 LAN을 에뮬레이트할 수 있는 소프트웨어가 있습니다.LogMeIn 하마치. 이를 호스트에 설치하고 활성화하면 인터넷 어디에서나 VLAN에 로그인하여 액세스할 수 있습니다.

포트 포워딩에 문제가 반드시 있는 것은 아니지만.

또 다른 옵션은 SSH에 내장된 포트 전달 기능을 사용하는 것입니다. 연결하려는 호스트(호스트 2)와 동일한 LAN에 인터넷에서 액세스할 수 있는 다른 SSH 호스트(호스트 1이라고 함)가 있는 경우 컴퓨터에서 연결을 반송하는 명령을 실행할 수 있습니다. (특정 로컬 포트에서) 호스트 1을 통해 호스트 1은 트래픽을 LAN의 포트 전달되지 않은 호스트 2로 라우팅합니다.

명령은 다음과 같으며 호스트 2에 연결하는 데 사용하려는 로컬 컴퓨터에서 실행됩니다.

ssh -L [local-port-to-open]:[local-IP-of-Host-2-according-to-Host-1]:[port-to-connect-to-on-Host-2-from-Host-1] [user-of-Host-1]@[Host-1-address]

그러면 SSH가 관리하는 컴퓨터(인수)의 포트가 열리고 [local-port-to-open]해당 포트에서 암호화된 터널을 통해 모든 트래픽이 [user-of-Host-1]@[Host-1-address]에 지정된 대로 Host-2에 대한 인수로 전송됩니다 [local-IP-of-Host-2-according-to-Host-1]:[port-to-connect-to-on-Host-2-from-Host-1]. 이 방법을 로컬 포트 ​​포워딩이라고 합니다(원격 포트 포워딩은 잘 모르겠습니다).

예를 들어, 포트 전달된 호스트 1을 사용하여 로컬 커피숍에서 포트 전달되지 않은 호스트 2에 연결하여 LAN으로 연결을 바운스한다고 가정해 보겠습니다. 이렇게 하면 원격 시스템에서 PTS가 열리지만 이 터널을 닫을 때까지는 무시할 수 있습니다. 그런 다음 평소처럼 해당 터미널 세션을 닫으면 됩니다.

호스트 1의 공용 IP는 SSH용 201.31.103.212포트(호스트 1과 호스트 2를 모두 캡슐화하는 NAT) 입니다. 1337LAN의 호스트 2는 로컬 IP를 가지며 SSH용 192.168.254.40포트를 사용합니다 . 22호스트 1의 로그인 사용자 이름은 입니다 fish.

8080좋습니다. 로컬 포트가 사용되지 않았으며 이 데모에 일시적으로 사용할 수 있다고 말씀드리겠습니다 .

내가 구성할 명령은 다음과 같습니다.

ssh -L 8080:192.168.254.40:22 [email protected]

이제 8080로컬 컴퓨터에서 포트를 열고 호스트 1(즉 ) 에 따라 192.168.254.40포트 (호스트 2)로 보냅니다.22[email protected]

이제 호스트 2에 SSH를 연결하려면 포트에 컴퓨터를 지정하기만 하면 됩니다 8080. 호스트 2의 로그인 사용자 이름이 다음과 같다고 가정해 보겠습니다.turtle

ssh [email protected] -p 8080

SSH는 포트를 관리 8080하고 SSH 요청을 호스트 1로 보내고, 호스트 1은 이를 호스트 2로 보냅니다. 을 사용하는 대신 을 127.0.0.1사용할 수도 있습니다 localhost. 단지 선호일 뿐입니다.

SSH 포트 전달의 또 다른 용도는 프록시입니다.

시나리오: 학교에서 개인 노트북을 들고 트위터에 액세스하려고 하는데 차단되어 있습니다(실제로 고등학교에 있으므로 정확하게 이 작업을 수행했습니다). 내 집에는 39.34.81.56포트에 IP가 있는 포트 전달 SSH 호스트가 있습니다 1337. 내 노트북의 포트에서 집에 있는 호스트를 통해 Twitter(웹 서버는 가장 일반적으로 포트에서 호스팅됨 80) 에 대한 연결을 반송하고 싶습니다 . 8080내 노트북에서 다음 명령을 실행합니다.

ssh -L 8080:twitter.com:80 [email protected] -p 1337

이제 localhost:8080웹 브라우저에서 액세스할 수 있으며 암호화된 터널을 통해 Twitter의 서버에서 집으로, 그리고 학교에 있는 노트북으로 Twitter를 라우팅합니다.

이와 동일한 방법을 사용하여 공개적으로 SSL(예: 페이스트빈)을 사용하지 않는 웹사이트에 로그인할 수 있으며, SSH를 사용하여 암호화되고 집에서 SSH 없이만 전송되므로 내 자격 증명이 안전한지 확인할 수 있습니다. 확실히 안전해요.

행운을 빌어요!

편집: 참고로 여기에 표시된 IP 주소는 유효한 주소가 아니어야 합니다. 그러나 만약 그렇다면 이러한 IP 사용자를 괴롭히지 마십시오.

답변2

네, 포트 포워딩이 홀 펀칭 방식인 것 같아요. 원한다면 컴퓨터를 DMZ에 두고 모든 혼란을 피할 수 있습니다.

관련 정보