問題タブ [tunnel]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
sockets - TUN / TAPを使用して着信データを読み取り、UDPとしてカプセル化し、送信する
あるインターフェイスから着信パケットを読み取り、別のインターフェイスを介してUDPパケットとして送信するために使用されるtun/tapデバイスがあります。これを実装して、tun / tapインターフェイスに送信されるICMPパケットを読み取り、UDPを使用してリモートで取得することもできます。しかし、この問題は、入力インターフェイスのデフォルトゲートウェイをtun / tapデバイスに変更して、tun/tapからすべての着信データを読み取れるようにしようとすると発生します。これが行われると、ルーティングが適切でないため、UDPパケットを送信できません。
また、ソケット通信で「SO_BINDTODEVICE」オプションを試してみましたが、それでも機能しませんでした。tun / tapでwrite()メソッドを使用していないことに注意してください。read()関数を使用してデータを収集し、UDPソケット通信を介して送信しました。
私のアプローチが間違っているか、これを克服するための他の回避策があるかどうかを教えてください。ありがとう。
ありがとうロブ。
私が達成しようとしているのは、高遅延チャネルでのIPベースのヘッダー通信(ROHC)のシミュレーションです。
このために、4つの仮想マシンがあります。VM1は通常のデスクトップマシンです。VM2は、(VM1からの)tun / tapを使用してパケットを受け取り、VM4とのUDPベースの通信を行うゲートウェイです。VM3は、レイテンシー、エラー率などのパラメーターを設定できるチャネルです。VM4はWANに接続されています。VM1のユーザーは、通常どおりWANを参照できる必要があります。下の図をご覧ください。
アップデート:
Tommiに感謝します。あなたの解決策はうまくいきました。最終的なNATゲートウェイへの片道でUDPパケットを取得できました。しかし、私は今まで逆の働き方をすることができませんでした。iptablesを使用してマスカレードを有効にし、VM1でtuntapへのホストルートを設定しようとしましたが、機能しませんでした。これに関していくつか質問があります。1)VM4で、UDPデータを受信し、tun/tapに書き込みます。これは、カーネルによってWANにルーティングされます。しかし、着信パケットの場合、tun / tapを使用して再度読み取る必要がありますか?この場合、異なるスレッドで読み取りと書き込みを行う必要がありますか?UDPデータとしても転送する必要があるため、これを求めています。ここで何かが足りない場合はお知らせください。もう一度、あなたの助けに感謝します。
bash - SSH トンネルの複雑な問題
プログラミングプロジェクトでは、奇妙なセットアップを行う必要があります。さて、まず第一に、私は両方のサーバーでルート権限を持っています.sshトンネルが最善の方法だと思います(より良いアイデアがあれば、遠慮なく教えてください)
IRC サーバー上で動作するソフトウェアを作成する必要があります。難しいことではありませんが、IRC サーバーは localhost でしか到達できません。そのため、最初にボックスに ssh してから、irssi などを使用して localhost:6667 に接続する必要があります。
ここで、2 番目のサーバー (irssi を常に実行している) から ssh-tunnel を実行してから、サーバーにトンネリングし、トンネルを介して localhost を使用しようとしました。
irssi を使用して localhost:2000 に接続すると、期待どおりに動作しません。理由がわかりません、何かヒントはありますか?お役に立てれば幸いです。
よろしく
linux - socat:TTYを介したトンネルIP
socatユーティリティを使用して、ttyS0のようなシリアル(モデム)デバイスを介して双方向IPトンネルを取得することは可能ですか?TUNオプションを使用しようとしましたが、それでも結果が得られません。
任意の提案を歓迎します:)
アップデート:
PC1:
PC2:
その後、両端に適切なアドレスを持つtun0インターフェイスを見ましたが、一方から他方にpingを実行できません。ping -c 1 192.168.1.1
その代わりに、リモートプロセス出口を使用してデータを送信すると、socat
tun0デバイスが破棄されます。助言がありますか?..
Update2:
socatのみを使用してTCP/IPトンネルをシリアル経由で作成しようとすると、フレーミングの問題が発生します。socatの開発者であるGerhardRiegerは、次のように言っています。
私はあなたが正しいのではないかと心配しています。データグラムソケットを調整し、運が良ければパイプも調整します。ただし、シリアル回線を介すると、パケットの境界がなくなる可能性があり、これはtunインターフェイスでデータを送信するときに致命的です。
申し訳ありませんが、現在、socatベースのソリューションを提供することはできません。ただし、新しいバージョン2リリースでいくつかのフレーミングを統合しようとします。
java - Java / または Android IP トンネル
クラウド サーバー上のポートを Android デバイスにトンネリングする必要があります。現在、Android (Jsch) で SSH クライアントを使用して、リバース ポート フォワードを開始しています。これは機能しますが、暗号化/認証のオーバーヘッドは必要ありません/必要ありません。
基本的に、クライアント側 (Android) からクラウド内のサーバーに確立できる単純な IP トンネルです。
このトピックに関するグーグル検索は有望ではなかったので、ここで試してみて、手掛かりが得られるかどうかを確認してみようと思いました. 明らかに、これを自分でゼロから構築したくはありません。
linux - ポートへのトンネル接続のみを許可するにはどうすればよいですか?
git-daemonに永続的なsshトンネルを通過させたいのですが。私はこの仕事を成し遂げました。GIT_DAEMONポート(私の場合は9418)へのトンネルされていないリモート接続をブロックするにはどうすればよいですか?
私はすでにiptablesで簡単なルールを試しました(localhostを除くすべてをブロックします):
ただし、トンネルもブロックします(送信元IPアドレスを保存するため)。ファイアウォール用のホストがもう1つある場合は、このポートへのリモート接続をブロックするだけで実行できますが、このジョブを実行するにはこのホストが必要です。
トンネルは、次の2つの方法のいずれかで作成されます。
Windowsの場合:
Linuxの場合:
ssh - SSH over SSH (または SSH 経由で SSH を「プロキシ化」する方法)
SSH over SSH (タイトルのように) の方法論を探しています。
だから、私はできることを知っています:
または、ProxyCommand をnc
で使用できますが、すべての farAwayServer への接続によって proxyServer への 1 つの接続を使用したくありません。を使用できることはわかってControlMaster
いますが、このソリューションにもあまり満足していません。
私はむしろ次のようなものを好みます:
この解決策は存在しますか? はいの場合、どのように?
ご協力いただきありがとうございます
git - ポートフォワーディングを使用したgitpush(SSHトンネル)
ファイアウォールの背後にあるクラスターでホストされているGITリポジトリにアクセスしようとしています。キャンパス(ファイアウォールの背後にある)にいるときは、クラスターに直接アクセスでき、キャンパス外から特定のマシンにSSHで接続し、必要に応じてクラスターにSSHで接続できます。
私は以下を使用してトンネルを設定しようとしました:
しかし、それでも自分のマシンから「gitpush」を実行することはできません。私は何かが欠けていることを知っていますが、それを完全に理解することはできません。
編集:私は〜/ .ssh /configを次のように変更しました:
git pushを実行するとエラーが発生します:
linux - 圧縮トンネルの作成
ポート 6999 のすべてのトラフィックを圧縮して、ポート 7000 にパイプアウトしようとしています。このためのトンネルを作成することを考えていました。gzip などではなく、Intel のパフォーマンス プリミティブ圧縮ライブラリを使用したいと考えています。
どんな考えやアイデアも大歓迎です。
よろしくお願いします。
c++ - HTTP トンネルのサンプル
Delphi または C++ で HTTP トンネルを作成することは可能ですか?
私のアプリケーションは、私が働いている会社に属していないいくつかの HTTP サーバーに接続します。そのため、ユーザーはファイアウォール ポートを開いてこれらの接続を許可する必要があります。会社にトンネルを作成し、このトンネルを介してアプリケーションからの HTTP 要求をリダイレクトすることを考えました。このように、クライアントは 1 つのポートを開くだけで済み、トンネルはすべての要求を処理します。すべてのリクエストは、インディ コンポーネントを使用して POST または GET で行われます。
編集: HTTP プロキシを使用できません。一部のユーザーはすでに独自の HTTP プロキシを持っており、2 つの異なるプロキシ サーバーに同時に接続することはできません。
bash - Mac で showoff.io または localtunnel をセットアップしようとしていますが、行き詰まっています。
showoff.ioの指示に従って gem をインストールしましたが、実行しようとすると
それは機能せず、私は得ます
よくある質問で、彼らは実行について言及しています
それが起こった場合、私が得たものを読む方法がわかりません:
彼らはこう言います:
これにより、showoff-io gem 内のすべてのファイルが一覧表示されます。bin/show スクリプトを探します。そのフォルダーを $PATH に追加するか、スクリプトを $PATH 上の既にある場所にシンボリック リンクします。例えば:
しかし、これらは単なるパスの例であるため、明らかにコピー&ペーストは何もしません。
これは非常に基本的なことだと確信していますが、私はこれについて初心者です。どうすればいいですか?
ありがとう!