再次整理openwrt安装openvpn服务器
遇坑很多,网上文章言语不详,大概太过大抵大概某一细节着墨太多,颠末不停摸索,终于总结了这篇文章,实测好用,送给不甘寂寞的各位。步骤 1:更新软件包列表
首先,登录到你的 OpenWRT 路由器管理界面(通常是 http://192.168.1.1),然后打开 System -> Software 页面,点击 Update lists 按钮来更新软件包列表。
如果你更喜好利用 SSH 来完成这些操作,你可以通过 SSH 毗连到路由器并运行以下命令:
opkg update 步骤 2:安装 OpenVPN 软件包
接下来,安装 OpenVPN 服务器及相关软件包。你可以在 Web 管理界面的 Software 页面搜索并安装以下软件包,大概通过 SSH 安装它们。
通过 SSH 安装命令如下:
opkg install openvpn-openssl openvpn-easy-rsa luci-app-openvpn
[*]openvpn-openssl:OpenVPN 主步伐,基于 OpenSSL
[*]openvpn-easy-rsa:用于生成证书的工具
[*]luci-app-openvpn:OpenVPN 的 LuCI(Web 界面)配置界面
步骤 3:生成各种笑容和黑脸https://i-blog.csdnimg.cn/direct/8ca3b9c60a764442aedae6ff261d9a25.png
利用 easy-rsa 工具生成所需的 CA 证书和密钥。
[*] 创建 Easy-RSA 情况:(建议在/etc/openvpn目录中运行,会创建pki文件夹)
easyrsa init-pki
[*] 创建 CA(证书颁发机构)(同样在/etc/openvpn中运行,产生的文件会在pki中):
easyrsa build-ca nopass
[*] 生成服务器证书和密钥:
easyrsa gen-req server nopass
[*] 签署服务器证书:
easyrsa sign-req server server
[*] 生成 Diffie-Hellman 参数:
easyrsa gen-dh
[*] 生成客户端证书:
easyrsa gen-req client1 nopass easyrsa sign-req client client1(client1仅仅是个名字,任意起)
[*] 生成 HMAC 密钥(用于增加安全性):
openvpn --genkey --secret /etc/openvpn/ta.key
步骤 4:配置 OpenVPN 服务器
编辑 OpenVPN 服务器的配置文件,通常位于 /etc/openvpn/server.conf。如果该文件不存在,你需要手动创建它。
这个可以百度例如:
# 监听的端口和协议
port 1194
proto udp
#利用tap设备,二层设备,通常利用局域网
#proto tap
# 利用 TUN 设备三层设备,互联网
dev tun
# 服务器端的证书与密钥文件
ca /etc/openvpn/pki/ca.crt
cert /etc/easy-rsa/pki/issued/server.crt
key /etc/easy-rsa/pki/private/server.key
# Diffie-Hellman 参数
dh /etc/easy-rsa/pki/dh.pem
# HMAC 密钥(增加 TLS 安全性)
tls-auth /etc/openvpn/ta.key 0
# 加密算法
cipher AES-256-CBC
# 配置 VPN 子网(实用于客户端的 IP 池)
server 10.1.0.0 255.255.255.0
#为客户端分配固定ip的记载文件,不需要
#ifconfig-pool-persist /tmp/ipp.txt
# 路由设置
#vpn服务端向客户端推送vpn服务端内网网段,有几条路由就写几个push指令
push "route 192.168.6.0 255.255.255.0"(本地网络)
#push "redirect-gateway def1 bypass-dhcp"(利用本地网关,用途自己想象)
push "dhcp-option DNS 8.8.8.8"(谷歌dns,自己看着搞)
push "dhcp-option DNS 8.8.4.4"
# 保持会话的持久性
persist-key
persist-tun
# 日记文件
status /tmp/openvpn-status.log
log-append /var/log/openvpn.log
# 日记详细级别
verb 3
# 最大客户端毗连数
max-clients 100
# 答应客户端间通信
client-to-client
解释配置文件的各项设置(可以看我下一篇文章,详细解读)
[*]port 1194:OpenVPN 服务器监听的端口,默认是 1194。你可以根据需要修改这个端口。
[*]proto udp:利用 UDP 协议,你也可以改为 proto tcp 利用 TCP 协议。
[*]dev tun:利用 TUN 隧道设备,它是常用的路由方式。你cd 也可以利用 dev tap 进行以太网桥接,但通常 TUN 更常用。
[*]ca、cert、key 和 dh:这些是 OpenVPN 所需的证书和密钥文件,它们应该已经通过 easy-rsa 生成。
[*]server 10.1.0.0 255.255.255.0:这是 OpenVPN 分配给客户端的 IP 子网。
[*]push 选项:向客户端推送的路由和 DNS 设置。在这里,服务器推送了 Google 的公共 DNS 服务器,并将所有客户端流量通过 VPN。
[*]persist-key 和 persist-tun:这些选项确保 OpenVPN 在重启时保持会话毗连。
[*]tls-auth:这提供了额外的安全性,防止不合法的毗连实验。需要一个 ta.key 文件来利用它。
[*]verb 3:日记详细级别,3 是中等详细程度,保举利用。可以设置为更高(如 verb 5 或 verb 6)来调试。
[*]client-to-client:答应 VPN 内部的客户端之间直接通信。
步骤 5:配置防火墙
确保 OpenVPN 所需的端口(如 1194)已在防火墙中开放。你可以在 OpenWRT 的 Web 界面中进行设置:
[*]Network -> Firewall,创建一个新的 Traffic Rule。
[*]答应 UDP 1194 端口的输入流量。
[*] 需要创建vpn区域。
[*] 在 /etc/config/firewall 中添加以下内容:
[*] config rule
[*] option name 'Allow-OpenVPN-Inbound'
[*] option src 'wan'
[*] option dest_port '1194'
[*] option proto 'udp'
[*] option target 'ACCEPT' config forwarding
[*] option src 'lan'
[*] option dest 'vpn'
[*] 3.创建 VPN 区域:(告急,必须要有)
[*] config zone
[*] option name 'vpn'
[*] option input 'ACCEPT'
[*] option forward 'REJECT'
[*] option output 'ACCEPT'
[*] option network 'vpn0'
步骤 6:启动 OpenVPN 服务
完成所有配置后,启用并启动 OpenVPN 服务。你可以通过以下命令启动 OpenVPN:
/etc/init.d/openvpn enable
/etc/init.d/openvpn start
日志查看
logread |grep openvpn
重新启动vpn:/etc/init.d/openvpn restart
步骤 7:配置客户端
配置客户端目的是生成几个文件,并将生成的 ca.crt、client1.crt(自定义名称)、client1.key 和 ta.key 文件传输到你的客户端设备。
执行如下命令:罖l
easyrsa gen-req client1 nopass
easyrsa sign-req client client1
生成 ca.crt、client1.crt(自定义名称)、client1.key
毗连到 OpenVPN 服务器,需要一个 .ovpn 文件(OpenVPN 客户端的配置文件)。
在生成 .ovpn 文件时,服务器端的配置文件会包罗服务器的 IP 地址或域名、端口、协议、加密方式,以及客户端证书和密钥。
示例 .ovpn 文件:
client
dev tun
proto udp
remote YOUR_SERVER_IP 1194
resolv-retry infinite
nobind
persist-key
persist-tun
remote-cert-tls server
ca ca.crt
cert client.crt
key client.key
tls-auth ta.key 1
cipher AES-256-CBC
verb 3
在这个文件中,你需要替换 YOUR_SERVER_IP 为 OpenVPN 服务器的现实 IP 地址或域名。
配置文件的关键部分:
[*]remote YOUR_SERVER_IP 1194: YOUR_SERVER_IP 是服务器的 IP 地址或域名,1194 是 OpenVPN 利用的端口(根据服务器设置大概不同)。
[*]ca、cert、key:这些是 OpenVPN服务器 毗连所需的证书和密钥文件,通常与 .ovpn 文件一起由服务器提供。
将此配置文件导入到你的 OpenVPN 客户端中,并启动毗连。
步骤 8:测试毗连
利用 OpenVPN 客户端实验毗连到你的 OpenWRT VPN 服务器。如果统统设置正确,你应该能够成功毗连到你的家庭网络。此中,openwrt中必须要在接口中添加属于vpn的接口tun0
https://i-blog.csdnimg.cn/direct/fb362ad697154c7685f49aeff4af9e47.jpeg
注意此接口数据流量,如果有接收,但没有ping通时,肯定是openwrt防火墙设置标题。
https://i-blog.csdnimg.cn/direct/d4e9960ed3c94009ae03a0a38ea817db.jpeg
接下来,还需要在openwrt静态路由表中添加一条静态路由,作为数据回传利用,创建openvpn服务器,不会生成此条路由,必须要手动添加,我的远程内网是115.0网段,10.8.0.1则是openvpn服务器地址,截图如下:
https://i-blog.csdnimg.cn/direct/19b360b0f93d4fe3ae6f819d88a842b8.jpeg
分割线+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
按照以上配置,发现web页面和/etc/openvpn/server.conf配置有冲突,远程毗连并不按照server.conf文件执行,而是按照web页面设置,终极发现web配置文件在/etc/config/openvpn中,修改此文件配置选项才可以同步配置,这一大坑在这个版本中体现:
https://i-blog.csdnimg.cn/direct/672a3d805f3340e8acee4f5d37bcdd44.jpeg
因为我用openwrt做的内网文件共享,此时可以远程可以打开了。
因为水平有限,不足之处,还请多多指教
以下为笔记:删掉模版,留下自定义,加载openvpn目录下server.conf,用模板会有冲突,导致server.conf不起作用,必须要配置/etc/config/openvpn文件才可以,还会导致web页面openvpn消散。
https://i-blog.csdnimg.cn/direct/d30826fde8bd4cc4a110a7c88a2f16c6.jpeg
好像尚有个小细节,tls-auth /path/to/ta.key 0 # 在客户端为 1,服务器为 0
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
页:
[1]