使用openwrt软路由连接思科VPN
提醒: 在配置前请自行进行安全性评估!! 作者本人的路由器只有本人自己用。 |
意义:
由于疫情反复,公司采取全员居家办公的防疫措施,对于一些同学来说办公必须使用内网环境,即必须连接公司的VPN,VPN最长连接24小时,超时后会自动断开,如果有多个设备需要连接,逐个下载并配置将会是一项重复且折磨的工作,且设备安装VPN后会修改设备的路由规则和DNS配置,影响某些功能的正常使用(如mac的随航功能)。
前提:
你需要一台安装了openwrt的路由器,如果没有请关闭文档或打开淘宝。
安装openconnect
方式1:使用命令
Bash opkg update opkg install luci-proto-openconnect openconnect |
方式2:使用luci
设置VPN
菜单:网络->接口->添加新接口
1. step1:
2. step2: 只填写红框即可
生成 VPN 服务器证书的 SHA1 哈希值 如果想使用其他vpn地址请替换对应域名
Bash openssl s_client -connect vpn.demo.cn:443 -showcerts 2>/dev/null </dev/null | awk '/—–BEGIN/,/—–END/ { print $0 }' | openssl x509 -noout -fingerprint -sha1 | sed 's/Fingerprint=//' | sed 's/://g' |
3. step3: 设置防火墙 分配区域 wan
4. step4: 保存、保存并应用
注意:由于密码里拼接的动态密码会频繁刷新 请注意“保存并应用”的时机
保存后请等待10秒即可连接成功 如下:
若超过10秒还未获取到地址,请编辑密码重试
5. step5: 修改dns
打开 网络->接口 找到Lan接口 “编辑”,然后根据下图红框内设置:
设置DNS
如果你想实现更灵活的DNS解析可以设置DNS的分域名解析,将小米的内网域名使用小米DNS解析,其他域名使用默认DNS解析
方式1:使用默认的dnsmasq
参考:https://blog.csdn.net/qq_21127151/article/details/121203249。
同时将 设置vpn step5中设置的“DHCP选项”删除
方式2:使用CoreDNS
默认你的软路由安装了docker并且性能足够。如果不满足请使用方式1
参考:https://coredns.io/manual/toc/
1. 安装
Groovy docker run -d –name coredns \ –restart=always \ -v /etc/coredns/:/etc/coredns/ \ -p 53:53/udp \ coredns/coredns:1.9.1 -conf /etc/coredns/Corefile
// 可以顺便装一下docker的管理软件portainer 使用https://你的路由器ip:9443访问 docker run -d -p 8000:8000 -p 9443:9443 –name=portainer –restart=always -v /var/run/docker.sock:/var/run/docker.sock -v portainer_data:/data portainer/portainer-ce:latest |
2. 配置
C++ //编辑配置文件/etc/coredns/Corefile .:53 { forward . 114.114.114.114 8.8.8.8 log errors } xiaomi.com:53 { forward . 10.237.25.6 10.237.25.7 114.114.114.114 8.8.8.8 log errors } mioffice.cn:53 { forward . 10.237.25.6 10.237.25.7 114.114.114.114 8.8.8.8 log errors } google.com:53 { forward . 10.237.25.6 10.237.25.7 114.114.114.114 8.8.8.8 log errors } google.com.hk:53 { forward . 10.237.25.6 10.237.25.7 114.114.114.114 8.8.8.8 log errors } srv:53 { forward . 10.237.25.6 10.237.25.7 114.114.114.114 8.8.8.8 log errors }
// 如果你想自定义一些域名实现内网解析的话 test114514.com:53 { file /etc/coredns/db.test114514.com log errors }
// 编辑文件 /etc/coredns/db.test114514.com $ORIGIN test114514.com. @ 3600 IN SOA dns.test114514.com. mail.test114514.com. ( 2017042745 ; serial 7200 ; refresh (2 hours) 3600 ; retry (1 hour) 1209600 ; expire (2 weeks) 3600 ; minimum (1 hour) )
3600 IN NS a.iana-servers.net. 3600 IN NS b.iana-servers.net.
www IN A 192.168.2.1 test IN A 192.168.2.2 test1 IN A 192.168.2.3 |
3. 修改dnsmasq
配置完coredns后 由于53端口被dnsmasq占用 所以要将dnsmasq的端口改成其他的 比如5353
编辑配置文件/etc/dnsmasq.conf 修改或者添加新配置行:port=5353 重启 service dnsmasq restart
此时coredns容器启动成功。
4. 将 设置vpn step5中设置的“DHCP选项”删除
为什么不直接把dnsmasq禁用掉?因为dnsmasq也承担DHCP功能,禁用后Wi-Fi设备无法获取到IP
问题:
Q:配置之后,逛P站会被发现吗?
A:参考附录 1、路由规则