OpenVPN 远程穿越内网(网桥方式)

原创 2011年11月08日 07:03:13

OpenVPN 穿越内网已有很久的历史了,但是在网上大多数文章都没有详细或者准确的论述。

简单的配置可以让openvpn远程连接某台计算机,但是如果需要跨越外网连接某个私网,需要额外的配置,通常,tun方式适合用route来解决,而tap方式则适合用bridge来实现。

本文就bridge实现内网访问的方法做些简介。

1、环境:

服务器端:Ubuntu 10.04 Server,双网卡,一个网卡接外网,静态IP,另一网卡接内网,静态IP=192.168.5.1。

客户端:MS Windows XP,通过adsl路由接外网,网卡在内网由路由器的dhcp分配地址。

2、服务器端安装、配置

安装就很简单啦,登录ubuntu服务器,先 sudo -i 获取root权限,然后 apt-get install bridge-utils openvpn 即可。

配置,首先要建立一个网桥:

编辑 /etc/network/interfaces,我用的是vi来打开的

# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).

# The loopback network interface
auto lo
iface lo inet loopback

# The primary network interface
auto eth0
 iface eth0 inet static
 address 61.xxx.xx.xx
 netmask 255.255.255.0
 
auto eth1
iface br0 inet static
 address 192.168.5.1
 netmask 255.255.255.0


从中可以看出,接外网的是eth0,内网的是eth1,外网的不需要变动,我需要的是建立一个网桥并且把eth1放到桥中:

auto br0
iface br0 inet static
 address 192.168.5.1
 network 192.168.5.0
 netmask 255.255.255.0
 bridge_ports eth1
 bridge_fd 9
 bridge_hello 2
 bridge_maxage 12
 bridge_stp off

iface eth1 inet manual
 up ifconfig $IFACE 0.0.0.0 up
 up ip link set $IFACE promisc on
 down ip link set $IFACE promisc off
 down ifconfig $IFACE down

保存之后,先让这新的配置生效:/etc/init.d/networking restart

稳妥起见,让新的配置正常运行:

ifconfig eth1 down; ifconfig eth1 up; ifconfig br0 down; ifconfig br0 up


至此,网桥搭建完毕并已启动,接下来就创建 OpenVPN 的服务端配置文件了, vi /etc/openvpn/server.conf

local 61.xxx.xx.xx
port 443
proto tcp
dev tap0
up "/etc/openvpn/up.sh br0 tap0"
down "/etc/openvpn/down.sh br0 tap0"
ca /etc/ssl/certs/myca.crt
cert /etc/ssl/certs/mysvr.crt
key /etc/ssl/private/mysvr.pem
dh /etc/ssl/private/dh1024.pem
tls-auth /etc/ssl/private/ta.pem 0
port-share 192.168.5.1 8443
server-bridge 192.168.5.1 255.255.255.0 192.168.5.100 192.168.5.179
;push "dhcp-option DNS 8.8.8.8"
;push "dhcp-option DNS 8.8.4.4"
keepalive 10 120
comp-lzo
user nobody
group nogroup
persist-key
persist-tun

client-to-client
status /var/log/openvpn-status.log
log         /var/log/openvpn.log
verb 3

保存,另创建两个脚本:

#!/bin/sh
# up.sh

BR=$1
DEV=$2
/sbin/ifconfig $DEV promisc up
/usr/sbin/brctl addif $BR $DEV


#!/bin/sh
# down.sh

BR=$1
DEV=$2
/usr/sbin/brctl delif $BR $DEV
/sbin/ifconfig $DEV down

保存后,使其具有可执行权限:chmod 755 /etc/openvpn/up.sh /etc/openvpn/down.sh

将其余文件 myca.crt、mysvr.crt、mysvr.pem、dh1024.pem、ta.pem 复制到适合的路径下,最后启动 OpenVPN:

/etc/init.d/openvpn start


3、客户端安装、配置

下载 OpenVPN 的Windows版本,直接运行安装,同时把OpenVPN-GUI也一起安装了。我选择安装在 D:\Program Files\OpenVPN 目录下。

在 D:\Program Files\OpenVPN\config 下创建 client.ovpn:

client
proto tcp
dev tap
dev-node TAP-0
remote 61.xxx.xx.xx 443
resolv-retry 2
nobind
persist-key
persist-tun
ca "D:\\Program Files\\OpenVPN\\myca.crt"
cert "D:\\Program Files\\OpenVPN\\mycli.crt"
key "D:\\Program Files\\OpenVPN\\mycli.pem"
;remote-cert-eku "TLS Web Server Authentication"
tls-auth "D:\\Program Files\\OpenVPN\\ta.pem" 1
comp-lzo
verb 3

保存,在网络连接那里找到有 OpenVPN 创建的那个网络连接改名为 TAP-0,将文件myca.crt、mycli.crt、mycli.pem、ta.pem复制到适合的地方。

最后,双击桌面上的 OpenVPN-GUI 快捷方式,系统托盘中多了一个小图标,右键点击这个图标,点“连接”。

稍等一下,图标变成绿色表示连接成功,现在,你可以用 ping 命令试一下是否可以远程访问 192.168.5.xxx 网中的其他电脑了。

相关文章推荐

CentOS7使用桥接模式搭建openvpn的问题汇总

1.server.conf的中文说明 http://www.woyaohuijia.cn/show/121.html 2.bridge-start配置 #!/bin/sh ...

使用OpenVPN的桥接模式扩展内部局域网

1.背景 OpenVPN是一款高度可扩展的VPN软件,除了既有的将应用客户端安全接入服务器这一传统功能外,还可以让你无缝的接入一个远程的局域网,正如你身在该局域网一样,如果你不用OpenVPN,你将...
  • dog250
  • dog250
  • 2011年10月01日 20:44
  • 22141

OpenVPN 实现跨网络远程桌面访问

1 场景需求: 本公司系统运行在客户现场的Windows server环境,负责采集数据,并进行数据分析工作,展示层在云端Linux服务器部署,之间通过OpenVPN建立连接。也就是访问数据...

windows通过linux下的openvpn登入远程服务器内网

需求:在某些网络要求比较严格的环境中,我们在异地无法远程访问公司内网,给我们的工作带来了极大的不便;但是通过openvpn我们可以轻松实现,下面就来介绍下。 1.网络环境: 公司openvpn服务器(...

公司内网Debian Server上的openvpn服务器搭建并通过SSH隧道转发到广域网

由于戴维营公司在长沙的学员,研发人员和北京的研发人员需要协同研发,故需要让北京的兄弟们加入到长沙办公室的内网,访问版本 管理服务器,于是采用在内网服务器上搭建一个OpenVPN服务,并把内网(铁道的宽...

使用openvpn连通多个机房内网

一.环境简述之前一直使用公网ip来连接各个机房的服务器,现在ip不太够用了,而且有些机器也不需要用到公网ip.通过openvpn将多个机房连接起来,组成一个局域网,机器ip可以做到唯一性,便于标识.既...

openVPN 打通IDC机房与公司内网

1 拓扑图   需求一: 使广州机房,中山机房,金华机房内网互通 需求二: 公司内网可以直接访问机房内网,而机房内网不能访问公司内网                         2 openV...
  • reyleon
  • reyleon
  • 2016年01月21日 11:49
  • 4577

Linux设置openvpn使外网访问内网的共享文件夹

关于openvpn网上说的很多,几个小时里吧,为了实现这个功能我看了好些文章,不过基本上没有找到让我满意的,觉得很多都写的不清楚,或者关键的地方 就没写,最终我瞎猫撞死耗子,看网上的文章东拼西凑乱试一...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:OpenVPN 远程穿越内网(网桥方式)
举报原因:
原因补充:

(最多只允许输入30个字)