利用openvpn远程连回家里openwrt路由器上内/外网。。。
最近考虑搞个双线或者精品网,但有时出门在外,无法享受,岂不浪费。于是考虑通过openvpn连回家里路由器来上网,还能访问家里的设备。。。家里的刚升了上行带宽,正好来试试。
首先在刷了openwrt的wrt1900ac路由器上安装软件:
opkg update opkg install openvpn-openssl openvpn-easy-rsa luci-app-openvpn
然后编辑/etc/easy-rsa/vars,修改部分内容
# Increase this to 2048 if you # are paranoid. This will slow # down TLS negotiation performance # as well as the one-time DH parms # generation process. export KEY_SIZE=1024 # In how many days should the root CA key expire? export CA_EXPIRE=3650 # In how many days should certificates expire? export KEY_EXPIRE=3650 # These are the default values for fields # which will be placed in the certificate. # Don't leave any of these fields blank. export KEY_COUNTRY="xx" export KEY_PROVINCE="xx" export KEY_CITY="xxxx" export KEY_ORG="XXxxxx" export KEY_EMAIL="xxxxxx@gmail.com" export KEY_OU="XXxxxxxx" # X509 Subject Field export KEY_NAME="EasyRSA"
接着生成证书和diffie-hellman key:
手工清空/etc/easy-rsa/下的key目录或者运行clean-all
生成ca证书
build-ca
生成dh密钥
build-dh
服务器证书
build-key-server server
客户端证书
build-key coffeecat
最后两个后面的名字都可以改
拷贝到服务器目录下:
cd /etc/easy-rsa/keys/ cp ca.crt ca.key dh1024.pem server.key server.crt /etc/openvpn/
拷贝到客户端:
ca.crt dh1024.pem coffeecat.key coffeecat.crt
然后就是最关键的配置openvpn服务器端和客户端了:
路由器服务器端:
编辑/etc/config/openvpn :
注意:172.24.1.1为路由器的lan ip,172.24.1.100-172.24.1.105是为vpn客户端分配的ip端,一定要和路由器为lan dhcp的ip段错开。
config openvpn 'cert_verify' option port '1194' option proto 'tcp' option dev 'tap0' option ca '/etc/openvpn/ca.crt' option cert '/etc/openvpn/server.crt' option key '/etc/openvpn/server.key' option dh '/etc/openvpn/dh1024.pem' option server_bridge '172.24.1.1 255.255.255.0 172.24.1.100 172.24.1.105' option ifconfig_pool_persist '/tmp/ipp.txt' option client_to_client 1 list push 'redirect-gateway def1 local' option keepalive '10 120' option comp_lzo 'yes' option status '/tmp/openvpn-status.log' option verb '3' option enabled '1'
然后在luci或者命令行启动openvpn:
/etc/init.d/openvpn start
ps一下有进程就对了
windows7 openvpn客户端配置:
C:\Program Files\OpenVPN\config\client.ovpn
client dev tap proto tcp remote xxxxxxxxxxxxx 1194 #路由器的ddns地址或者IP 端口 resolv-retry infinite nobind persist-tun persist-key float ca ca.crt cert coffeecat.crt key coffeecat.key mute-replay-warnings comp-lzo verb 4 ##下面两行for WIN7 route-method exe route-delay 2
最后在路由器上增加自定义iptables规则:
先把tap0放到lan区域中,然后在自定义规则里面加上:
iptables -I INPUT 1 -p tcp --dport 1194 -j ACCEPT iptables -I INPUT 1 -p udp --dport 1194 -j ACCEPT
另外win7里面要设置一下metric,否则可能不是走的vpn这个路,设完以后,可以看到vpn的跃点最小:
IPv4 路由表 =========================================================================== 活动路由: 网络目标 网络掩码 网关 接口 跃点数 0.0.0.0 0.0.0.0 172.24.1.1 172.24.1.100 50 0.0.0.0 0.0.0.0 172.24.0.1 172.24.0.150 281
参考:
1.http://blog.ltns.info/linux/connect_two_home_networks_using_openvpn_and_openwrt/
2.http://huxos.me/blog/openwrt-openvpn/