首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >断开OpenVpn与应用程序的连接时出现问题

断开OpenVpn与应用程序的连接时出现问题
EN

Stack Overflow用户
提问于 2011-02-08 19:10:21
回答 1查看 2.3K关注 0票数 0

我正在尝试使用C#通过openvpn连接远程服务器。我能够成功地连接它。但是断开连接似乎不能正常工作。一旦我关闭我的应用程序,我就无法访问互联网。我必须手动禁用TAP适配器,然后启用才能再次执行应用程序。我检查了一下我的“路由打印”,是的Tap走在了互联网的前面,因此无法访问网络。

我使用以下命令连接: openvpn --config client.ovpn --ca certificate.cer --auth-user-pass user.txt

我的断开代码是:

代码语言:javascript
复制
    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。但是我不知道如何运行managemetn代码。开始时我添加了: openvpn --config ca.ovpn --ca cert.cer --management 127.0.0.1 12345然后如何给出信号来关闭openvpn。在new cmd中,我尝试了: openvpn --management-signal SIGTERM,但事情不起作用。

服务不会作为服务安装,所以我猜不能使用-- OpenVpn属性。

有谁能告诉我在断开连接时我哪里错了?如何处理managemetn-signal代码。这是从openvpn服务器断开连接的最佳方式。我也可以退出openvpn本身吗?

请帮帮我。我在网上搜索了很多,找到了一些帮助,但还没有成功。卡在这个问题上了。

谢谢

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-02-17 21:11:53

感谢所有人,

我找到了解决方案,我就是这样成功的:

代码语言:javascript
复制
            foreach (Process p in Process.GetProcesses())
        {
            if (p.ProcessName.StartsWith("openvpn"))
            {
                p.Kill();
                Console.WriteLine("Killed Process");
                break;
            }
        }

上面的代码帮助解决了这个问题,而不是使用它的线程和所有东西。

我希望这对其他人也有帮助。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4932306

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档