使用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
37port 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
2company 172.30.0.253
kian 172.30.0.200
三、客户端关键配置
个人PC(C)kian.ovpn1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20client
#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.ovpn1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21client
#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,依次类推,我们可以添加更多的公司不同的局域网加入