6
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

在宅作業でVPNを利用している時でも、ローカルの仮想環境に繋げるための設定。

Posted at

前書き

在宅勤務が増えていますが、私が勤めている会社も、在宅勤務を順次、導入しつつあります。私も許可を得て、自宅で作業を進めるようになったのですが、会社のネットワークにSSL-VPNで接続すると、ローカルに立てていた仮想環境に繋がらなくなるという現象に見舞われました。

解決方法は、考えてみれば簡単な対処だったのですが、この不具合に見舞われたときは、さっさとバグをリリースしなければならない時だったため、あれこれと設定に悩んで、時間がかかってしまいました。今後のために、備忘録がわりに残しておきます。

環境

  • ホストOS:Windows 10 pro
  • ゲストOS:CentOS 7
  • 仮想環境構築:Virtulbox, およびvagrant

システムの検証サーバ自体は、別途ありますが、いちいちデプロイしての動作確認が面倒だったので、仮想環境を立てて、そこでPostgreSQLやらnginxやらを稼働させて、個人用の環境を作っていました。

そして、ホストからゲストのCentOSに繋げる時には、Vagrantfileに記載していたprivate_networkのIPに繋げる形で、接続していました。

Vagrantfile
config.vm.network "private_network", ip: "192.168.33.21"

例えば、ホストのpgAdminから、ゲストOSで起動しているPostgreSQLに繋げる時は、以下のようにIPアドレスを直接、指定していたわけです。
image.png
会社で開発をしていた時は、これで問題なく動いていました。

発生した事象

在宅勤務のため、SSL-VPNを有効にして、会社のネットワークに繋げた場合、このローカルに繋がらなくなりました。今までVPNを利用した事があまり無かったので知らなかったのですが、VPNではプライベートIPアドレスが使えなくなるらしいです。

VPNの製品や設定方法によっては、繋がるようにもできるようですが、うちの会社の設定では、許可されていませんでした。

対処法

最初はインフラ運用をしている部署に連絡して、VPNの設定を変更してもらおうかとも思いましたが、冷静になって良く考えるとpgAdminにはアクセスできていることに気づきました。pgAdminは、起動後にhttp://127.0.0.1:[ポート番号]/browser/でアクセスするわけですが、そのURLは機能していました。あと、社内チャットで相談すると、ローカルでdockerを入れて、WEBサーバをローカルに立ててる人が「localhost:8000などは繋がってます」とも情報を貰いました。

つまり、127.0.0.1(localhost)なら、SSL-VPNを稼働した後でも繋がっている訳です。となると「仮想環境にもlocalhostで繋げるようにすれば、この現象は解消するのでは」と考えました。

ということで、さくっとforwarded_portの設定をしました。Vagrantは、こうやってVagrantfileに追記するだけで、簡単にネットワーク設定が変更できて便利ですね。仮想環境中のPostgreSQLのポート番号5432に、ホスト側の15432ポートで繋げられるように設定しました。

Vagrantfile
config.vm.network "forwarded_port", guest: 5432, host: 15432

設定を変更したら、一度、vagrant reloadを実行して、Vagrantを再起動します。

こうして再起動後、pgAdminの「ホスト名/アドレス」をlocalhostにして、「ポート番号」を15432に設定してやると、正常に繋げられるようになりました。
image.png

解決

上に載せたのはPostgreSQLのケースですが、WEBサーバなどでもポートフォワードの設定をすれば、繋がりました。

正直、仮想環境のポートフォワードは、ゲストとホストのポートの繋がりを把握する必要があるので、あまり好きではないのですが、一旦はこれで運用してみます。

参考

6
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
6
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?