首页
留言
导航
统计
Search
1
追番推荐!免费看动漫的网站 - 支持在线观看和磁力下载
777 阅读
2
PVE自动启动 虚拟机 | 容器 顺序设置及参数说明
472 阅读
3
一条命令,永久激活!Office 2024!
444 阅读
4
优选 Cloudflare 官方 / 中转 IP
324 阅读
5
[Windows] MicroSoft Office LTSC Professional Plus 2024 官方安装部署工具
323 阅读
默认分类
服务器
宝塔
VPS
Docker
OpenWRT
Nginx
群晖
前端编程
Vue
React
Angular
NodeJS
uni-app
后端编程
Java
Python
SpringBoot
SpringCloud
流程引擎
检索引擎
Linux
CentOS
Ubuntu
Debian
数据库
Redis
MySQL
Oracle
虚拟机
VMware
VirtualBox
PVE
Hyper-V
计算机
网络技术
网站源码
主题模板
登录
Search
标签搜索
Java
小程序
Redis
SpringBoot
docker
Typecho
Cloudflare
虚拟机
WordPress
uni-app
CentOS
docker部署
Vue
Java类库
群晖
Linux命令
防火墙配置
Mysql
脚本
计算机网络
流年微醺
累计撰写
255
篇文章
累计收到
8
条评论
首页
栏目
默认分类
服务器
宝塔
VPS
Docker
OpenWRT
Nginx
群晖
前端编程
Vue
React
Angular
NodeJS
uni-app
后端编程
Java
Python
SpringBoot
SpringCloud
流程引擎
检索引擎
Linux
CentOS
Ubuntu
Debian
数据库
Redis
MySQL
Oracle
虚拟机
VMware
VirtualBox
PVE
Hyper-V
计算机
网络技术
网站源码
主题模板
页面
留言
导航
统计
搜索到
1
篇与
的结果
2023-02-18
OpenWRT 路由配置技巧(PPTP VPN+断线自动重连+chnroutes国内路由表)
chnroutes 路由表这个路由表集中了所有分配到中国大陆的 IP 段,根据 http://ftp.apnic.net/apnic/stats/apnic/delegated-apnic-latest 每天自动更新,可使得在访问国内地址时不经过 VPN。想想如果能够让家里的路由直接连接 VPN,在家连接 WiFi 的所有设备直接达到Fan墙的效果,应该很 Cool,所以最近在某宝整了一个 Netgear WNDR3800 二手路由回来,先后分别在 DD-WRT 和 OpenWRT 成功配置 VPN + chnroutes,最后还是选择了 OpenWRT。DD-WRT vs OpenWRT关于 DD-WRT 和 OpenWRT ,我选择 OpenWRT 主要因为 DD-WRT ROM 中集成的软件太多,绝大多数用不到,要配置 jffs2 来保存脚本文件,一般配置则保存在 nvram 中,而且无线较不稳定,5G频段常搜索不到(当然可能是我这个路由器型号的支持问题)。OpenWRT 的配置文件语法统一,配置都存储在文件系统中,且 ROM 本身仅集成了必备组件,非常小,可以只安装需要的东西,WEB管理界面也是可选安装,简洁强大,经过若干天的使用一直比较稳定。配置已配置好 OpenWRT 上网的童鞋们可以直接跳过 1.刷ROM 和 2.初始配置刷ROMa. 首先确定你的设备可以被 OpenWRT 所支持(到这里查看支持的设备列表:http://wiki.openwrt.org/toh/start),然后到这里下载编译好的 ROM:http://downloads.openwrt.org/ 。最新的 stable 版本是 attitude_adjustment(12.09),我下载的是 trunk 版本。b. 在 OpenWRT 官网找相应设备的 Wiki 页面查看刷机方法,一般都是在路由方Web固件升级页面直接刷入(我的 WNDR3800 Wiki页面是:http://wiki.openwrt.org/toh/netgear/wndr3800)初始配置a. 路由器启动后,有的型号没有安装 Wifi 模块,需要先用网线连接到 LAN 口,本机 IP 配置为静态 192.168.1.x,然后 telnet 到 192.168.1.1,更改 root 密码,然后 ssh 连入,参考:http://wiki.openwrt.org/doc/start#configuring.openwrtb. 配置 WAN 口,让路由连上 Internet,参考:http://wiki.openwrt.org/doc/howto/internet.connection比如要配置PPPoE:代码如下:uci set network.wan.proto=pppoe uci set network.wan.username='yougotthisfromyour@isp.su' uci set network.wan.password='yourpassword' uci commit network ifup wanc. 安装 LuCI Web 管理界面并设置开机自动启动,参考:http://wiki.openwrt.org/doc/howto/luci.essentials代码如下:opkg update opkg install luci /etc/init.d/uhttpd start /etc/init.d/uhttpd enabled. 浏览器输入路由器 LAN 侧 IP(多为192.168.1.1),进行 Wifi 等配置配置 DNSa. 创建 /etc/config/sec_resolv.confvim /etc/config/sec_resolv.conf填入以下 DNS Servers:代码如下:nameserver 8.8.8.8 nameserver 8.8.4.4 nameserver 208.67.222.222b. 编辑 /etc/config/dhcpvim /etc/config/dhcp找到 option resolvfile 选项,替换为:option resolvfile '/etc/config/sec_resolv.conf'配置 PPTPa. 安装 ppp-mod-pptp代码如下:opkg updateopkg install ppp-mod-pptp如果需要 LuCI 支持(推荐):opkg install luci-proto-pppb. 配置 vpn 接口,编辑 /etc/config/network 文件,应该已经有以下内容(如果没有,需要插入),并配置里面的 server、username 和 password:代码如下:config 'interface' 'vpn' option 'ifname' 'pptp-vpn' option 'proto' 'pptp' option 'username' 'vpnusername' option 'password' 'vpnpassword' option 'server' 'vpn.example.org or ipaddress' option 'buffering' '1'c. 进入 Network -> Firewall ,把 vpn 加入 wan zone,效果如图:d. 进入 Network -> Interfaces ,此时应该已经可以看到 VPN Interface 并可以连接,效果如图:e. 此时在本机 traceroute www.google.com,应该能得到类似以下的结果:代码如下:FL-MBP:~ fatlyz$ traceroute www.google.com traceroute: Warning: www.google.com has multiple addresses; using 74.125.239.113 traceroute to www.google.com (74.125.239.113), 64 hops max, 52 byte packets fc_r0.lan (192.168.7.1) 2.266 ms 0.999 ms 0.946 ms 10.7.0.1 (10.7.0.1) 189.259 ms 187.813 ms 188.368 ms 23.92.24.2 (23.92.24.2) 189.847 ms 190.489 ms 188.939 ms 10ge7-6.core3.fmt2.he.net (65.49.10.217) 188.508 ms 192.216 ms 202.863 ms 10ge10-1.core1.sjc2.he.net (184.105.222.14) 195.695 ms 195.691 ms 284.242 ms 72.14.219.161 (72.14.219.161) 189.196 ms 192.287 ms 193.220 ms 216.239.49.170 (216.239.49.170) 192.496 ms 188.547 ms 189.881 ms 66.249.95.29 (66.249.95.29) 190.125 ms 190.335 ms 190.026 ms nuq05s01-in-f17.1e100.net (74.125.239.113) 189.804 ms 190.556 ms 190.242 ms可以看出,其中第二跳是 VPN 的网关,而 traceroute www.baidu.com 的话第二跳应该也是同样的结果。这时已经可以访问 Google, Baidu 等国内外的站点了。配置 chnroutesa. 到 chnroutes 项目的下载页面:http://chnroutes-dl.appspot.com/ 下载 linux.zip ,解压b. 把 ip-pre-up 重命名为 chnroutes.sh,打开编辑,在 if [ ! -e /tmp/vpn_oldgw ]; then 前插入以下代码,以避免 ppp 连接脚本重复执行导致重复添加路由表项:代码如下:if [ $OLDGW == 'x.x.x.x' ]; then exit 0 fi其中 x.x.x.x 是 VPN 的网关,可以先本机连接上去之后查看一下网关地址。c. ssh 连接到路由器,执行以下命令:代码如下:cd /etc/config/ mkdir pptp-vpncd pptp-vpnvim chnroutes.sh在 vim 中把编辑好的 chnroutes.sh 粘贴进去(当然也可以通过 ssh 直接把 chnroutes.sh 文件传过去,或者上传到某个地方再 wget 下载)执行以下命令,设置权限为可执行:chmod a+x chnroutes.shd. 用 vim 编辑 /lib/netifd/ppp-up 文件:vim /lib/netifd/ppp-up在 [ -d /etc/ppp/ip-up.d ] && { 这一行前插入以下内容,确保 ppp 连接脚本能够被执行:sh /etc/config/pptp-vpn/chnroutes.she. 重启路由,启动好之后,进入 LuCI 查看接口状态,等 WAN 和 VPN 都连接成功后,ssh进去,执行 route -n | head -n 10 ,效果应该类似这样:代码如下:root@FC_R0:/etc/config# route -n | head -n 10 Kernel IP routing table Destination Gateway Genmask Flags Metric Ref Use Iface 0.0.0.0 10.7.0.1 0.0.0.0 UG 0 0 0 pptp-vpn 1.0.1.0 58.111.43.1 255.255.255.0 UG 0 0 0 pppoe-wan 1.0.2.0 58.111.43.1 255.255.254.0 UG 0 0 0 pppoe-wan 1.0.8.0 58.111.43.1 255.255.248.0 UG 0 0 0 pppoe-wan 1.0.32.0 58.111.43.1 255.255.224.0 UG 0 0 0 pppoe-wan 1.1.0.0 58.111.43.1 255.255.255.0 UG 0 0 0 pppoe-wan 1.1.2.0 58.111.43.1 255.255.254.0 UG 0 0 0 pppoe-wan 1.1.4.0 58.111.43.1 255.255.252.0 UG 0 0 0 pppoe-wan其中 Destination 为 0.0.0.0 的是默认路由,网关为 VPN 网关,意味着默认流量都经过 VPN,而以下的条目则把目的为国内的网段都指向了 ISP 提供的网关。至此 PPTP VPN 和 chnroutes 已经配置完毕。配置 VPN 断线自动重连a. 创建 /etc/config/pptp-vpn/status-check.shvim /etc/config/pptp-vpn/status-check.sh在 vim 中粘贴以下内容(此脚本检测 VPN 连接状态,并在断线后会断开 WAN 和 VPN 接口,10秒后重新连接 WAN,并在 30 秒后重连 VPN):代码如下:#!/bin/sh</p> <p>if [ -f "/tmp/vpn_status_check.lock" ] then exit 0 fi</p> <p>VPN_CONN=`ifconfig | grep pptp-vpn`</p> <p>if [ -z "$VPN_CONN" ] then touch /tmp/vpn_status_check.lock echo WAN_VPN_RECONNECT at: >> /tmp/vpn_status_check_reconn.log date >> /tmp/vpn_status_check_reconn.log</p> <p> ifdown vpn ifdown wan sleep 10 ifup wan sleep 30 ifdown vpn sleep 10 ifup vpn sleep 40 rm /tmp/vpn_status_check.lock</p> <p>else date > /tmp/vpn_status_check.log fi执行以下命令,设置权限为可执行:chmod a+x /etc/config/pptp-vpn/status-check.shb. 进入LuCI 的 System -> Scheduled Tasks 填入以下内容,并保存:*/1 * * * * /etc/config/pptp-vpn/status-check.sh以上实际上是编辑了 cron 配置,cron 每分钟运行检测 / 重连脚本,重启 cron:/etc/init.d/cron restartc. 静待几分钟,查看 /tmp 目录,应该能看到 vpn_oldgw 和 vpn_status_check.log 文件,查看 vpn_status_check.log 文件,可以看到最近一次检测 VPN 连接状态的时间。代码如下:root@FC_R0:/tmp# ls vpn* vpn_oldgw vpn_status_check.log root@FC_R0:/tmp# cat vpn_status_check.log Tue Jul 15 00:04:02 HKT 2014 root@FC_R0:/tmp#你可以在 LuCI 中断开 VPN 接口,在接下来的4-5分钟,观察 WAN 和 VPN 的重连情况。d. 分别 traceroute www.google.com 和 www.baidu.com ,观察第二跳的地址:代码如下:FL-MBP:~ fatlyz$ traceroute www.google.com | head -n 3 traceroute: Warning: www.google.com has multiple addresses; using 74.125.239.115 traceroute to www.google.com (74.125.239.115), 64 hops max, 52 byte packets fc_r0.lan (192.168.7.1) 2.161 ms 0.912 ms 0.895 ms 10.7.0.1 (10.7.0.1) 193.747 ms 187.789 ms 289.744 ms 23.92.24.2 (23.92.24.2) 259.323 ms 354.625 ms 408.535 ms代码如下:FL-MBP:~ fatlyz$ traceroute www.baidu.com | head -n 3 traceroute to www.a.shifen.com (180.76.3.151), 64 hops max, 52 byte packets 1 fc_r0.lan (192.168.7.1) 1.190 ms 0.984 ms 0.731 ms 2 58.111.43.1 (58.111.43.1) 20.616 ms 38.822 ms 18.484 ms 3 183.56.35.133 (183.56.35.133) 20.056 ms 52.353 ms 87.841 ms可以看出,已成功对国内外的目标地址进行了路由选择。至此,OpenWRT 路由的基本配置、PPTP VPN、chnroutes 和自动重连已经配置完成。
2023年02月18日
295 阅读
0 评论
0 点赞