こんにちは、ワッキーです。
ここ数年でリモートワークの導入が急速に進み、定着した時代になりました。
そのためローカル環境をオフィス環境に接続する機会が増え、ローカル環境からソース管理(社内Git)などへアクセスする際に、SSH Tunnel(以下、踏み台サーバー)を経由する必要がある場面もあると思います。
ローカル仮想環境(ゲストOS)から社内Gitなどへ接続する場合は、普段使っているPCで踏み台サーバーに接続するだけでなく、ゲストOSでの設定を行わなければ接続は出来ません。
更に、ゲストOS内でのDocker開発の場面では、Dockerでの設定も必要になります。
今回は、例として社内Gitへの接続方法を紹介致しますが、踏み台サーバーを経由する必要があるものであれば、同様の方法でゲストOSやゲストOSのDockerから接続できます。

接続ルートは、以下のようになります。
f:id:digitalhearts:20220131103745j:plain

踏み台サーバーとは

目的のサーバーにアクセスするための中継サーバーのことです。
踏み台サーバーを利用する理由はそれぞれの環境によりますが、以下のようなものがあげられます。

  • サーバーに直接アクセス出来ないため、外部からアクセスされるリスクを軽減できる。
  • アクセス制御の対象を踏み台サーバーに限定できるため運用負荷が軽減できる。
  • どこの誰がいつアクセスしたかログを簡単に取ることができる。

PCのIPアドレスを確認

1.検索ボックスに、「コマンドプロンプト」と入力
2.「コマンドプロンプト」アプリを選択
f:id:digitalhearts:20220131103813j:plain

3.ipconfigコマンドを実行
Wi-Fiでインターネットに接続している場合、Wireless LAN adapter Wi-Fi内のIPv4アドレス(今回の場合は192.168.0.101)をコピーします。
このIPアドレスは、ゲストOSでの接続設定(Ubuntu)の項目で、使用します。
※PCのローカルIPを静的IPに設定するのをお勧めします。
f:id:digitalhearts:20220131103843j:plain

PCを踏み台経由で接続するための設定

踏み台サーバーへの接続はPuttyを利用しているため、例としてPuttyの説明になります。

1.踏み台サーバーへの接続設定を行う
※各環境にあった設定を行ってください。
2.Connection→SSH→Tunnelsを選択
3.「Local ports accept connections from other hosts」にチェックを入れる
ここにチェックを入れることにより、ゲストOSとSSH Tunnelを共有できます。
f:id:digitalhearts:20220131103902j:plain

4.Openをクリックし、踏み台サーバーに接続する
5.踏み台サーバー経由で社内Gitにアクセス出来るか確認してください。

VirtualBoxでの接続設定(Ubuntu)

ネットワーク設定

1.VirtualBoxの「設定」を選択
f:id:digitalhearts:20220131103935j:plain

2.「ネットワーク」を選択
f:id:digitalhearts:20220131103951j:plain

3.アダプター1:NAT
f:id:digitalhearts:20220131104028j:plain

4.アダプター2:ホストオンリーアダプター
ポートフォワーディングの設置は不要です。
f:id:digitalhearts:20220131104055j:plain

5.「OK」を押下

ゲストOSでの接続設定(Ubuntu)

1.ゲストOSでネットワークのアイコンをクリック
2.「有線設定」を開く
f:id:digitalhearts:20220131104115j:plain

3.ネットワークプロキシを開く
f:id:digitalhearts:20220131104130j:plain

4.手動を選択し、以下のように設定する
IPアドレスは、「PCのIPアドレスを確認」の項目でコピーしたものを入力します。
踏み台経由のポート番号を「10081」として進めます。 ※各環境にあったポート番号を入力してください。
f:id:digitalhearts:20220131104145j:plain

5.踏み台サーバー経由でゲストOSから社内Gitにアクセス出来るか確認してください。

ゲストOSのDocker内から社内Gitにアクセスする

設定例① コンテナ

1.docker-compose.ymlで、アクセスできるようにしたいコンテナの設定を行う
environmentを追加します。
※各PCのIPアドレスを設定してください。

environment:
    - HTTP_PROXY=192.168.0.101:10081
    - HTTPS_PROXY=192.168.0.101:10081

2.docker-compose.ymlが配置されているディレクトリ内で、
sudo docker-compose upでDockerコンテナを起動する

設定例② Linux環境(.envファイルを使った方法)

1.docker-compose.ymlがあるフォルダー内に.envファイルを作成する。
※docker-compose.ymlと同一ファイル内にある「.env」という名前のファイルで宣言された環境変数は、自動で参照できるようになっています。

2..envファイルに以下のコードを追加する

HTTP_PROXY=192.168.0.101:10081
HTTPS_PROXY=192.168.0.101:10081
(ftpは状況に応じて設定します)
FTP_PROXY=192.168.0.101:10081

3.docker-compose.ymlを開き、アクセスできるようにしたいコンテナの設定を行う
environmentを追加します。

environment:
    - HTTP_PROXY=$HTTP_PROXY
    - HTTPS_PROXY=$HTTPS_PROXY
    (ftpは状況に応じて設定します)
    - FTP_PROXY=$FTP_PROXY

4.docker-compose.ymlが配置されているディレクトリ内で、
sudo docker-compose upでDockerコンテナを起動する

5.踏み台サーバー経由でゲストOSのDocker内から社内Gitにアクセス出来るか確認してください。

以上の設定で、ゲストOSのDocker内から踏み台サーバー経由で社内Gitに接続ができます。

SHARE

  • facebook
  • twitter

SQRIPTER

AGEST Engineers

AGEST

記事一覧

AGESTのエンジニアが情報発信してます!
AGESTのサービスやソリューションのお問い合わせページはこちらです。

株式会社AGEST

Sqriptsはシステム開発における品質(Quality)を中心に、エンジニアが”理解しやすい”Scriptに変換して情報発信するメディアです

  • 新規登録/ログイン
  • 株式会社AGEST