原文地址: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. 在Windows中隐藏用户的方法

    这两天新建了一个用户用于共享文件,由于我的电脑只有我一个人用,多了一个用户后在登录界面上觉得挺碍事的,便想把它隐藏起来.找了一下,可以通过如下方式实现: 在注册表编辑器新建项值: HKEY_LOCAL ...

  2. 一个TextView使用不同的颜色

    一个TextView使用不同的颜色: textview中首先需要已经有内容了 public static void ColorFormatTextView(TextView tv,int color, ...

  3. CDN原理

    要了解CDN的实现原理,首先让我们来回顾一下网站传统的访问过程,以便理解其与CDN访问方式之间的差别: 由上图可见,传统的网站访问过程为:1. 用户在浏览器中输入要访问的域名:2. 浏览器向域名解析服 ...

  4. MyEclipse常用操作技巧

    1.源码和帮助文档的的关连 下面以关联struts2-core-2.3.14.2.jar源代码为例: 如下为示意图 2.拷贝项目的时候,要注意 将项目的web-root fold改成更新后的名字项目名 ...

  5. SharePoint 2013版本功能对比介绍

    转:http://www.fengfly.com/plus/view-213720-1.html 在SharePoint使用中,经常纠结于版本问题,SharePoint 2013主要有免费的Found ...

  6. mysql server install

    1.首先在mysql的官网www.mysql.com或者其他网站下载mysql.zip或者mis格式的文件目前5.6的差不多300多M. 2.zip压缩包是绿色版的不用安装,直接用dos命令操作就行. ...

  7. Asp.net MVC中的ViewData与ViewBag

    Asp.net MVC中的ViewData与ViewBag 在Asp.net MVC 3 web应用程序中,我们会用到ViewData与ViewBag,对比一下: ViewData ViewBag 它 ...

  8. linux内核申请内存函数

    kmap函数:    把某块高端内存映射到页表,然后返回给用户一个填好vitual字段的page结构    建立永久地址映射,不是简单的返回virtual字段的pageioremap:    驱动程序 ...

  9. oracle 存储过程 动态sql语句

    一.在oracle项目开发中越到问题: 在利用ODP向oracle中插入数据时,如果这样写:   insert into clobTable (id, story) values(1,'....'); ...

  10. oracle创建表空间语句分解

    1 create tablespace db_name 2 datafile 'D:\oracle\product\10.2.0\oradata\orcl\db_name_.dbf' size 200 ...