원격 / 호스트 시스템 (동일한 네트워크 / LAN)에 SSH로 연결하는 시스템은 인터넷에 액세스 할 수 있지만 호스트는 그렇지 않습니다.
호스트에서 업데이트를 실행하고 패키지를 설치하면 프록시가 로컬로 시작된 다음 원격 컴퓨터가이를 사용하도록 구성해야하므로 매우 불편합니다.
그래서 SSH 또는 다른 것을 통해이 작업을 수행하는 더 쉬운 방법이 있는지 궁금합니다.
나는 안에있는 복잡성을 알고 있지만 알고 싶어했습니다.
plink
Emacs 를 통해 사용 (중요한 경우).
답변
인터넷에 연결된 컴퓨터 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 에 연결하도록 구성한 후 인터넷 액세스가 필요한 소프트웨어를 실행하십시오.