`

openvpn tun模式下客户端与内网机器通信

 
阅读更多

前两篇文章我们介绍了有关openvpn的搭建与配置文件的讲解,这篇文章我们再聊介绍下,在tun模式下openvpn客户端如何与内网机器通信的问题。

一、实际问题

先来介绍下目前的基本情况,如下:

1、openvpn服务器单网卡,通过硬件防火墙把openvpn服务器的1194端口映射到公网。

2、openvpn服务器所在的网段为192.168.5.1/24网段

3、openvpn客户端获得IP地址为10.8.0.1/24网段

要求10.8.0.1/24网段能访问192.168.5.1/24网段的服务器。

通过前两篇文章,可知我们现在的openvpn客户端已经可以正常连接openvpn服务器,但是还不能和公司内网的其他机器进行正常通信。如下:

clip_image001

如果openvpn服务器使用的是tap桥接模式的话,这个问题很容易解决,只需要在openvpn服务器端通过修改openvpn配置文件server.conf,向客户端推送公司内网的IP地址段即可。

但是目前,我们公司使用的是tun模式,所以需要通过其他手段进行解决。

其实要解决这个问题,我们只需要进行如下两步操作,就可以解决这个问题。

第一步、修改openvpn配置文件,向客户端推送192.168.5.1/24网段的路由。(此步可以省略)

第二步、配置IPtables规则。

注意:以上两步操作,第一步操作可以没有,但是配置IPtables规则这一步操作一定不能少。否则客户端还是无法与内网机器正常通信。

下面我们详细介绍这两步的操作。

二、openvpn服务器配置

在《烂泥:openvpn配置文件详解》这篇文章中,我们详细介绍了有关openvpn的server.conf配置文件,我们现在需要做的就是把192.168.5.1/24网段路由推送到客户端。具体配置如下:

push "route 192.168.5.0 255.255.255.0"

clip_image002

修改完毕后,我们要重启openvpn,如下:

sudo /etc/init.d/openvpn restart

clip_image003

有关openvpn需要修改的配置就这么多,下面开始配置IPtables规则。

三、配置IPtables规则

现在我们开始配置IPtables规则,我们需要做的就是把所有来自10.8.0.1/24网段的请求,全部通过openvpn服务器的eth0网卡转发出去,也就是我们平时所说的IPtables的NAT规则。

注意:IPtables规则是在openvpn服务器进行配置的,而不是openvpn客户端。

IPtables NAT规则如下:

sudo iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o eth0 -j MASQUERADE

sudo iptables -nL -t nat

clip_image004

以上修改完毕后,我们启动openvpn客户端,看看是否可以与192.168.5.1/24网段机器进行通信。

四、测试网段之间的通信

在openvpn客户端ping192.168.5.1/24网段机器,如下:

ping 192.168.5.140

clip_image005

telnet 192.168.5.4 22

clip_image006

通过以上两张图,我们可以看出现在openvpn客户端已经和内网机器正常通信。

以上就是有关openvpn tun模式下客户端与内网机器通信的配置过程。

在实际使用openvpn过程中,我们可能还会遇到以下还有几个问题,再此我们给出相应的openvpn配置。

五、fanqiang的配置

有时候为了能去国外看看,我们会购买国外的服务器,搭建openvpn然后利用这台服务器进行fanqiang。

在openvpn配置中,我们只需要在openvpn服务器的server.conf配置中,开启push "redirect-gateway def1 bypass-dhcp"项即可。如下:

push "redirect-gateway def1 bypass-dhcp"

clip_image007

此时openvpn客户端拨号后,就会发现已经国外的IP。如下:

clip_image008

通过上图,我们可以很明显的看到现在IP地址已经国外的了。具体如何使用,你懂的,呵呵。

六、openvpn客户端linux开机启动问题

因为项目需求,需要一台服务器开机就要连接,远程的openvpn服务器。如果是windows系统的很简单,配置下就可以了。

而在linux系统下只需要把openvpn客户端连接openvpn服务器的命令写入到/etc/rc.local文件中即可。如下:

cat /etc/rc.local

clip_image009

但是有一点需要特别注意,就是openvpn客户端的配置文件中有关从CA证书、客户端的证书以及客户端密钥文件,一定要写成绝对路径,而不是相对路径,如下:

clip_image010

同时如果是centos系统的话,一定不要配置成在/root/目录下开机启动openvpn客户端连接openvpn服务器。

因为经过多次测试,这样是不能开机openvpn客户端连接openvpn服务器的。

七、给客户端指定IP地址

有时候为了实际项目的需求,需要给客户端指定IP地址。那么就可以通过修改openvpn服务器的配置来达到这个要求。

只需要把server.conf文件中的开启client-config-dir ccd,然后在/etc/openvpn目录下创建ccd目录。如下:

clip_image011

clip_image012

然后再在ccd目录下根据不同的客户端创建对应的文件,并在文件中写入如下内容:

ifconfig-push 10.8.0.200 255.255.255.0

clip_image013

以上的意思就是为client这个客户端指定IP地址为10.8.0.200。

现在我们重新启动openvpn服务器,然后客户端进行连接。如下:

clip_image014

通过上图,我们可以很明显的看出。客户端获得的IP地址确实为10.8.0.200。

PS:以上执行是在linux系统上,经过测试发现在windows下如果给客户端指定IP地址的话会报错。

这里需要设置openvpn的兼容性,兼容win7(我的操作系统是win7的), 然后设置成管理员权限启动。

 

 

分享到:
评论

相关推荐

    基于openvpn的web管理系统,前后端分离设计。

    基于openvpn的web管理系统,前后端分离设计。

    openvpn的几种组网方式

    openvpn的几种组网方式

    Qt实现的SSL通信客户端和服务器

    3. 当有新的连接请求时,服务器会创建一个`QSslSocket`实例,用于与客户端进行安全通信。 4. 在`QSslSocket`上设置SSL选项,如启用特定的加密套件和验证策略。 5. 处理客户端的连接请求,读写数据。 客户端的实现...

    openvpn 2.5.10版本

    openvpn 2.5.10版本,通过三板斧即可安装,证书生成需要的easy-rsa3.1.5版本也在压缩包里面。

    n2nguien 内网穿透,搭建虚拟局域网工具windows 客户端

    n2n实现内网穿透,搭建虚拟局域网 n2n 跟 Ze­rotier 相类似,然而 Ze­rotier 的设置方面更容易些,但稳定性取决于官方的服务器,由于国内的互联网环境,Ze­rotier 经常掉线。n2n 虽然设置起来麻烦一些,但稳定性...

    softether客户端linux版

    softether客户端linux版本的,你可以试试

    基于Java开发的一款基于Netty的内网穿透工具,主要用于将内网服务反向代理到公网访问.zip

    当内网设备需要被公网访问时,客户端会与服务器建立连接,服务器作为中介转发公网的请求到内网客户端,并将客户端的响应回传给公网。这种设计克服了NAT(网络地址转换)对直接公网访问内网的限制。 在实际应用中,...

    xfire 服务端和客户端源码完整工程

    1. **网络通信模块**:使用了Socket编程实现客户端与服务端的连接,处理TCP/IP协议,确保数据的可靠传输。 2. **用户管理模块**:包括用户注册、登录验证、状态更新等功能,这部分代码涉及数据库操作,可能使用了如...

    华为 ssl 安全客户端 macos版本

    macos使用,seco client macosx-7.0.2.26

    N2N-v2.1客户端(windows)

    N2N-v2.1客户端windows版 1、先运行tap-windows-9.21.2.exe,添加虚拟网卡TAP-Windows Adapter V9 2、编辑runV21.bat,输入你的IP和服务器等数据 3、设置防火墙,运行runV21.bat。OK! 注:需要“用管理员身份运行...

    CheckPointClient客户端64位

    CheckPointClient vpm Client windows 64位都有 官网下载

    中兴客户端

    "中兴客户端"是一款专为校园网络设计的登录工具,主要服务于在校学生和教职员工,使得他们能够方便快捷地接入校园内部的网络资源。这款客户端软件由中兴通讯公司开发,提供了稳定、安全的网络连接服务,是校园网络...

    天融信win10版ssl客户端

    这款SV独立客户端特别强调对Windows 10系统的完美支持,意味着它已经过优化,可以与Windows 10操作系统无缝集成,不会出现兼容性问题,用户可以在win10环境下顺畅地进行安全连接。 “SVClientSetup(3.2.1.14.0.1)....

    锐捷客户端V5.20(win10可用).

    锐捷客户端V5.20版本,win10可用。有线,无线认证均可。

    vpn 客户端及SVN软件

    vpn 客户端及SVN软件用于代码管理、访问控制 适用于Windows

    一个UDP服务端和客户端程序,可以用来测试一下硬件通信模组否可用。

    在测试过程中,硬件工程师可以在客户端模拟不同的通信场景,比如发送不同大小的数据包,或者模拟网络延迟和丢包情况,以测试硬件模组在各种条件下的表现。 "UDPServerClient-master"这个压缩包文件名表明,这是一个...

    SVN客户端安装及使用

    ### SVN客户端安装及使用 #### 一、SVN客户端安装 **SVN(Subversion)** 是一个开源的版本控制系统,用于管理文件和目录的集合。TortoiseSVN是其中一个非常受欢迎的SVN客户端,它为Windows系统提供了一个直观且...

    核桃的(hthunter)共享软件下载客户端

    在【基于邮箱的文件发布中心】模式下,软件发布者将软件包通过电子邮件发送到一个集中的服务器,然后用户通过客户端连接到这个中心,以电子邮件地址作为身份标识来获取这些软件资源。这种发布方式有以下几个关键知识...

    openconnect-gui:镜像-图形化OpenConnect客户端(测试阶段)

    OpenConnect GUI 这是openconnect VPN的GUI客户端。 该客户端处于beta测试阶段。 不能假定它提供了所需的安全性。 查看项目网页以获取详细描述,屏幕截图和其他相关项目。支持平台Microsoft Windows 7及更高版本...

    SSLVPN计算机独立客户端配置方法.doc

    SSL VPN 计算机独立客户端配置方法 SSL VPN 计算机独立客户端配置方法是一个重要的 IT 知识点,对于网络安全和远程访问非常重要。下面我们将详细介绍 SSL VPN 计算机独立客户端的配置方法。 一、安装 SSL VPN 独立...

Global site tag (gtag.js) - Google Analytics