自宅のコンピューター[〜#〜] a [〜#〜]を使用してSSHでサーバーに接続できます[〜#〜] b [ 〜#〜]外部ネットワークへのアクセスがブロックされています。つまり、[〜#〜] b [〜#〜]からインターネットへのすべての要求はエラーをスローします:ネットワークに到達できません。これらすべてのリクエストをリダイレクトして、インターネットへの無制限のアクセス権を持つコンピュータ[〜#〜] a [〜#〜]を通過させることはできますか?
サーバー[〜#〜] b [〜#〜]は私のウェブサイトの1つをホストするサーバーです。一部のソフトウェアをインストールするためにファイルをダウンロードしたい。しかし、接続はブロックされています。ファイルを転送できましたが、[〜#〜] 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でのセットアップ:
yum install squid
_http_access deny all
_をコメントにしてから、/ etc/squid/squid.confに_http_access allow all
_を追加します/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でのセットアップ:
_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キーを設定する必要があります
インターネットをチェックしています:
wget https://google.com
_@Lawrenceの答えは私がそれをすべて理解するのに十分良かった。しかし、ここに私が使用したより詳細なステップがあります。
私はラップトップの4gドングルを使用して、wifiルーターへの固定回線接続でインターネットをRaspberry Piにルーティングするためにこれを使用しました。
ホストがMacの場合:squidmanをインストール http://squidman.net/squidman/
(一般的なイカだけでなく、構築にあまりにも多くの問題がありました)デフォルト設定は私には十分に思えました。
4gに接続wifiに接続-wifiに静的IPを構成し、ゲートウェイアドレスを削除します(高度な処理を行わない限り)。それ以外の場合は、2つのデフォルトルートがあり、非常に煩わしいものになります。 -Wi-Fiルーターが同じ192.168.x.yの範囲を使用していないことを確認します(この場合は別の「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が必要な場合: https://stackoverflow.com/questions/128035/how-do-i-pull-from-a-git-repository-through-an-http-proxy =