2025年6月9日 星期一 乙巳(蛇)年 三月十三 设为首页 加入收藏
rss
您当前的位置:首页 > 计算机 > 软件应用 > 网络应用

如何搭建OpenVPN详细教程

时间:07-23来源:作者:点击数:37

搭建OpenVPN需要您具备一定的Linux系统基础知识,以下是OpenVPN的搭建教程:

  1. 准备工作
  • 一台安装了CentOS或Ubuntu的Linux服务器,本教程以CentOS 7为例
  • 一个域名或者IP地址,用于远程访问VPN
  1. 安装OpenVPN

在终端输入以下命令安装OpenVPN:

  • sudo yum install -y epel-release
  • sudo yum install -y openvpn
  1. 配置OpenVPN
  • 创建OpenVPN配置文件:

在终端中输入以下命令创建OpenVPN配置文件:

  • cd /etc/openvpn
  • sudo cp -r /usr/share/doc/openvpn/sample/sample-config-files/* .
  • 配置OpenVPN:

使用文本编辑器打开/etc/openvpn/server.conf,并修改以下配置:

  • dev tun
  • server 10.8.0.0 255.255.255.0
  • push "redirect-gateway def1 bypass-dhcp"
  • push "dhcp-option DNS 8.8.8.8"
  • push "dhcp-option DNS 8.8.4.4"
  • user nobody
  • group nobody
  • keepalive 10 120
  • tls-auth ta.key 0 # This file is secret
  • key server.key
  • cert server.crt
  • dh dh.pem
  • verb 3

其中10.8.0.0 255.255.255.0是VPN分配给客户端的IP地址范围,redirect-gateway def1 bypass-dhcp表示将客户端所有的网络流量都通过VPN进行转发,8.8.8.88.8.4.4是Google的DNS服务器地址,用于解析域名。

  • 生成证书和密钥:
    • cd /etc/openvpn
    • sudo openvpn --genkey --secret ta.key
    • sudo openssl dhparam -out dh.pem 2048
    • sudo openssl req -new -newkey rsa:2048 -nodes -keyout server.key -out server.csr
    • sudo openssl x509 -req -days 3650 -in server.csr -signkey server.key -out server.crt
  • 在终端中输入以下命令生成证书和密钥:
  • 启动OpenVPN:

在终端中输入以下命令启动OpenVPN:

  • sudo systemctl start openvpn@server
  • sudo systemctl enable openvpn@server
  1. 客户端连接VPN
  • 创建客户端配置文件:

在终端中输入以下命令创建客户端配置文件:

  • cd /etc/openvpn
  • sudo cp client.conf /etc/openvpn/client.ovpn
  • 修改客户端配置文件:

使用文本编辑器打开/etc/openvpn/client.ovpn,并修改以下配置:

  • client
  • dev tun
  • proto udp
  • remote YOUR_SERVER_IP 1194
  • resolv-retry infinite
  • nobind
  • user nobody
  • group nobody
  • persist-key
  • persist-tun
  • remote-cert-tls server
  • cipher AES-256-CBC
  • auth SHA256
  • key-direction 1
  • verb 3
  • <ca>
  • -----BEGIN CERTIFICATE-----
  • MIIE...
  • -----END CERTIFICATE-----
  • </ca>
  • <cert>
  • -----BEGIN CERTIFICATE-----
  • MIIE...
  • -----END CERTIFICATE-----
  • </cert>
  • <key>
  • -----
  • 启动OpenVPN:

在终端中输入以下命令启动OpenVPN:

  • sudo openvpn --config /etc/openvpn/client.ovpn

其中YOUR_SERVER_IP是VPN服务器的IP地址。

  1. 测试连接

在客户端电脑中打开终端,输入以下命令测试连接:

  • ping 10.8.0.1

如果VPN连接成功,就可以看到VPN服务器的响应。

至此,您已经成功搭建了一个OpenVPN服务器。请注意,在实际使用中,需要进行更严格的安全设置,例如使用防火墙、关闭不必要的端口等。

最后附上自动搭建脚本:

  • #!/bin/bash
  • # 获取脚本执行时的参数
  • while getopts "d:k:" arg
  • do
  • case $arg in
  • d)
  • DOMAIN=$OPTARG;;
  • k)
  • KEY=$OPTARG;;
  • ?)
  • echo "Usage: $0 -d <domain name> -k <client key name>"
  • exit 1;;
  • esac
  • done
  • # 安装easy-rsa并创建证书
  • yum install -y easy-rsa
  • cd /usr/share/easy-rsa/3
  • ./easyrsa init-pki
  • ./easyrsa build-ca
  • ./easyrsa gen-dh
  • ./easyrsa gen-crl
  • ./easyrsa build-server-full server nopass
  • # 配置OpenVPN
  • cp /usr/share/doc/openvpn-*/sample/sample-config-files/server.conf /etc/openvpn/
  • sed -i -e 's/;tls-auth ta.key 0/tls-auth ta.key 0/' -e 's/;cipher AES-128-CBC/cipher AES-256-CBC/' /etc/openvpn/server.conf
  • echo 'push "redirect-gateway def1 bypass-dhcp"' >> /etc/openvpn/server.conf
  • echo 'push "dhcp-option DNS 8.8.8.8"' >> /etc/openvpn/server.conf
  • echo 'push "dhcp-option DNS 8.8.4.4"' >> /etc/openvpn/server.conf
  • echo 'user nobody' >> /etc/openvpn/server.conf
  • echo 'group nobody' >> /etc/openvpn/server.conf
  • # 生成客户端证书和配置文件
  • ./easyrsa build-client-full $KEY nopass
  • cp pki/ca.crt pki/private/server.key pki/issued/server.crt /etc/openvpn
  • cp /usr/share/doc/openvpn-*/sample/sample-config-files/client.conf /etc/openvpn/$KEY.ovpn
  • sed -i -e "s/remote my-server-1 1194/remote $DOMAIN 1194/" -e 's/;user nobody/user nobody/' -e 's/;group nobody/group nobody/' /etc/openvpn/$KEY.ovpn
  • echo '<ca>' >> /etc/openvpn/$KEY.ovpn
  • cat /usr/share/easy-rsa/3/pki/ca.crt >> /etc/openvpn/$KEY.ovpn
  • echo '</ca>' >> /etc/openvpn/$KEY.ovpn
  • echo '<cert>' >> /etc/openvpn/$KEY.ovpn
  • cat /usr/share/easy-rsa/3/pki/issued/$KEY.crt >> /etc/openvpn/$KEY.ovpn
  • echo '</cert>' >> /etc/openvpn/$KEY.ovpn
  • echo '<key>' >> /etc/openvpn/$KEY.ovpn
  • cat /usr/share/easy-rsa/3/pki/private/$KEY.key >> /etc/openvpn/$KEY.ovpn
  • echo '</key>' >> /etc/openvpn/$KEY.ovpn
  • echo '<tls-auth>' >> /etc/openvpn/$KEY.ovpn
  • cat /usr/share/easy-rsa/3/pki/ta.key >> /etc/openvpn/$KEY.ovpn
  • echo '</tls-auth>' >> /etc/openvpn/$KEY.ovpn
  • # 启动OpenVPN
  • systemctl start openvpn@server
  • systemctl enable openvpn@server
  • echo "OpenVPN server is now running on
方便获取更多学习、工作、生活信息请关注本站微信公众号城东书院 微信服务号城东书院 微信订阅号
推荐内容
相关内容
栏目更新
栏目热门