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


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.