OpenVPNクライアントは、/ etc/init.d/openvpnによって初めて起動されたときに正常に動作しますが、マスターサーバーが再起動された場合は再接続できません。
これは私がsyslogで得るエラーです:
ovpn-openvpn[8113]: Note: Cannot ioctl TUNSETIFF tun: Operation not permitted (errno=1)
ovpn-openvpn[8113]: Note: Attempting fallback to kernel 2.2 TUN/TAP interface
ovpn-openvpn[8113]: Cannot allocate TUN/TAP dev dynamically
ovpn-openvpn[8113]: Exiting
これは、tunデバイスのファイルパーミッションです。
crw-rw-rw- 1 root root 10, 200 2011-03-24 16:51 /dev/net/tun
その後、「/ etc/init.d/openvpnrestart」を使用してクライアントを再起動すると、正常に接続されます。
また、問題は、openvpnがユーザー「nobody」として実行されている場合にのみ発生します。 'root'として実行するとすべてが解決されますが、実行可能な解決策ではありません。
'persist-tun'オプションも少し役立ちますが、あまり役に立ちません。トンネルはまだ一晩続きません。
助言がありますか?
サーバーデーモンの再起動間でクライアントの<-> IPアドレスマッピングを維持するには、サーバーで--ifconfig-pool-persistオプションを使用する必要があると思います。それ以外の場合、クライアントは、-persist-tunがアクティブな場合でも、ifconfigを呼び出してtunデバイスを再構成する必要があります。ルート特権がない場合、これは必ず失敗します。