GNU/Linux >> Linux の 問題 >  >> Linux

SSH を介してすべてのネットワーク トラフィックをトンネリングするにはどうすればよいですか?

あなたが望むことをするには、sshuttle をお勧めします。

次のように使用します:

./sshuttle -r [email protected] 0.0.0.0/0 -vv

すべての TCP トラフィックを自動的にトンネリングします。 --dns を追加できます DNSトラフィックもトンネリングする引数。リモート サーバーには Python がインストールされているだけで済みます。

特定のプログラムのみをトンネリングしたい場合は、プロキシチェーンをお勧めします。

インストールしたら、次のように ssh ソックス プロキシを起動します。

ssh -fNTD 127.0.0.1:<local port> [email protected]

これにより、<ローカル ポート> でリッスンする "SOCKS" プロキシが開始されます。

次に、/etc/proxychains.conf を編集して、 と同じポートを指すようにします:

socks5 127.0.0.1 <localport>

最後に、次のようにプロキシするプログラムを開始します:

proxychains <program name>

それはうまくいくはずです。ただし、いくつかのプログラムでは、プロキシ チェーンを使用する際に問題が発生します。また、Firefox では、about:config の下の追加項目を変更して、プロキシをバイパスするのではなく、プロキシ経由で DNS ルックアップを実行するように強制する必要があることにも注意してください。

追加のメモとして、Web ブラウザーで。それらがソックス プロキシをサポートしている場合、上記の ssh トンネルを使用するために追加の操作を行う必要はありません。SOCKS プロキシ サーバーに 127.0.0.1 を入力し、プロキシ ポートに <ローカル ポート> を入力するだけです。

2016 年 3 月 29 日編集

この投稿にはまだいくつかの賛成票が表示されているため、更新することにしました。 Proxychains はまだほとんどの Linux リポジトリにあり、Linux でも動作します。ただし、プロジェクトは事実上放棄されており、OSX では動作しません。 Linux または OSX の場合、まだ維持されているフォークにアップグレードすることを強くお勧めします:proxychains-ng:https://github.com/rofl0r/proxychains-ng

Linux と OSX の両方で動作するだけでなく、コンパイルも簡単で、DNS トンネリングのサポートも大幅に向上しています。

もう 1 つのオプション、つまり redsocks についても言及する必要があります。これは proxychains(-ng) と同様に機能し、dist リポジトリにもある可能性があります:https://github.com/darkk/redsocks

2019 年 11 月 27 日編集 proxychains ルートに行く場合は、proxychains-ng を使用してください。 https://github.com/rofl0r/proxychains-ng/issues/292 のように、レガシー バージョンに対するいくつかの重大なバグ修正があります。


man ssh まさにこれの例を示します。 ssh ベースの VPN:

SSH-BASED VIRTUAL PRIVATE NETWORKS
     ssh contains support for Virtual Private Network (VPN) tunnelling using
     the tun(4) network pseudo-device, allowing two networks to be joined
     securely.  The sshd_config(5) configuration option PermitTunnel controls
     whether the server supports this, and at what level (layer 2 or 3 traf-
     fic).

     The following example would connect client network 10.0.50.0/24 with
     remote network 10.0.99.0/24, provided that the SSH server running on the
     gateway to the remote network, at 192.168.1.15, allows it:

       # ssh -f -w 0:1 192.168.1.15 true
       # ifconfig tun0 10.0.50.1 10.0.99.1 netmask 255.255.255.252

~~ 中略 ~~

     Since a SSH-based setup entails a fair amount of overhead, it may be more
     suited to temporary setups, such as for wireless VPNs.  More permanent
     VPNs are better provided by tools such as ipsecctl(8) and isakmpd(8).

新しいインターフェイスを起動したら、それをデフォルト ルートにする必要がありますが、これは別の問題です。


ssh で「トンネル」オプションを探します。これにより、IP アドレスを割り当てることができるトンネル デバイスが作成され、そのトンネルを使用するようにデフォルト ルートが変更されます。


Linux
  1. Ssh – Sshを使用して別のPCを介してPCに接続する方法は?

  2. Ssh – Sshを介した別のマシンを介したトンネルトラフィック?

  3. Sshトンネルを介してインターネットをルーティングする方法は?

  1. ホスト名を使用して docker ネットワーク内の他のコンテナーに ping を実行するにはどうすればよいですか?

  2. できればターミナルを使用して、接続されたネットワーク内のすべての IP を一覧表示するにはどうすればよいですか?

  3. SOCKS 5 プロキシで SSH を使用するにはどうすればよいですか?

  1. 利用可能なネットワーク インターフェイスを見つけるにはどうすればよいですか?

  2. ssh を転送するように ssh トンネルをセットアップするには?

  3. Linuxボックスを使用してssh経由でWindowsリモートデスクトップをトンネリングする方法は?