一、首先你要有一个运行有OpenWRT系统的路由器,配置不要过低,版本不要太旧。我如今的路由是14.09版本的,内核版本3.14,仍是蛮新的。实在没有的能够联系我购买。个人是580Mhz的处理器,32MB ROM,128M RAM 的配置。
二、而后是安装
opkg update
opkg install openvpn-openssl
三、上传证书及密钥到路由器中,例如我上传的是/root/vpn/目录下。
四、配置UCI
我上网找了不少文章,配置方法都是直接编写配置文件而后使用openvpn –config name.conf的方式运行。虽然这种方法也能成功运行,可是不利于维护和管理,容易出问题。openwrt提供了统一的UCI配置接口,简单稳定仍是建议采用UCI的方式。vim
vim /etc/config/openvpn
#先删掉原有的配置,添加以下配置
config openvpn name_config #后面的name_config能够随便改
option enabled 1 #1为启用配置
option config /root/vpn/config #引用配置文件
config openvpn name1_config #若是想要同时连多台服务器须要加上
option enabled 1
option config /root/vpn/config2
五、编辑openvpn配置文件
vim /root/vpn/config
client #客户端模式
dev tun #若是同时连多个请指定tun序号
proto udp #udp效率最高
remote IP 1194 #服务端地址与端口
resolv-retry infinite
nobind #不绑定固定端口
#user nobody #运行权限
#group nogroup
persist-key #key保持
persist-tun #接口保持
ca ca.crt
cert client.crt
key client.key
tls-auth takey.key 1
#auth-user-pass
cipher AES-256-CBC #加密算法,与服务端一致
comp-lzo #启用压缩,需服务端支持
verb 3 #日志级别
mute 20 #合并相同日志
mssfix 1400 #修改mss单元大小
六、测试是否能正常链接
logread -f #openwrt下查看日志的方法。
新开一个窗口,或使用tmux新建一个面板。服务器
/etc/init.d/openvpn restart
过十多秒后,ping对端的IP,若是能正常连通,说明已正常连通,若是不能请查日志。测试
这时候你会发现只能在路由器中ping得通,可是接在路由器中的其余电脑确不能,这是由于iptables还缺少相应规则。须要添加:加密
iptables -I FORWARD -o tun0 -j ACCEPT
iptables -t nat -I POSTROUTING -s 路由器网段 -d 对端网段 -o tun0 -j MASQUERADE
七、实现openvpn链接后自动添加iptables规则
建立shell脚本up.shrest
#!/bin/sh
iptables -I FORWARD -o tun0 -j ACCEPT
iptables -t nat -I POSTROUTING -s 路由器网段 -d 对端网段 -o tun0 -j MASQUERADE
还须要建立down.sh脚本,断开链接后删除相应的规则日志
#!/bin/sh
iptables -D FORWARD -o tun0 -j ACCEPT
iptables -t nat -D POSTROUTING -s 192.168.11.0/24 -d 192.168.6.0/24 -o tun0 -j MASQUERADE
在openvpn配置文件中调用code
vim /root/vpn/config
#在文件结尾追加
script-security 2
up /root/vpn/up.sh
down /root/vpn/down.sh
别忘了给脚本文件添加权限chmod +x up.sh,chmod +x down.sh接口
有一点须要注意:若是要添加up与down的脚本,前面的配置文件里就不能以nobody的身份运行的配置
八、使openvpn服务能开机自动运行
/etc/init.d/openvpn enable
/etc/init.d/openvpn restart
原文地址
https://www.shangmayuan.com/a/b1c21e8811e14d51b7f4203e.html