Я пытаюсь подключить удаленный сервер через openvpn, используя C #.Я могу подключить его успешно.но разъединение, кажется, не работает должным образом.Когда я закрываю свое приложение, я не могу получить доступ к Интернету.Мне нужно вручную отключить адаптер TAP, а затем снова запустить приложение.Я проверил свою «печать маршрута», и да, Tap идет впереди интернета и, следовательно, не может получить доступ к сети.
Я подключаюсь с помощью: openvpn --config client.ovpn --ca certificate.cer --auth-user-pass user.txt
Мой код отключения:
public void DisconnectServer()
{
// Write the logs
if (sb != null)
IOUtility.WriteToFile(sb.ToString(), "ConnectionLogs.log");
processInfo = null;
if (process != null)
{
//process.Close();
if (!process.HasExited)
{
process.CancelOutputRead();
ProcessThreadCollection ptc = process.Threads;
Console.WriteLine("////// PROCESSED THREAD = " + ptc.Count);
for (int i = 0; i > ptc.Count; i++)
{
ProcessThread pt = ptc[i];
pt.Dispose();
ptc.Remove(pt);
Console.WriteLine("REmoed Thread @ " + i);
}
process.CloseMainWindow();
process.Kill();
}
}
sb = null;
connected = false;
}
При поиске в сети для этой проблемы я обнаружил, что для безопасного выхода из openvpn используем управление.Но я не могу понять, как запустить код управления.При запуске я добавил: openvpn --config ca.ovpn --ca cert.cer --management 127.0.0.1 12345 Затем, как подать сигнал SIGTERM, чтобы закрыть openvpn.В новом cmd я попытался: openvpn --management-signal SIGTERM, но все не работает.
OpenVpn не будет установлен в качестве службы, поэтому я не могу использовать атрибут --service.
Может кто-нибудь направить меня, где я иду не так при отключении.Как обрабатывать управляющий-сигнальный код.Какой лучший способ отключиться от сервера openvpn.Могу ли я также выйти из самого openvpn?
Пожалуйста, помогите мне.Много искал в интернете и нашел какую-то помощь, но пока безуспешно.Застрял в этом вопросе.
Спасибо