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 192.168.16.100:3544