OpenVPNシステムタイムアウトエラーが発生しましたが、動作します。

OpenVPNシステムタイムアウトエラーが発生しましたが、動作します。

次の設定を含む/lib/systemd/system/openvpn.serviceファイルがあります。

[Unit]
Description=OpenVPN client
After=network.target

[Service]
Type=forking
PIDFile=/var/run/openvpn/%i.pid
ExecStart=/usr/sbin/openvpn --dameon --writepid /var/run/openvpn/openvpn.pid --config /etc/openvpn/pia/Mexico.ovpn
ExecStop=-/bin/kill -TERM $MAINPID
Restart=on-failure


[Install]
WantedBy=multi-user.target

systemctl start openvpnを実行するたびに、次のような奇妙なエラーが発生します。

Job for openvpn.service failed because a timeout was exceeded. See "systemctl status openvpn.service" and "journalctl -xe" for details.

ところでパブリックIPを確認してみるとVPN IPが出てきます。しかし、数秒ごとに変わりますが、OpenVPNが再起動されるためだと思います...

このエラーメッセージに対してコマンドを実行すると、次のようになります。

Jun 19 04:29:33 test systemd[1]: openvpn.service: PID file /var/run/openvpn/.pid not readable (yet?) after start: No such file or directory

/var/run/openvpnからls -l出力:

-rw-r--r-- 1 root root 5 Jun 19 04:32 openvpn.pid

それで、何が間違っている可能性があるのか​​理解できませんか?オペレーティングシステムは、ソースからコンパイルされたOpenVPN 2.4.2を含むUbuntu 16.04です。 Mexico.confは私のconfファイルです。 .ovpnを.confに名前を変更しました。

PIDFILEを次に変更すると、PIDFile=/var/run/openvpn/openvpn.pid完全に起動しません。

この設定をガイドのどこかにコピーしましたが、名前が指定されていると機能します。 [Eメール保護]ただし、同じ設定でopenvpn.serviceという名前を指定すると、上記のエラーが発生します。特別な理由がありますか?設定は次のとおりです。

[Unit]
Description=OpenVPN client
After=network.target

[Service]
RuntimeDirectory=openvpn
PrivateTmp=true
KillMode=mixed
Type=forking
PIDFile=/var/run/openvpn/%i.pid
ExecStart=/usr/sbin/openvpn --daemon --writepid /var/run/openvpn/openvpn.pid --cd /etc/openvpn/pia/ --config Mexico.conf
ExecReload=/bin/kill -HUP $MAINPID
WorkingDirectory=/etc/openvpn
Restart=on-failure
RestartSec=3
ProtectSystem=yes
LimitNPROC=10
DeviceAllow=/dev/null rw
DeviceAllow=/dev/net/tun rw


[Install]
WantedBy=multi-user.target

名前を指定すると、これらの設定が機能することがわかりました。[Eメール保護]ただし、次のような致命的ではないエラーが発生します。

ERROR: Linux route add command failed: external program exited with error status: 7

WARNING: this configuration may cache passwords in memory -- use the auth-nocache option to prevent this

ベストアンサー1

あなたのサービスが文句を言う理由は、受信できないパラメータが必要なためです。パラメータの位置は次のとおりです。[Eメール保護]どこでも見ることができるファイル%私、特にラインで

 PIDFile=/var/run/openvpn/%i.pid

この内容も反映されなければなりません。実行開始交換するラインの下--writepid /var/run/openvpn/openvpn.pid何が起こったのか--writepid /run/openvpn/%i.pid

サービスを使用する正しい方法。[Eメール保護]パラメータを渡すだけです。例えば

 systemctl enable [email protected]
 systemctl start  [email protected]

この簡単な例では、渡されたパラメータ(顧客)はプロセスのPIDを格納するファイルの名前にすぎないので、好きなように名前を付けることができます。サービスファイルの名前を次のように変更します。/lib/systemd/システム/[Eメール保護]確信しています。インストールしたときと同じようにうまく機能します。

openvpnがまだ機能している理由は、実際にあなたが見逃した唯一のものはopenvpn設定ではなく、PIDファイルの名前です。

他の2つのエラーの場合、2番目のエラーは警告なので注意してください(=使用認証ノーキャッシュ構成ファイルのオプション)。第二に、診断のためにより多くの情報が必要です。つまり完全なエラーメッセージ、オープンVPN構成ファイルとルーティングテーブル(IPパスの表示)後ろにVPN設定後。

おすすめ記事