1. 安装所需软件

用root账号通过SSH连接设备,执行以下命令:

opkg update
opkg install openvpn-openssl openvpn-easy-rsa
opkg install ipset libopenssl resolveip
reboot

2. 编辑OpenVPN配置文件

vi /etc/config/openvpn

找到 config openvpn sample_client 配置段,修改一下内容

  • option enabled 1
  • option client 1
  • # option dev tap option dev tun
  • # option proto tcp option proto udp
  • list remote “my_server_IP 1194”
  • option ca /etc/openvpn/ca.crt
  • option cert /etc/openvpn/ifshow.crt
  • option key /etc/openvpn/ifshow.key

说明:允许本配置段生效,客户端模式,虚拟网卡使用tun模式,使用UDP协议,指定服务器IP和端口,指定CA证书,指定客户端证书,指定客户端密钥。

3. 启动/重启/停止OpenVPN

/etc/init.d/openvpn start
/etc/init.d/openvpn restart
/etc/init.d/openvpn stop

4. 配置iptables

执行以下命令:(tap还是tun根据实际情况)

iptables -I FORWARD -o br-lan -j ACCEPT
iptables -I FORWARD -o tap0 -j ACCEPT
iptables -t nat -I POSTROUTING -o tap0 -j MASQUERADE

说明:允许br-lan端口流量被转发,允许tap0端口流量被转发,设置tap0出口流量SNAT出去。这样路由器LAN流量走VPN通道出去。

检查是否成功:

route
ifconfig
ping 10.8.0.1

设置端口映射:(LAN和VPN客户端的端口映射,VPN服务端还需要再次端口映射)

iptables -t nat -A PREROUTING -i tap0 -p tcp --dport 3074 -j DNAT --to-destination 192.168.16.100:3074
iptables -t nat -A PREROUTING -i tap0 -p udp --dport 3074 -j DNAT --to-destination 192.168.16.100:3074
iptables -t nat -A PREROUTING -i tap0 -p udp --dport 3544 -j DNAT --to-destination 19