ToB企服应用市场:ToB评测及商务社交产业平台

标题: docker搭建 Openvpn实现毗连服务器的内网 [打印本页]

作者: 何小豆儿在此    时间: 2025-1-10 09:53
标题: docker搭建 Openvpn实现毗连服务器的内网
前言

   阐明:本文基于docker+kylemanna/openvpn:2.4实现服务器搭建openvpn服务,生成openvpn客户端。本次发文仅供学习讨论使用,不产生任何贸易价值。
  背景

不知道老铁们自己搞了服务器,在服务器上搭建了mysql、redis等等中间件的时候,有么有这么一种苦恼,就是在家、在星巴克、在图书馆、在公司都是差别的 ip,然后必要到服务器上面一直配置防火墙,今天就彻底使用我们的 openvpn 解决掉。
安装

开始搭建 openvpn 服务端


  1. mkdir -p /data/openvpn
复制代码
  1. docker run -v /data/openvpn:/etc/openvpn --rm kylemanna/openvpn ovpn_genconfig -u udp://ip
复制代码
  此处的 ip 是服务器的外网 ip,十分建议使用 udp,因为网速题目!
  
  1. docker run -v /data/openvpn:/etc/openvpn --rm -it kylemanna/openvpn ovpn_initpki
复制代码
  执行上面代码期间必要注意
1.输入密钥暗码、确认密钥暗码
2.输入 ca 暗码更新密钥库以及生成crl文件
  
  1. docker run -v /data/openvpn:/etc/openvpn --rm -it kylemanna/openvpn easyrsa build-client-full xx-openvpn-client nopass
复制代码
  其中可修改 xx-openvpn-client 名称,生成的过程必要输入第一步的密钥暗码
  
  1. 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 到本地呆板
  
   修改下服务器的配置文件
  1. vim /data/openvpn/openvpn.conf
复制代码
  1. server 192.168.255.0 255.255.255.0
  2. verb 3
  3. key /etc/openvpn/pki/private/124.220.207.190.key
  4. ca /etc/openvpn/pki/ca.crt
  5. cert /etc/openvpn/pki/issued/124.220.207.190.crt
  6. dh /etc/openvpn/pki/dh.pem
  7. tls-auth /etc/openvpn/pki/ta.key
  8. key-direction 0
  9. keepalive 10 60
  10. max-clients 100
  11. persist-key
  12. persist-tun
  13. proto udp
  14. # Rely on Docker to do port mapping, internally always 1194
  15. port 1194
  16. dev tun0
  17. status /tmp/openvpn-status.log
  18. user nobody
  19. group nogroup
  20. comp-lzo no
  21. sndbuf 0
  22. rcvbuf 0
  23. ### Route Configurations Below
  24. route 192.168.254.0 255.255.255.0
  25. ### Push Configurations Below
  26. push "block-outside-dns"
  27. push "dhcp-option DNS 223.5.5.5"
  28. push "dhcp-option DNS 8.8.8.8"
  29. push "dhcp-option DNS 8.8.4.4"
  30. push "comp-lzo no"
复制代码
  1. docker run  -v /data/openvpn:/etc/openvpn \
  2. -d -p 1194:1194/udp --restart=always --name openvpn \
  3. --cap-add=NET_ADMIN --sysctl net.ipv6.conf.all.disable_ipv6=0 \
  4. --sysctl net.ipv6.conf.default.forwarding=1 --sysctl net.ipv6.conf.all.forwarding=1  \
  5. kylemanna/openvpn:2.4
复制代码
  注意:这时候我们必要去到服务器的防火墙将 1194端口开通

  openvpn 客户端

使用编辑器打开下载下来的xx-openvpn-client.ovpn
  1. client
  2. nobind
  3. dev tun
  4. remote-cert-tls server
  5. remote 124.220.207.190 1194 udp
  6. # remote ip port udp
复制代码
  注意:openvpn client可以配置多个openvpn server节点,每个remote就是一个openvpn server节点,一般可以设置为随机或次序的方式。当某个节点不可时,客户端会按照相应的方式毗连其它节点。另外openvpn-client默认是全局代码的方式,我们也可以通过中xx-openvpn-client.ovpn中配置route来实现局部代理。
    假如要给小伙伴们客户端的时候,猛烈建议执行
生成客户端证书
导出客户端的配置文件qq-openvpn-client.ovpn
然后发送给小伙伴,这样做的好处是打开的时候流量在差别客户端上似乎会好很多,不至于卡爆!
  
   记录每一次的技术点滴,只为分享!

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。




欢迎光临 ToB企服应用市场:ToB评测及商务社交产业平台 (https://dis.qidao123.com/) Powered by Discuz! X3.4