前言
阐明:本文基于docker+kylemanna/openvpn:2.4实现服务器搭建openvpn服务,生成openvpn客户端。本次发文仅供学习讨论使用,不产生任何贸易价值。
背景
不知道老铁们自己搞了服务器,在服务器上搭建了mysql、redis等等中间件的时候,有么有这么一种苦恼,就是在家、在星巴克、在图书馆、在公司都是差别的 ip,然后必要到服务器上面一直配置防火墙,今天就彻底使用我们的 openvpn 解决掉。
安装
开始搭建 openvpn 服务端
- docker run -v /data/openvpn:/etc/openvpn --rm kylemanna/openvpn ovpn_genconfig -u udp://ip
复制代码 此处的 ip 是服务器的外网 ip,十分建议使用 udp,因为网速题目!
- docker run -v /data/openvpn:/etc/openvpn --rm -it kylemanna/openvpn ovpn_initpki
复制代码 执行上面代码期间必要注意
1.输入密钥暗码、确认密钥暗码
2.输入 ca 暗码更新密钥库以及生成crl文件
- docker run -v /data/openvpn:/etc/openvpn --rm -it kylemanna/openvpn easyrsa build-client-full xx-openvpn-client nopass
复制代码 其中可修改 xx-openvpn-client 名称,生成的过程必要输入第一步的密钥暗码
- 导出客户端的配置文件xx-openvpn-client.ovpn
- docker run -v /data/openvpn:/etc/openvpn --rm kylemanna/openvpn ovpn_getclient xx-openvpn-client > /data/openvpn/xx-openvpn-client.ovpn
复制代码 注意xx-openvpn-client名称需与第三步生成时定名同等,此时生成的配置文件xx-openvpn-client.ovpn即可用于客户端毗连,然后我们将其从服务器 copy 到本地呆板
修改下服务器的配置文件
- vim /data/openvpn/openvpn.conf
复制代码- server 192.168.255.0 255.255.255.0
- verb 3
- key /etc/openvpn/pki/private/124.220.207.190.key
- ca /etc/openvpn/pki/ca.crt
- cert /etc/openvpn/pki/issued/124.220.207.190.crt
- dh /etc/openvpn/pki/dh.pem
- tls-auth /etc/openvpn/pki/ta.key
- key-direction 0
- keepalive 10 60
- max-clients 100
- persist-key
- persist-tun
- proto udp
- # Rely on Docker to do port mapping, internally always 1194
- port 1194
- dev tun0
- status /tmp/openvpn-status.log
- user nobody
- group nogroup
- comp-lzo no
- sndbuf 0
- rcvbuf 0
- ### Route Configurations Below
- route 192.168.254.0 255.255.255.0
- ### Push Configurations Below
- push "block-outside-dns"
- push "dhcp-option DNS 223.5.5.5"
- push "dhcp-option DNS 8.8.8.8"
- push "dhcp-option DNS 8.8.4.4"
- push "comp-lzo no"
复制代码- docker run -v /data/openvpn:/etc/openvpn \
- -d -p 1194:1194/udp --restart=always --name openvpn \
- --cap-add=NET_ADMIN --sysctl net.ipv6.conf.all.disable_ipv6=0 \
- --sysctl net.ipv6.conf.default.forwarding=1 --sysctl net.ipv6.conf.all.forwarding=1 \
- kylemanna/openvpn:2.4
复制代码 注意:这时候我们必要去到服务器的防火墙将 1194端口开通
openvpn 客户端
使用编辑器打开下载下来的xx-openvpn-client.ovpn
- client
- nobind
- dev tun
- remote-cert-tls server
- remote 124.220.207.190 1194 udp
- # remote ip port udp
复制代码 注意:openvpn client可以配置多个openvpn server节点,每个remote就是一个openvpn server节点,一般可以设置为随机或次序的方式。当某个节点不可时,客户端会按照相应的方式毗连其它节点。另外openvpn-client默认是全局代码的方式,我们也可以通过中xx-openvpn-client.ovpn中配置route来实现局部代理。
假如要给小伙伴们客户端的时候,猛烈建议执行
生成客户端证书
导出客户端的配置文件qq-openvpn-client.ovpn
然后发送给小伙伴,这样做的好处是打开的时候流量在差别客户端上似乎会好很多,不至于卡爆!
- 末了下载下来的客户端就可以直接打开Add 下就可以愉快的毗连了,然后所有项目中本来必要毗连外网 ip 的地方可以直接修改成 内网 ip,比方 redis、mysql 等等这些毗连
记录每一次的技术点滴,只为分享!
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。 |