인터넷에서 가정용 컴퓨터에 어떻게 접속할 수 있습니까?


1

공용 인터넷에서 가정용 컴퓨터에 ssh / 연결하는 데 도움이되는 소프트웨어가 있습니까? (커피 숍이라고 함).

나는 이와 비슷한 질문을 받았지만 실제로 그 질문에 대답하는 것 같지 않다는 것을 알고 있습니다. DynDns 및 포트 전달에 대한 일반적인 답변을 피하기 위해 세부 정보를 추가하겠습니다.

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

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

다음이 가능해야한다고 생각합니다. 이미 이미 달성 한 소프트웨어가 있는지 모르겠습니다.

피어-투-피어 프로그램이 홀 펀치 NAT 탐색을 수행하는 방식과 마찬가지로 홀 펀치를 통해 적절한 포트에 대한 외부 액세스를 여는 내 컴퓨터에서 프로그램을 실행할 수 있어야합니다. 또한, 프로그램은 가정용 컴퓨터 공용 IP 및 구멍이 뚫린 외부에서 보이는 포트를 어딘가에 (공용 서버 또는 전자 메일을 통해) 브로드 캐스트하고 주기적으로이 정보를 업데이트 할 수 있습니다.

이와 같은 소프트웨어가 존재합니까? 이 기능의 일부는 다양한 토렌트 소프트웨어에 의해 이미 수행되었습니다.


1
DynDNS로 어떤 설정을 피하려고하는지 확실하지 않습니다. 사용 가능한 무료 버전에는 가입하고 업데이트 클라이언트를 다운로드 한 다음 사용 된 가입 이메일 / 암호 콤보를 클라이언트에 한 번 넣는 것이 포함됩니다. 그런 다음 기기에 연결하기 위해 가입 한 주소가 있습니다. 라우터를 통한 포트 포워딩까지는 비교적 고통스럽지 않은 두 단계입니다. 하나는 ... DHCP 예약 테이블에서 해당 컴퓨터에 고정 IP를 할당 한 다음 포트 22를 해당 IP로 전달합니다. 그런 다음 모든 컴퓨터에서 주소로 SSH를 연결하면됩니다 : 22. 그렇게 나쁘지 않습니다.
Bon Gart

(무료) 동적 DNS와 간단한 포트 전달은 어떤 방식으로 질문에 대답하지 않습니까?
RedGrittyBrick

DynDNS는 무료이며 많은 (대부분의) 라우터에도 DynDNS 클라이언트가 내장되어 있으므로 직접 실행할 필요가 없습니다. NAT를 우회하기 위해 역방향 SSH 터널을 사용할 수 있지만 포트 전달이 더 안정적 일 수 있습니다.
user55325

답변:


0

나중에 포트 포워딩이 홀 펀칭 방법이라고 생각합니다. 원한다면 컴퓨터를 DMZ에 넣고 모든 혼란을 피할 수 있습니다.


네트워크 보안으로 무엇을하고 있는지 정말로 알지 않는 한 컴퓨터를 DMZ에 영구적으로 두지 않겠습니다.
danielcg

0

실제 상황을 알지 못하고 장치와 주변 장치 네트워크를 올바르게 보호 할 수 없다면 어떤 상황에서도 장치를 DMZ에 배치하지 않는 것이 좋습니다.

인터넷을 통해 LAN을 에뮬레이트 할 수있는 소프트웨어 인 LogMeIn Hamachi가 있습니다. 호스트에서이를 설치하고 활성화하면 인터넷 어디에서나 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]

이렇게하면 [local-port-to-open]SSH가 관리하는 컴퓨터의 포트 ( 인수) 가 열리고 암호화 된 터널을 통해 해당 포트의 트래픽을 전송 [user-of-Host-1]@[Host-1-address]하여에 지정된대로 호스트 -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포트 1337에 있습니다 ( 호스트 1과 호스트 2를 모두 캡슐화하는 NAT) . LAN에서 호스트 2는 로컬 IP를 192.168.254.40가지며 22SSH에 포트 를 사용합니다. 호스트 1의 로그인 사용자 이름은 fish입니다.

자, 로컬 포트를 8080사용하지 않고이 데모에 일시적으로 사용할 수 있다고 말하겠습니다 .

내가 형성하는 명령은 다음과 같습니다.

ssh -L 8080:192.168.254.40:22 fish@201.31.103.212

이제이 포트를 열어 8080로컬 컴퓨터와의 정보는 다음의 제품에 전송 192.168.254.40포트 22(호스트 2) (인 1 호스트에 따른 fish@201.31.103.212)

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

ssh turtle@127.0.0.1 -p 8080

SSH는 포트를 관리 8080하고 있으며 SSH 요청을 호스트 1로 보내고 호스트 1로 보냅니다.을 사용하는 대신에을 (를) 사용할 127.0.0.1수도 있습니다 localhost. 그것은 단지 선호입니다.

SSH 포트 포워딩의 또 다른 사용은 프록시입니다.

시나리오 : 개인 랩톱을 사용하여 학교에 있고 차단 된 Twitter에 액세스하려고합니다 (실제로 고등학교에 있으므로 정확하게이 작업을 수행함). 내 집에는 IP 39.34.81.56on port 포트 가있는 포트 전달 SSH 호스트가 1337있습니다. 집의 호스트를 통해 랩톱의 80포트 8080에서 Twitter (웹 서버가 가장 일반적으로 포트에 호스팅 됨 ) 연결을 반송하고 싶습니다 . 노트북에서 명령을 내릴 것입니다.

ssh -L 8080:twitter.com:80 root@39.34.81.56 -p 1337

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

동일한 방법을 사용하여 공개적으로 SSL (예 : Pastebin)을 사용하지 않는 웹 사이트에 로그인 할 수 있으며 SSH를 사용하여 암호화되고 내 집에서 SSH없이 전송하기 때문에 자격 증명이 안전하다는 것을 확인할 수 있습니다. 확실합니다.

행운을 빕니다!

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


LogMeIn Hamachi 에 대한 단편은 이 일반적인 개요를 따르면 개선 될 수 있습니다 .
Kamil Maciorowski
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.