原文地址:http://www.365mini.com/page/18.htm

在一些公司或者其他受限的网络环境中,使用的是HTTP代理服务器上网。在这种情况下,使用OpenVPN客户端可能无法连接服务器。此时,我们可以设置OpenVPN客户端以HTTP代理方式连接服务器。

OpenVPN支持三种认证模式使用HTTP代理连接:

  1. 不需要认证的HTTP代理。
  2. 基本认证的HTTP代理。
  3. 基于NTLM的HTTP代理(NTLM,NT LAN Manager的缩写,是Windows NT早期版本的标准安全协议)。

使用HTTP代理需要TCP协议的支持,因此你需要在OpenVPN服务器和客户端的配置文件中都设置TCP作为传输协议。如果你以前使用的是UDP协议,而不是TCP协议,你应该在配置文件中将其改为TCP协议。(服务器端配置文件路径为“安装目录\config\server.ovpn”,客户端配置文件路径为“安装目录\config\client.ovpn”)。

OpenVPN_HTTP_Proxy必须使用TCP协议

此外,你还需要进行以下额外的操作。

举个例子,如果你原来用来上网的HTTP代理服务器IP是192.168.5.1,代理端口是8080,那么你需要在OpenVPN客户端的配置文件中添加如下配置(根据情况选择其中的一条命令):

http-proxy 192.168.5.1 8080  #如果HTTP代理不需要用户名及密码认证
http-proxy 192.168.5.1 8080 stdin basic  #如果HTTP代理需要基本认证
http-proxy 192.168.5.1 8080 stdin ntlm  #如果HTTP代理需要NTLM认证

如果你使用的HTTP代理需要额外的认证(也就是上面三种情况的后面两种),在连接时,系统会弹出窗口并要求你输入对应的用户名/密码。如果你不喜欢每次连接都输入,你可以将用户名/密码存放在一个文件中,并用文件名替换掉上面命令语句中的stdin。注意:文件中的第一行存放用户名,第二行存放密码。(文件应和客户端配置文件存放在同一目录才能直接以文件名替代,即安装目录\config\文件夹,否则可能需要输入相对路径或绝对路径)。

有些读者可能不清楚在哪里查看自己上网使用的HTTP代理IP地址和端口,你可以打开IE浏览器的【工具】-【Internet选项】菜单,按照如下图所示的方式查看自己的HTTP代理服务器的IP地址和端口:

此外,值得注意的是,一旦我们在OpenVPN客户端中设置了HTTP代理,那么浏览器本身的HTTP代理设置就应该去掉,否则我们连接OpenVPN服务器成功但可能无法通过IE浏览器访问OpenVPN服务器上的站点等资源 (去掉上图右侧【代理服务器】下面的复选框”为LAN使用代理服务器”即可)。

到这里,我们就可以使用OpenVPN客户端通过HTTP代理正常连接服务器了。

备注:部分读者按照上述配置正确完成操作后,仍然无法正常连接,并出现TLS ERROR的错误信息。这可能是HTTP代理服务器不允许客户端使用TLS协议通过当前端口连接OpenVPN服务器的缘故。
例如:你的OpenVPN服务器监听的端口为:80;你的HTTP代理服务器的IP地址为192.168.5.1,端口号为8080。此时,你可能无法正常连接OpenVPN服务器,你需要将OpenVPN服务器的监听端口改为443(TLS协议的默认端口)或其他受支持的端口(客户端的配置文件中的端口号也应该做相应修改)。

(转)OpenVPN使用HTTP代理连接服务器的更多相关文章

  1. linux使用http代理连接服务器设置方法

    连接腾讯的额cvm服务器官方给出的也有个方法,详细可以看这里:http://wiki.open.qq.com/wiki/%E4%BB%8E%E6%9C%AC%E5%9C%B0linux%E6%9C%B ...

  2. Qt QTcpSocket 对连接服务器中断的不同情况进行判定

    简述 对于一个C/S结构的程序,客户端有些时候需要实时得知与服务器的连接状态.而对于客户端与服务器断开连接的因素很多,现在就目前遇到的情况进行一下总结. 分为下面六种不同情况 客户端网线断开 客户端网 ...

  3. QTcpSocket 对连接服务器中断的不同情况进行判定(六种情况,其中一种使用IsNetworkAlive API方法)

    简述 对于一个C/S结构的程序,客户端有些时候需要实时得知与服务器的连接状态.而对于客户端与服务器断开连接的因素很多,现在就目前遇到的情况进行一下总结. 分为下面六种不同情况 客户端网线断开 客户端网 ...

  4. 项目部署问题:xftp无法连接服务器、Nginx403 Forbidden解决、nginx反向代理解决前端跨域问题

    一.xftp无法连接服务器 在xftp中配置正确的ip,用户名和密码后,居然无法连接 解决方案:将协议里面的FTP换成SFTP,注意换成SFTP后端口就默认换成22,要还是原来的21就还是连不上的哈 ...

  5. ASP.NET SignalR 与 LayIM2.0 配合轻松实现Web聊天室(二) 之 ChatServer搭建,连接服务器,以及注意事项。

    上篇:ASP.NET SignalR 与 LayIM2.0 配合轻松实现Web聊天室(一) 之 基层数据搭建,让数据活起来(数据获取) 上一篇我们已经完成了初步界面的搭建工作,本篇将介绍IM的核心内容 ...

  6. 第十二篇 SQL Server代理多服务器管理

    本篇文章是SQL Server代理系列的第十二篇,详细内容请参考原文 在这一系列的上一篇,我们查看了维护计划,一个维护计划可能会创建多个作业,多个计划.你还简单地看了SSIS子系统,并查看了维护计划作 ...

  7. 关于SQL2008R2连接服务器出错问题

    在安装SQL2008R2后,在公司里用VS2013测试可以连接,可是回到寝室却出了问题,当打开SSMS连接服务器的时候会提示: “在与SQL Server建立连接时出现与网络相关的或特定于实例的错误. ...

  8. nginx反向代理-后端服务器组设置

    nginx服务器的反向代理时其最常用的重要功能之一,在实际工作中应用广泛,涉及的配置指令也比较多.下面会尽量详细地介绍对应的指令,及其使用状态. 反向代理一般是互联网需要向内网拉取资源,比如访问一个w ...

  9. 【译】第十二篇 SQL Server代理多服务器管理

    本篇文章是SQL Server代理系列的第十二篇,详细内容请参考原文 在这一系列的上一篇,我们查看了维护计划,一个维护计划可能会创建多个作业,多个计划.你还简单地看了SSIS子系统,并查看了维护计划作 ...

随机推荐

  1. Samba nsswitch/pam_winbind.c文件输入验证漏洞

    漏洞名称: Samba nsswitch/pam_winbind.c文件输入验证漏洞 CNNVD编号: CNNVD-201312-047 发布时间: 2013-12-05 更新时间: 2013-12- ...

  2. MVC 自定义AuthorizeAttribute实现权限管理

    在上一节中提到可以使用AuthorizeAttribute进行权限管理: [Authorize] public ActionResult TestAuthorize() { return View() ...

  3. POJ 2570

    思路:floyd + 位运算.map[i][j]的二进制位前26位表示i到j路径里面字母a-z的存在情况,为1说明该字母存在,为0不存在. #include<iostream> #incl ...

  4. oracle自动执行一个sql文件的脚本

    如图 文件夹 打开文件夹,如图 autoExeSyn-local.bat文件里的内容如下 @echo off -----------用户/密码-实例-------------执行的sql文件---&g ...

  5. Request Connection: Remote Server @ 192.229.145.200:80

    录制Loadrunner脚本时,提示: Request Connection: Remote Server @ 192.229.145.200:80   NOT INTERCEPTED!(REASON ...

  6. GTK+中的树状列表构件(GtkTreeView)

    GTK+中的树状列表构件(GtkTreeView) GTK+中的树状列表构件(GtkTreeView) 在本章的GTK+程序设计教程中,我们将向大家重点介绍非常常用也有点复杂的构件--GtkTreeV ...

  7. Web---JSP注册技术的的演绎(3代)-JSP/EJB/Servlet/POJO/JavaBean

    我们可以这么理解JSP注册技术的发展过程: 第一代JSP技术:纯JSP开发. 第二代JSP技术:JSP+EJB开发. (EJB简单来说就是把已经编写好的程序(即:类)打包放在服务器上执行.) 第三代J ...

  8. 字典转模型第三方框架---MJExtension

    字典转模型第三方框架 Mantle 所有模型都必须继承自MTModel JSONModel 所有模型都必须继承自JSONModel MJExtension 不需要强制继承任何其他类 设计框架需要考虑的 ...

  9. r.js 配置文件 build.js 不完整注释

      -----------------------------------------------------------------------r.js 配置文件 example.build.js ...

  10. Java笔记(一)……概述

    一.Java是什么 Java是SUN(Stanford University Network,斯坦福大学网络公司)1995年推出的一门高级编程语言. 二.Java的发展简史 在20世纪90年代初,Su ...