您的浏览器过于古老 & 陈旧。为了更好的访问体验, 请 升级你的浏览器
Ready 发布于2013年02月02日 04:58

原创 OpenVPN使用HTTP代理连接服务器

19475 次浏览 读完需要≈ 6 分钟

内容目录

在一些公司或者其他受限的网络环境中,使用的是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\文件夹,否则可能需要输入相对路径或绝对路径)。

OpenVPN_proxy_2

OpenVPN_proxy_3

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

OpenVPN_Proxy_4

此外,值得注意的是,一旦我们在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协议的默认端口)或其他受支持的端口(客户端的配置文件中的端口号也应该做相应修改)。
  • CodePlayer技术交流群1
  • CodePlayer技术交流群2

0 条评论

撰写评论