如何在路由器上配置 OpenVPN client,使得连到这个路由器或无线接入点上的终端在 “神不知鬼不觉” 间就用上了 VPN?OpenWrt 提供了这种可能。

1. 给路由器刷 OpenWrt。不是所有路由器都能刷(一般要 100 RMB 以上的才能刷),这方面有很多资料,Google is your friend.

2. ssh 进路由器,安装 OpenVPN:


opkg update
opkg install openvpn

3. 把 OpenVPN 配置文件(假设是 client.conf)和 client.key、client.crt、ca.crt 文件 scp 到路由器的 /etc/openvpn 目录下。

4. 在 ssh 终端执行

cd /etc/openvpn && openvpn --config client.conf

看终端输出,如果最后是 Initialization Sequence Completed 则 VPN 连接成功,否则请检查路由器与 OpenVPN server 间的网络连接,或者第3步配置文件是否弄对了。按 Ctrl+C 关闭 OpenVPN client。

5. 如果 VPN 连接成功,就可以让 OpenVPN 开机自启动了。修改 /etc/rc.local,在 exit 0 前面添加两行:


iptables -t nat -A POSTROUTING -o tun0 -j MASQUERADE
cd /etc/openvpn && openvpn --config client.conf --daemon

6. 如果 OpenVPN server 提供了 DNS 服务,我们一般希望使用这个 DNS。比如 DNS 服务器是 10.8.0.1,则修改 /etc/dnsmasq.conf,加入一行:


dhcp-option=6,10.8.0.1

7. 重启路由器,dig google.com 看是否有一行 ;; SERVER: 10.8.0.1#53(10.8.0.1),如果不是这个 IP,说明第6步没有配置正确。再试试那些不存在的网站。如果不成功,ssh 进路由器慢慢调试吧~