Home
Packages
Forums
Wiki
GitLab
Security
AUR
Download
コンテンツにスキップ
メインメニュー
メインメニュー
サイドバーに移動
非表示
案内
メインページ
目次
コミュニティに貢献
最近の出来事
おまかせ表示
特別ページ
交流
ヘルプ
貢献
最近の更新
最近の議論
新しいページ
統計
リクエスト
ArchWiki
検索
検索
表示
アカウント作成
ログイン
個人用ツール
アカウント作成
ログイン
HTTP トンネリングのソースを表示
ページ
議論
日本語
閲覧
ソースを閲覧
履歴を表示
ツール
ツール
サイドバーに移動
非表示
操作
閲覧
ソースを閲覧
履歴を表示
全般
リンク元
関連ページの更新状況
ページ情報
表示
サイドバーに移動
非表示
←
HTTP トンネリング
あなたには「このページの編集」を行う権限がありません。理由は以下の通りです:
この操作は、次のグループに属する利用者のみが実行できます:
登録利用者
。
このページのソースの閲覧やコピーができます。
[[Category:ネットワーク]] [[Category:セキュアシェル]] [[en:HTTP tunneling]] ネットワークにおいて、トンネリングとは上位の階層のプロトコル (この場合 HTTP) を使って低位の階層のプロトコル (この場合 TCP) を転送することです。 == トンネルの作成 == === corkscrew と HTTP CONNECT を使う === SSH デーモンが動いているサーバーに接続をするために、HTTP CONNECT メソッドを使うことで HTTP CONNECT リクエストを HTTP プロキシに送信することによりプロキシを通してクライアントをサーバーに接続することができます。 {{Note|プロキシが HTTP CONNECT メソッドをサポートしていない場合、下の他の方法を見て下さい。}} HTTP プロキシによる SSH のトンネリングを行うためのツールである [https://github.com/bryanpkc/corkscrew corkscrew] を使います。[[公式リポジトリ]]の {{Pkg|corkscrew}} パッケージでインストールできます。 SSH 接続を開くのはとても簡単です: $ ssh user@server -o "ProxyCommand corkscrew $proxy_ip_or_domain_name $proxy_port $destination_ip_or_domain_name $destination_port" 必要なのはシェルを開くことだけでなく、SOCKS トンネルなので、以下のようにすることで {{Ic|localhost:$port}} に [[wikipedia:SOCKS|SOCKS]] プロキシを作成します: $ ssh -ND {{Ic|$port}} user@server -o "ProxyCommand corkscrew $proxy_ip_or_domain_name $proxy_port $destination_ip_or_domain_name $destination_port" ==== Git のトンネリング ==== 制限のきつい法人向けファイアウォールは [[Git]] の使用するポートを塞いでしまうことがあります。その場合でも、corkscrew などのユーティリティを利用して HTTP プロキシのトンネルを通してやることで Git を使うことができます。Git が {{ic|GIT_PROXY_COMMAND}} 環境変数の設定を認識できるなら、{{ic|$GIT_PROXY_COMMAND}} でコマンドを実行してネットワークソケットの代わりにプログラムの標準入出力を使うようにします。 スクリプトファイル {{ic|corkscrewtunnel.sh}} を作成: #!/bin/bash corkscrew ''proxyhost'' ''proxyport'' $* {{ic|GIT_PROXY_COMMAND}} を設定: $ export GIT_PROXY_COMMAND=''path-to-corkscrewtunnel.sh'' これで、HTTP プロキシを使って Git をトンネリングできるはずです。 === httptunnel を使う === [[公式リポジトリ]]の {{Pkg|httptunnel}} でインストールすることができる [https://github.com/larsbrinkhoff/httptunnel httptunnel] は HTTP リクエストでトンネル化した双方向性の仮想データ接続を作成します。HTTP リクエストは必要であれば HTTP プロキシを通して送信することが可能です。ファイアウォールに拘束されているユーザーはこれを上手く使うことができます。HTTP プロキシによる WWW アクセスが許可されていれば、httptunnel や telnet、または PPP を使ってファイアウォールの外にあるコンピュータに接続できます。 ウェブサーバーが既にポート 80 を listen している場合、バーチャルホストを作成することで hts サーバーにウェブサーバーからプロキシ要求させることが可能です。それについてはここでは触れません。 ウェブサーバーがポート 80 を listen していない場合: *サーバー側: $ hts --forward-port localhost:22 80 *クライアント側: $ htc --forward-port 8888 example.net:80 $ ssh -ND user@localhost -p 8888 {{Note|localhost へ接続するとき Fingerprint が認識されず警告が表示されます。}} これで {{Ic|localhost:8888}} を [http://ja.wikipedia.org/wiki/SOCKS SOCKS] プロキシとして使うことができます。 === proxytunnel を使う === [[公式リポジトリ]]から {{Pkg|proxytunnel}} パッケージを[[インストール]]してください。 $ ProxyCommand /usr/bin/proxytunnel -p some-proxy:8080 -d www.muppetzone.com:443 === openbsd-netcat を使う === [[公式リポジトリ]]から {{Pkg|openbsd-netcat}} パッケージを[[インストール]]してください。 openbsd の netcat を使って接続を開くには: $ ssh user@final_server -o "ProxyCommand=nc -X connect -x some-proxy:$proxy_port %h %p" == トンネルを使う == [[プロキシ設定#SOCKS プロキシを使う]] を見て下さい。
このページで使用されているテンプレート:
テンプレート:Ic
(
ソースを閲覧
)
テンプレート:Note
(
ソースを閲覧
)
テンプレート:Pkg
(
ソースを閲覧
)
HTTP トンネリング
に戻る。
検索
検索
HTTP トンネリングのソースを表示
話題を追加