LoginSignup
6
2

More than 3 years have passed since last update.

【リモートワーク 】VPN接続がやたら切れて仕事にならない件について

Last updated at Posted at 2020-05-25

VPN接続が切れまくる

コロナの影響でリモートワークになって3ヶ月。

序盤からイライラはしていたのだが、この日は我慢がピークを迎えた。
VPN切れまくって作業にならない…
GitHubでPR作ろうとブラウザをポチポチしていたら、1クリックする度にVPNが切断される。
GitHubはエンタープライズ版を利用しておりVPN接続が必須、VPNはFortiClientというクライアントを使用しており、OneLoginによる管理なので、毎回2段解認証のアクセスコードを入力しなくてはならない。

原因

CPU使用率に関係している説
なるほど。確かにこの日は裏でXcodeビルドをぶん回していた。

どうやらCPU負荷が高いと、VPN接続のバックグランドプロセスが蔑ろにされてしまうことが原因らしい。
デザイナーとかはAdobe製品が足枷になることがあるだろうか。

対策

VPN接続のプロセスを探す

ps コマンドでプロセスを一覧、VPNクライアントの FortiClientgrep してみる。

$ ps alxww | grep -i FortiClient
  502   587     1   0  31  0  5995936  12328 -      S      ??    0:05.24 /Library/Application Support/Fortinet/FortiClient/bin/CredentialStore
  502   661     1   0  46  0  6626232  56360 -      S      ??    7:47.69 /Applications/FortiClient.app/Contents/Resources/runtime.helper/FortiClientAgent.app/Contents/MacOS/FortiClientAgent
    0   730     1   0  20  0  5996320   9860 -      Ss     ??    0:08.35 /Library/Application Support/Fortinet/FortiClient/bin/fctservctl
  502   773     1   0  46  0  6545264  22888 -      S      ??    2:58.96 /Applications/FortiClient.app/Contents/Resources/runtime.helper/FortiClientAgent.app/Contents/Resources/runtime.helper/FctMiscAgent.app/Contents/MacOS/FctMiscAgent
    0 14216     1   0  20  0  5997792  19772 -      Ss     ??    2:53.84 /Library/Application Support/Fortinet/FortiClient/bin/fcconfig
    0 75603     1   0  20  0  4865952   6772 -      Ss     ??    0:00.31 /Library/Application Support/Fortinet/FortiClient/bin/fctctld
    0 75613 75603   0  20  0  4927400  13204 -      S<     ??    0:16.76 /Library/Application Support/Fortinet/FortiClient/bin/sslvpnd connect -s {ip_address} -o 20443 -b -i {your_domain}
  502 80355  1379   0  31  0  4409328    884 -      R+   s001    0:00.01 grep --color=auto --exclude-dir=.bzr --exclude-dir=CVS --exclude-dir=.git --exclude-dir=.hg --exclude-dir=.svn --exclude-dir=.idea --exclude-dir=.tox -i FortiClient

なんかいろいろ出てきたが、7行目の sslvpnd のプロセスがそれだろう。

2列目の 75613 がプロセスIDで、6列目の 0 が優先度である。
優先度は -20 ~ 20 の範囲を取り、数が小さいほど優先度が高い。-20 が最高優先度、0 がデフォルトで 20 が最低。

デフォルトの優先度になっていたので、上げてみよう。

プロセスの優先度を変更する

renice コマンドを使って優先度を変更する。おそらく sudo が必要。
テキトーに最大値との間をとって -10 にしてみる。

# sudo renice {priority} {process_id}
$ sudo renice -10 75613

変更されたことを確認する

もう一度 ps を叩いて、優先度が変更されたことを確認する。

# ps alxww | grep -i {process_id}
$ ps alxww | grep -i 75613
    0 75613 75603   0  20 -10  4927400  13204 -      S<     ??    0:15.98 /Library/Application Support/Fortinet/FortiClient/bin/sslvpnd connect -s 39.110.207.155 -o 20443 -b -i {your_domain}

結果: 切れにくくなった

日に何度も再接続を余儀なくされていたが、「1日に1度切れるかどうか」程度まで減少した。

成功である。
これでVPNの再接続に煩わされることなく作業ができるようになった。

課題

しかし、課題も残っている。

たまに ps コマンドを叩いてみると、優先度が 0 に戻っていることがある。というか、プロセスIDが変わっている。
どうやら、何かの拍子に接続が切れると自動で再接続を試みてくれているらしく、それで回復できたとしても別プロセスなので優先度が戻ってしまうのだ。

あとはPCを再起動する度に設定しなければいけない点だ。

切れにくくなったとは言え、この状態では煩わしさは完全には排除できない。
まだ改善の余地が残されている。

6
2
1

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