[unix] SSH 세션을 통해 인터넷을 원격 컴퓨터에 제공합니까?

원격 / 호스트 시스템 (동일한 네트워크 / LAN)에 SSH로 연결하는 시스템은 인터넷에 액세스 할 수 있지만 호스트는 그렇지 않습니다.

호스트에서 업데이트를 실행하고 패키지를 설치하면 프록시가 로컬로 시작된 다음 원격 컴퓨터가이를 사용하도록 구성해야하므로 매우 불편합니다.

그래서 SSH 또는 다른 것을 통해이 작업을 수행하는 더 쉬운 방법이 있는지 궁금합니다.

나는 안에있는 복잡성을 알고 있지만 알고 싶어했습니다.

plinkEmacs 를 통해 사용 (중요한 경우).



답변

인터넷에 연결된 컴퓨터 hasinet와 그렇지 않은 컴퓨터를 호출 해 봅시다 noinet.

당신은 SSH 연결을 할 수있는 경우 에서 noinet 까지를 hasinet

OpenSSH의 내장 SOCKS 프록시를 사용하면이 작업을 쉽게 수행 할 수 있습니다. 이 명령은 noinet포트 에서 수신 대기시 SOCKS 프록시를 설정합니다 1080.

noinet$ ssh -D 1080 hasinet

당신은 단지 SSH 연결 할 수있는 경우 noinet 에서을 hasinet

OpenSSH의 SOCKS 프록시를 실행 hasinet한 다음 포트를에서 noinet로 전달할 수 hasinet있습니다. 이것은 @Patrick 덕분에 하나의 명령으로 영리하게 수행 할 수 있습니다.

hasinet$ ssh -D 1080 localhost -t ssh -R 1080:localhost:1080 noinet

SOCKS 프록시를 사용하는 방법

이 프록시를 사용하는 방법은 응용 프로그램에 따라 다릅니다. 일부 응용 프로그램에는 SOCKS 프록시가 내장되어 있습니다.이 경우 프록시를 사용하도록 앱을 구성해야합니다 localhost:1080. 그렇지 않다면 @sciurus가 제안한 것처럼 프록시 체인 또는 레드 독을 사용할 수 있습니다. tsocks 는 일부 명령에 대해서만 네트워크 액세스를 제공해야하는 경우 더 가벼운 솔루션입니다.


답변

SSH를 통해이를 수행하는 방법은 다음과 같습니다.

인터넷에 액세스 할 수없는 컴퓨터에서

ssh -D 8080 machine_with_internet_access

8080 을 사용하지 않는 포트 번호로 교체 할 수 있습니다 .

그런 다음 proxychains 또는 redsocks 와 같은 소프트웨어를 설치 하고 localhost : 8080 에 연결하도록 구성한 후 인터넷 액세스가 필요한 소프트웨어를 실행하십시오.


답변