本文首发于烂泥行天下linux
前两篇文章咱们介绍了有关open***的搭建与配置文件的讲解,这篇文章咱们再聊介绍下,在tun模式下open***客户端如何与内网机器通讯的问题。windows
1、实际问题centos
先来介绍下目前的基本状况,以下:服务器
一、open***服务器单网卡,经过硬件防火墙把open***服务器的1194端口映射到公网。ide
二、open***服务器所在的网段为192.168.5.1/24网段测试
三、open***客户端得到IP地址为10.8.0.1/24网段spa
要求10.8.0.1/24网段能访问192.168.5.1/24网段的服务器。3d
经过前两篇文章,可知咱们如今的open***客户端已经能够正常链接open***服务器,可是还不能和公司内网的其余机器进行正常通讯。以下:rest
若是open***服务器使用的是tap桥接模式的话,这个问题很容易解决,只须要在open***服务器端经过修改open***配置文件server.conf,向客户端推送公司内网的IP地址段便可。server
可是目前,咱们公司使用的是tun模式,因此须要经过其余手段进行解决。
其实要解决这个问题,咱们只须要进行以下两步操做,就能够解决这个问题。
第一步、修改open***配置文件,向客户端推送192.168.5.1/24网段的路由。(此步能够省略)
第二步、配置IPtables规则。
注意:以上两步操做,第一步操做能够没有,可是配置IPtables规则这一步操做必定不能少。不然客户端仍是没法与内网机器正常通讯。
下面咱们详细介绍这两步的操做。
2、open***服务器配置
在《烂泥:open***配置文件详解》这篇文章中,咱们详细介绍了有关open***的server.conf配置文件,咱们如今须要作的就是把192.168.5.1/24网段路由推送到客户端。具体配置以下:
push "route 192.168.5.0 255.255.255.0"
修改完毕后,咱们要重启open***,以下:
sudo /etc/init.d/open*** restart
有关open***须要修改的配置就这么多,下面开始配置IPtables规则。
3、配置IPtables规则
如今咱们开始配置IPtables规则,咱们须要作的就是把全部来自10.8.0.1/24网段的请求,所有经过open***服务器的eth0网卡转发出去,也就是咱们平时所说的IPtables的NAT规则。
注意:IPtables规则是在open***服务器进行配置的,而不是open***客户端。
IPtables NAT规则以下:
sudo iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o eth0 -j MASQUERADE
sudo iptables -nL -t nat
以上修改完毕后,咱们启动open***客户端,看看是否能够与192.168.5.1/24网段机器进行通讯。
4、测试网段之间的通讯
在open***客户端ping192.168.5.1/24网段机器,以下:
ping 192.168.5.140
telnet 192.168.5.4 22
经过以上两张图,咱们能够看出如今open***客户端已经和内网机器正常通讯。
以上就是有关open*** tun模式下客户端与内网机器通讯的配置过程。
在实际使用open***过程当中,咱们可能还会遇到如下还有几个问题,再此咱们给出相应的open***配置。
5、×××的配置
有时候为了能去国外看看,咱们会购买国外的服务器,搭建open***而后利用这台服务器进行×××。
在open***配置中,咱们只须要在open***服务器的server.conf配置中,开启push "redirect-gateway def1 bypass-dhcp"项便可。以下:
push "redirect-gateway def1 bypass-dhcp"
此时open***客户端拨号后,就会发现已经国外的IP。以下:
经过上图,咱们能够很明显的看到如今IP地址已经国外的了。具体如何使用,你懂的,呵呵。
6、open***客户端linux开机启动问题
由于项目需求,须要一台服务器开机就要链接,远程的open***服务器。若是是windows系统的很简单,配置下就能够了。
而在linux系统下只须要把open***客户端链接open***服务器的命令写入到/etc/rc.local文件中便可。以下:
cat /etc/rc.local
可是有一点须要特别注意,就是open***客户端的配置文件中有关从CA证书、客户端的证书以及客户端密钥文件,必定要写成绝对路径,而不是相对路径,以下:
同时若是是centos系统的话,必定不要配置成在/root/目录下开机启动open***客户端链接open***服务器。
由于通过屡次测试,这样是不能开机open***客户端链接open***服务器的。
7、给客户端指定IP地址
有时候为了实际项目的需求,须要给客户端指定IP地址。那么就能够经过修改open***服务器的配置来达到这个要求。
只须要把server.conf文件中的开启client-config-dir ccd,而后在/etc/open***目录下建立ccd目录。以下:
而后再在ccd目录下根据不一样的客户端建立对应的文件,并在文件中写入以下内容:
ifconfig-push 10.8.0.200 255.255.255.0
以上的意思就是为client这个客户端指定IP地址为10.8.0.200。
如今咱们从新启动open***服务器,而后客户端进行链接。以下:
经过上图,咱们能够很明显的看出。客户端得到的IP地址确实为10.8.0.200。
PS:以上执行是在linux系统上,通过测试发如今windows下若是给客户端指定IP地址的话会报错。猜测这多是一个BUG。
“51cto十周年博客活动”正在进行,你也来参加吧~ 活动地址:http://51ctoblog.blog.51cto.com/26414/1679643