web-dev-qa-db-ja.com

SSH接続経由でリモートサーバー経由でインターネットに接続する方法

SSHアクセス可能なサーバーを介してインターネットにアクセスする際に問題があります

状況

編集:参考までに、私のOSはUbuntu 16.04とIIRCで、サーバーと同じです。

わかりました、ここに取り引きがあります。

  • 私の会社はPCにネットワーク接続(プロキシ経由)を提供しますが、ネット上の一部のリソースに制限されました(外部PPAまたはapt-get updateを手動で追加しても追加できず、ダウンロードにもアクセスできません一部のアプリケーションのセクションですが、apt-get installまたはpip)を使用してパッケージをインストールできます。
  • さらに、私の(上記の)PCは、ssh接続を介して私の会社のサーバーのいくつかにアクセスできます。それらの1つは(意図的に)インターネットアクセスに制限がありません(奇妙に聞こえますが、そのように聞こえます)。上司に、どうにかしてそのサーバーを介してコンピューターを制限なしにインターネットに接続できるかどうかを尋ねました。ちなみに、彼は私にそうするように勧めていませんが、私は禁止されていません。

私の質問

私が今説明したことができる方法はありますか?私のPCから、リモートサーバー経由でインターネットにアクセス(無制限)(無制限のインターネットアクセス)

今まで試したこと

それほど多くはありません。実際、問題を検索する方法(キーワードとは考えにくい)がわからないからです。ほとんどの場合、プロキシを構成しようとしたので、(部分的に)問題を解決できます(PPAの場合、source.listに追加して記号を追加し、プロキシエントリを/etc/apt/apt.confに追加しました。 。)。まだ赤ちゃんのためのキャンディーはありません。誰かがエラーを見る必要がある場合は教えてください、しかし私は問題を完全に解決したいです:(

私はどんな提案にも感謝しています。前もって感謝します!

4
enamoria

OK。この質問を忘れました。状況を早めに更新する必要があります。
上記の提案のいくつかを試しました。そのうちの1つは機能しましたが、他の機能は機能しませんでした(おそらく、構成が原因で思い出せないエラーがあります)。解決策は非常に複雑です(実際に動作させるには少しグーグルで検索する必要があります)。

Eas(ier)ソリューション

その後、同僚の1人がsshuttleを使用することを提案し、1つのコマンド内で必要なものを入手しました。私がしなければならないのは、新しい端末を開いてsshuttle -r username@serverIP 0.0.0.0/0と入力し、インターネットの全世界を楽しむことだけです。時々エラーを返し、奇妙なことに再試行するだけで機能します

0
enamoria

SSHトンネリング/ポート転送を試してください。インターネットには多くの情報があります。これをお読みください: SSH/OpenSSH/PortForwardin gおよび buntuでのSSHトンネリング

SSH socks-proxyを使用するのが好きです。 plinkをインストールします。

Sudo apt install plink

インターネットへのアクセスが制限されているローカルコンピューター(SSHクライアント)でコマンドを実行します。

plink -ssh 111.111.11.111 -C -N -l user -D 127.0.0.1:8081

ここで111.111.11.111-アクセスが制限されていないリモートSSHサーバーのIPアドレスとuser-SSHサーバーのユーザー名。

それで全部です。これでSOCKSプロキシができました-プロキシを通過するすべてのトラフィックは暗号化され、リモートSSHサーバーを経由してルーティングされます。プロキシの設定は、Host 127.0.0.1port 8081です。

この設定をUbuntuシステム全体のプロキシ設定として追加し、ブラウザ、bashなどにシステムプロキシを使用するよう指示します。 Ubuntuシステム設定GUIでシステムプロキシを追加することができます(私のロケールはウクライナ語ロケールです): enter image description here

Aptにプロキシを使用する場合は、 APTのプロキシを構成しますか? を読み、socks-proxyがあることだけを考慮してください。したがって、プロキシURLはsocks4://127.0.0.1:8081ではなくsocks5://127.0.0.1:8081またはhttp://127.0.0.1:8081である必要があります。

export http_proxy="socks4://127.0.0.1:8081"
5
Bob

Socksプロキシを使用する2つのステップ

ソックスプロキシを使用すると、プロキシコンピュータを使用してインターネットに簡単にアクセスできます。この場合、インターネットへの無制限のアクセスを持つサーバー。

手順1:デスクトップのソックスプロキシを設定する

これは、ブラウザまたはシステムレベルで実行できます。インターネットにアクセスしたいすべてのプログラムがソックスプロキシを使用するように、システムレベルで実行します。コマンドラインを使用して実行します。

を使用してデスクトップUbuntuでターミナルを開きます Ctrl+Alt+T 次の行を入力します。

gsettings set org.gnome.system.proxy.socks Host 'localhost'
gsettings set org.gnome.system.proxy.socks port 1080
gsettings set org.gnome.system.proxy mode 'manual'

これにより、localhost:1080を介してすべてのインターネットトラフィックがルーティングされます。

ステップ2:sshいくつかのオプション

サーバーにIPアドレスaaa.bbb.ccc.dddがあり、このサーバーにuser007というユーザーアカウントがあるとします。

ターミナルで次を入力します。

ssh [email protected] 

これでうまくいけば、設定は完了です。 exitと入力して、サーバーからデスクトップに戻ります。次に、いくつかのオプションを使用してもう一度実行します。

ssh -CD 1080 [email protected] 
  • Cは、デスクトップとサーバーの間を通過するものをすべて圧縮します。
  • D 1080は、ローカルポート1080をサーバーにバインドします。

通常に戻すには

最初、sshセッションを終了します。 ssh-Nオプションを追加する場合は、使用する必要があります Ctrl+C

2番目、プロキシをnoneに変更:

gsettings set org.gnome.system.proxy mode 'none'

おしゃれになりたい場合は、これらの手順を組み合わせてbashスクリプトを作成できますが、これで作業は完了です。

#!/bin/bash 
gsettings set org.gnome.system.proxy.socks Host 'localhost'
gsettings set org.gnome.system.proxy.socks port 1080
gsettings set org.gnome.system.proxy mode 'manual'
ssh -CD 1080 [email protected]
gsettings set org.gnome.system.proxy mode 'none'
echo "Finished with the Internet, now back to work..."

このスクリプトはソックスプロキシを設定し、sshを開始します。 sshを終了すると、プロキシがオフになります。

お役に立てれば

3
user68186

他の回答は、構成でSOCKSをサポートしているものに有効です。使用するツールがサポートされていない場合は、dante-clientパッケージのsocksifyを使用できます。

ssh -fND 1080 $server
SOCKS_SERVER=127.0.0.1:1080 socksify git fetch
1
JoL