使用OpenVPN连通多个局域网笔记
###应用场景
1、在任何地点通过个人PC访问公司局域网
2、多个局域网互通
###测试场景
A、公司局域网 192.168.1.0/24
B、公司局域网中的一台机器 192.168.1.222
C、个人PC一台
D、公网服务器一台
一、安装OpenVPN
这里采用openvpn-install.sh脚本进行快速安装配置
1 | wget https://git.io/vpn -O openvpn-install.sh && bash openvpn-install.sh |
在公网服务器(D)上装好后再次执行该脚本,添加kian.ovpn和company.ovpn客户端配置文件
二、服务端关键配置
公网服务器(D)server.conf配置
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 | port 1194 proto udp #将默认dev tun配置改成tap类型 #dev tun dev tap0 sndbuf 0 rcvbuf 0 ca ca.crt cert server.crt key server.key dh dh.pem auth SHA512 tls-auth ta.key 0 topology subnet #使用桥接模式,并配置客户端连接分配IP的范围 #server 172.30.0.0 255.255.255.0 server-bridge 172.30.0.0 255.255.255.0 172.30.0.10 172.30.0.253 ifconfig-pool-persist ipp.txt # 将公司的IP段全部转发到连接vpn的客户端指定分配IP 172.30.0.253上 push “route 192.168.1.0 255.255.255.0 172.30.0.253” #push “redirect-gateway def1 bypass-dhcp” #push “dhcp-option DNS 100.100.2.136” #push “dhcp-option DNS 100.100.2.138” keepalive 10 120 cipher AES-256-CBC user nobody group nobody persist-key persist-tun status /mnt/app/ovpn/logs/openvpn-status.log verb 3 crl-verify crl.pem #log output.log #writepid ovpn.pid client-to-client daemon |
ipp.txt配置
1 2 | company 172.30.0.253 kian 172.30.0.200 |
三、客户端关键配置
个人PC(C)kian.ovpn
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | client #dev tun #将默认dev tun配置改成tap类型 dev tap proto udp sndbuf 0 rcvbuf 0 #连接vpn的公网IP和端口 remote 110.111.112.113 1194 resolv-retry infinite nobind persist-key persist-tun remote-cert-tls server auth SHA512 cipher AES-256-CBC #默认配置,不注释会影响DNS解析,因为服务端未配置DNS配置推送 #setenv opt block-outside-dns key-direction 1 verb 3 |
公司局域网客户端(D)company.ovpn
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | client #dev tun #将默认dev tun配置改成tap类型 dev tap proto udp sndbuf 0 rcvbuf 0 remote 112.74.39.165 1194 #禁用服务端路由配置 route-nopull resolv-retry infinite nobind persist-key persist-tun remote-cert-tls server auth SHA512 cipher AES-256-CBC #默认配置,不注释会影响DNS解析,因为服务端未配置DNS配置推送 #setenv opt block-outside-dns key-direction 1 verb 3 |
四、路由转发配置
公司局域网客户端(D)配置路由转发
1 2 3 4 | # linux开启允许路由转发 echo 1 > /proc/sys/net/ipv4/ip_forward # 网卡穿透 iptables -t nat -A POSTROUTING -s 172.30.0.0/24 -o eth0 -j SNAT –to 192.168.1.222 |
以上配置好,并把openvpn的服务端和客户端启动成功后,就可以通过个人PC机访问公司内网机器192.168.1.0/24,依次类推,我们可以添加更多的公司不同的局域网加入