가정용 컴퓨터 A 를 사용하여 SSH 를 통해 외부 네트워크에 대한 액세스가 차단 된 서버 B 에 연결할 수 있습니다 . 즉, B 에서 인터넷에 대한 모든 요청에 오류가 발생합니다. 네트워크에 연결할 수 없습니다 . 인터넷에 제한없이 액세스 할 수 있는 컴퓨터 A 를 통과하도록 이러한 모든 요청을 리디렉션 할 수 있습니까 ?
서버 B 는 내 웹 사이트 중 하나를 호스팅하는 서버입니다. 일부 소프트웨어를 설치하기 위해 파일을 다운로드하고 싶습니다. 그러나 연결이 차단되었습니다. 파일을 전송할 수는 있었지만 소프트웨어 버전이 A 와 B 에서 다르기 때문에 복잡했기 때문에 서로 다른 종속성과 A 와 B 에서 다른 파일이 필요했습니다 .
인터넷에서 검색했는데 리버스 터널이 필요한 것 같습니다. 그러나 포트가 리디렉션 되는 솔루션 만 찾았습니다 . 그러나 B 가 A 에 액세스 하지 않고 인터넷 에 액세스하기를 원하지 않기 때문에 필요한 것이 아닙니다 .
답변
컴퓨터 A를 통해 인터넷에 액세스하기 위해 컴퓨터 B가 연결 한 컴퓨터 A에서 프록시를 실행할 수 있습니다.
이 같은
+----------+ +-----------+
| |+----SSH+-->| |
| A | | B |
|+--------+| | |
Internet <-++-+PROXY<++<SSH Tunnel--+ |
|+--------+| | |
+----------+ +-----------+
포트 3128에서 수신 대기하는 A에 squid와 같은 프록시를 설치 한 후 다음을 사용하여 서버에 ssh 할 수 있습니다
ssh -L 3128:127.0.0.1:3128 user@B
그러면 B가 A를 통해 인터넷에 액세스 할 수있게됩니다.
답변
@Lawrence와 @SpiRail의 답변에 더 분명한 단계를 추가하면됩니다.
다음과 같이 설정을 수행하십시오.
호스트 A에서 설정 :
- 호스트 A에 프록시 서버 오징어를 설치하십시오. 기본적으로 Squid는 포트 3128에서 수신 대기합니다.
yum install squid
http_access deny all
그런 다음http_access allow all
/etc/squid/squid.conf에 주석 을 추가하십시오 .- 호스트 A 자체가 인터넷에 연결하기 위해 10.140.78.130:8080
/etc/squid/squid.conf
과 같은 프록시를 사용 하는 경우 다음과 같이 프록시를 추가하십시오 .
refresh_pattern (Release|Packages(.gz)*)$ 0 20% 2880
cache_peer 10.140.78.130 parent 8080 0 no-query default
never_direct allow all
호스트 B에서 설정 :
- / etc / environment에 다음 항목을 추가하십시오.
export http_proxy=http://127.0.0.1:3129
export https_proxy=http://127.0.0.1:3129
source /etc/environment
이제 설정이 완료되었습니다.
원격 포트 포워딩으로 SSH 터널 생성
-
호스트 A에서 다음 SSH 명령을 실행하십시오.
ssh -R 3129:localhost:3128 user@HostB
영구 SSH 터널을 만들려면 다음과 같이 autossh를 사용할 수 있습니다.
autossh -M 20000 -f -NT -R 3129:localhost:3128 user@HostB
위의 autossh 명령이 작동하려면 HostA에서 HostB로 SSH 키를 설정해야합니다. - 그러면 호스트 B가 호스트 A를 통해 인터넷에 액세스 할 수 있습니다.
인터넷 확인 :
- 호스트 B에서 다음 명령을 실행하십시오.
wget https://google.com
답변
@Lawrence의 대답은 내가 그것을 완전히 끝내기에 충분했습니다. 그러나 여기에 내가 사용한 자세한 단계가 있습니다.
필자는 랩톱 4g 동글을 사용하여 인터넷을 Wi-Fi 라우터에 고정 된 회선 연결로 라즈베리 파이로 라우팅하는 데 사용했습니다.
호스트가 Mac 인 경우 : squidman http://squidman.net/squidman/을 설치
하십시오.
(일반 오징어뿐만 아니라 그것을 만드는 데 너무 많은 문제가있었습니다) 기본 설정은 나에게 충분했습니다.
4g에 연결 wifi에 연결-wifi에서 고정 IP를 구성하고 게이트웨이 주소를 제거하십시오 (고급 일을하지 않는 한) 그렇지 않으면 두 개의 기본 경로와 매우 성가신 것입니다. -무선 라우터가 동일한 192.168.xy 범위를 사용하지 않는지 확인하십시오 (이 경우 다른 “x”구성)
ssh -R 8080:localhost:8080 pi@<ip address of the pi or target machine>
PI에서
export http_proxy=http://localhost:8080
visudo로 텍스트를 추가하십시오.
Defaults env_keep = "http_proxy https_proxy ftp_proxy"
이제 wget이 작동하고 sudo apt-get을 사용하여 패키지를 설치할 수 있습니다.
git뿐만 아니라
/programming/128035/how-do-i-pull-from-a-git-repository-through-an-http-proxy