烂泥:open***双网卡客户端与内网机器通讯

前段时间写了一篇有关open***搭建与内网机器通讯的文章,那篇文章是基于服务器单网卡进行配置的,文章连接为《烂泥:open*** tun模式下客户端与内网机器通讯》。ubuntu

这篇文章咱们再来介绍下双网卡open***客户端与内网机器通讯的配置。centos

1、需求说明安全

为何要写open***双卡的配置?服务器

是由于通常IDC机房都是提供多网卡服务器,同时目前比较流行的云服务器阿里云提供的也是双网卡,而腾讯云以及亚马逊的aws都是单网卡。各个云服务器商的网卡配置个数,以下图:tcp

clip_p_w_picpath001[4]

clip_p_w_picpath002[4]

clip_p_w_picpath003[4]

2、业务要求ide

如今IDC机房那边有一台服务器配A配置的是双网卡,一块配置的是公网IP(173.33.141.50),一块配置的是内网IP(10.10.1.17)。另外在这个IDC机房内的其余服务器,为了安全起见,配置都是的内网IP10.10.1.0/24网段的。测试

如今要求很简单,经过服务器A管理内网的其余服务器。阿里云

3、解决方案spa

为了达到上述要求,咱们能够在服务器A上搭建open***服务,而后客户端经过这台open***服务器做为跳板机管理内网服务器。3d

open***的搭建很简单,能够参考这篇文章《烂泥:ubuntu 14.04搭建Open×××服务器》。

这里有个难点就是客户端与内网服务器通讯的问题。

open***客户端与内网服务器通讯问题,若是是单网卡的话,咱们只须要按照《烂泥:open*** tun模式下客户端与内网机器通讯》这篇文章进行操做便可。

那么服务器双网卡如何配置呢?

其实双网卡的配置,其实和单网卡的配置差很少,都是要修改open***服务的配置文件和配置iptables规则。只是iptables规则改变下了而已,下面咱们实际配置下。

4、open***具体配置

open***服务配置文件内容以下:

grep -vE '^;|^$|^#' /etc/open***/server.conf

port 1194

proto tcp

dev tun

ca ca.crt

cert ilanni.crt

key ilanni.key # This file should be kept secret

dh dh2048.pem

server 10.8.0.0 255.255.255.0

ifconfig-pool-persist ipp.txt

push "route 10.10.1.0 255.255.255.0"

push "dhcp-option DNS 223.5.5.5"

client-to-client

duplicate-cn

keepalive 10 120

comp-lzo

persist-key

persist-tun

status open***-status.log

log open***.log

verb 3

clip_p_w_picpath004[4]

上述open***服务配置文件中,push "route 10.10.1.0 255.255.255.0"这条命令必定要有,它是推送给客户端的路由配置。

5、IPtables配置

open***配置完毕后,咱们如今开始配置open***服务器的IPtables规则。

如今服务器的网卡配置以下:

ifconfig

clip_p_w_picpath005[4]

经过上图,咱们能够看到网卡em2是和内网进行通讯的,咱们如今须要作的就是把全部从open***客户端(10.8.0.0/24)请求到10.10.1.0/24网段的数据所有假装成网卡em2(10.10.1.17)发出的。也就是说须要在iptables上作一个NAT规则。

命令以下:

iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o em2 -j SNAT --to-source 10.10.1.17

iptables -nL -t nat

上述命令的意思是把全部来自10.8.0.0/24网段的请求假装成10.10.1.17这个IP地址,而后经过em2这个网卡发出。

clip_p_w_picpath006[4]

也能够直接修改iptables的配置文件,以下:

-A POSTROUTING -s 10.8.0.0/24 -o em2 -j SNAT --to-source 10.10.1.17

clip_p_w_picpath007[4]

而后从新加载iptables规则。

若是是centos系统的话,直接使用/etc/init.d/iptables restart命令重启iptables。

若是是ubuntu系统的话,使用sudo iptables-restore /home/Ubuntu/iptables.rule

6、测试通讯状况

open***服务与iptables规则都配置完毕后,如今咱们切换到客户端进行测试。

客户端链接open***服务器,以下:

open*** --config lianzhou.o*** &

clip_p_w_picpath008[4]

clip_p_w_picpath009[4]

经过上图,咱们能够很明显的看出客户端已经正确链接open***服务器,而且得到10.8.0.6这个IP地址。

如今咱们再来测试它与10.10.1.0/24网段的连通状况,以下:

ping 10.10.1.12

clip_p_w_picpath010[4]

经过上图,咱们能够很明显的看到客户端已经能够与10.10.1.12正常通讯。

如今咱们再来尝试链接下10.10.1.12这台机器,以下:

telnet 10.10.1.12 22

clip_p_w_picpath011[4]

经过上图,咱们能够很明显的看出客户端已经能够链接10.10.1.12这台服务器。

若是客户端在链接内网服务器中出现以下的错误提示:

telnet: Unable to connect to remote host: No route to host

clip_p_w_picpath012[4]

这个通常是open***服务器的iptables规则不正确致使的,建议是先使用iptables –F命令清除iptables规则保留nat规则进行调试。

相关文章
相关标签/搜索